def retrieveMeta(self, name): """ Return the metadata for the given player instance """ try: proxy = self.bus.get_object(name, "/org/mpris/MediaPlayer2") device_prop = dbus.Interface( proxy, "org.freedesktop.DBus.Properties") prop = device_prop.Get( "org.mpris.MediaPlayer2.Player", "Metadata") try: artist = array_to_string(prop.get("xesam:artist")) except: artist = None try: title = str(prop.get("xesam:title")) except: title = None try: albumArtist = array_to_string(prop.get("xesam:albumArtist")) except: albumArtist = None try: albumTitle = str(prop.get("xesam:album")) except: albumTitle = None try: artURL = str(prop.get("mpris:artUrl")) except: artURL = None try: discNumber = str(prop.get("xesam:discNumber")) except: discNumber = None try: trackNumber = str(prop.get("xesam:trackNumber")) except: trackNumber = None md = Metadata(artist, title, albumArtist, albumTitle, artURL, discNumber, trackNumber) md.playerName = self.playername(name) md.fixProblems() return md except dbus.exceptions.DBusException as e: logging.debug(e)