def create_track_from_uri(self, uri): if 'youtube' not in uri: return None m = re.search('http://www.youtube.com/get_video.video_id=(.*?)&t=(.*)',uri) client = gdata.youtube.service.YouTubeService() client.ssl = False entry = client.GetYouTubeVideoEntry(video_id=m.group(1)) logging.debug("Created track from uri %s in youtubesource", uri) #PrintEntryDetails(entry) swfuri = entry.GetSwfUrl() video_id = m.group(1) t = m.group(2) track = Track(uri) track.title = entry.media.title.text track.artist = "YOUTUBE VIDEO" track.album = entry.media.category[0].text #FIXME add search for author on album? track.album_uri = None track.duration = int(entry.media.duration.seconds)*1000 return track
def create_track_from_uri(self, uri): uri = SpotifySource.strip_protocol(uri) if uri == None: return None url = "http://ws.spotify.com/lookup/1/?uri=" + uri try: e = ET.parse(urllib.urlopen(url)) except Exception as e: return None ns = "http://www.spotify.com/ns/music/1" if 'album' in uri: title = "" artist = e.find('.//{%s}artist/{%s}name' % (ns, ns)).text album = e.find('.//{%s}name' % ns).text duration = 0 album_uri = uri else: title = e.find('.//{%s}name' % ns).text artist = e.find('.//{%s}artist/{%s}name' % (ns, ns)).text album = e.find('.//{%s}album/{%s}name' % (ns, ns)).text duration = int(float(e.find('.//{%s}length' % ns).text) * 1000) album_uri = "spotify://" + e.find('.//{%s}album' % ns).attrib['href'] track = Track("spotify://"+uri) track.title = title track.artist = artist track.album = album track.album_uri = album_uri track.duration = duration return track
def create_track_from_uri(self, uri): if 'asx' not in uri: return None logging.debug("Created track from uri %s in srradiosource", uri) u = urllib.urlopen(uri) str = re.search('\"mms:.+\"', u.read()) u = open("sr.xml") tree = ET.parse(u) u.close() track = Track(str.group(0)[1:-1]) for e in tree.findall('channel'): for k in e.findall('streamingurl'): for s in k.findall('url'): if uri in s.text: track.title = e.get('name') track.artist = "SR RADIOTRACK" track.album = "SR RADIOTRACK" track.album_uri = None track.duration = 1 return track
def create_tracks_from_album(self, album): tracks = [] for track in album['tracks']: tmptrack = Track(track['uri']) tmptrack.title = track['title'] tmptrack.artist = track['artist'] tmptrack.album = album['name'] tmptrack.album_uri = album['uri'] tmptrack.duration = track['duration'] tracks.append(tmptrack) return tracks
def index(self, path): for top, dirnames, filenames in os.walk(path): for filename in filenames: if filename.endswith('.mp3'): full_path = os.path.join(top, filename); f = tagpy.FileRef(full_path) t = Track("file://" + full_path) t.title = f.tag().title t.artist = f.tag().artist t.album = f.tag().album a = f.audioProperties() t.duration = a.length * 1000 # to msec self.add_track(t)
def create_track_from_uri(self, uri): url = "http://ws.spotify.com/lookup/1/?uri=" + uri try: e = ET.parse(urllib.urlopen(url)) except Exception as e: return None ns = "http://www.spotify.com/ns/music/1" title = e.find('.//{%s}name' % ns).text artist = e.find('.//{%s}artist/{%s}name' % (ns, ns)).text album = e.find('.//{%s}album/{%s}name' % (ns, ns)).text duration = int(float(e.find('.//{%s}length' % ns).text) * 1000) track = Track("spotify://"+uri) track.title = title track.artist = artist track.album = album track.duration = duration return track