def __init__(self, location): self.location = location # parse location url scheme, netloc, path, _, _, _ = urlparse(location) self.address = '%s://%s' % (scheme, netloc) # parse device description Http = get_Http() self.http = Http(timeout=1) xml = fetch(self.location, self.http) d = SimpleXMLElement(xml) self.friendly_name = str(next(d.device.friendlyName())) self.model_description = str(next(d.device.modelDescription())) self.model_name = str(next(d.modelName())) # set up soap clients self.rendering_control = SoapClient( location='%s/RenderingService/Control' % self.address, action='urn:upnp-org:serviceId:RenderingControl#', namespace='http://schemas.xmlsoap.org/soap/envelope/', soap_ns='soap', ns='s', exceptions=True) self.av_transport = SoapClient( location='%s/TransportService/Control' % self.address, action='urn:schemas-upnp-org:service:AVTransport:1#', namespace='http://schemas.xmlsoap.org/soap/envelope/', soap_ns='soap', ns='s', exceptions=True)