class App(object): uris = [ # "Holes" - "Passenger" 'spotify:track:6xYcv63zDYiEaJ1KGgysGN', 'spotify:track:77w4HJEAGzRwHTapyXjFl1', 'spotify:track:3sgebd31wwbZY8Uyda3yOC', 'spotify:track:7q3FEfKhqCF3w6Q8uTfDuH', 'spotify:track:2n9TFOPyTnN0uYdzscNA4g', 'spotify:track:08du7WH5gMBaCB9TlIpOiI', 'spotify:track:2xuw7EWGdn5nYWezDx41xu', # "Robot Rock / Oh Yeah" - "Daft Punk" 'spotify:track:5EaZLVO6pSEWIyUDsHWiSU', 'spotify:track:0q9zz6nP5izcUnfYndfVX6', 'spotify:track:5eS6pTvDNOvh2kyxeZtK3r', # "Room 24" - "Volbeat" 'spotify:track:4OugXGf671yxhci3eqVGJf', 'spotify:track:0B3ALwX9rlqegfSLoFnx4E', 'spotify:track:5DRP9X5EivS5XklFqqu9Gh' ] def __init__(self): self.sp = Spotify() def run(self): @self.sp.login(os.environ['USERNAME'], os.environ['PASSWORD']) def on_login(): self.sp.user_info['country'] = 'NL' self.sp.metadata(self.uris, self.on_tracks) def on_tracks(self, tracks): results = [] for track in tracks: uri = track.uri if not track.is_available(): track.find_alternative() results.append((str(uri), track)) for uri, track in results: print '[%s] "%s" - "%s"' % (uri, track.name, track.artists[0].name) print '\turi:', str(track.uri) print '\tis_available:', track.is_available() for restriction in track.restrictions: print '\tallowed:', ', '.join(restriction.countries_allowed or []) print '\tforbidden:', ', '.join(restriction.countries_forbidden or []) print
class App(object): artist_uri = 'spotify:artist:4tZwfgrHOc3mvqYlEYSvVi' # Daft Punk def __init__(self): self.sp = Spotify() self.tracks = None self.album = None def run(self): @self.sp.login(os.environ['USERNAME'], os.environ['PASSWORD']) def on_login(): # Fetch metadata for album self.sp.metadata(self.artist_uri, self.on_artist) def on_artist(self, artist): self.sp.metadata(artist.albums[0].uri, self.on_album) def on_album(self, album): print album.name self.sp.metadata([tr.uri for tr in album.tracks], self.on_tracks) def on_tracks(self, tracks): for track in tracks: print '\t[%s] - %s' % (track.uri, track.name)
class App(object): #album_uri = 'spotify:album:7u6zL7kqpgLPISZYXNTgYk' # Alive 2007 album_uri = 'spotify:album:1x4SGGPflZamzny9QXRsdi' # Tourist History def __init__(self): self.sp = Spotify() self.track_uris = None self.tracks = None self.album = None self.request_num = 0 def run(self): @self.sp.login(os.environ['USERNAME'], os.environ['PASSWORD']) def on_login(): # Fetch metadata for album self.sp.metadata(self.album_uri, self.on_album) def on_album(self, album): self.album = album # Request track metadata self.track_uris = [tr.uri for tr in self.album.tracks] self.sp.metadata([ self.track_uris[0], self.track_uris[5], self.track_uris[3] ], self.on_tracks) def on_tracks(self, tracks): self.request_num += 1 self.tracks = tracks log.info('%s - %s', self.album.name, ', '.join([artist.name for artist in self.album.artists])) for track in self.tracks: #if not track.is_available(): # track.find_alternative() log.info('\t[%02d] (%s) %s', track.number, track.uri, track.name) if self.request_num >= 2: return self.sp.metadata([ self.track_uris[0], self.track_uris[6], self.track_uris[3], self.track_uris[4], self.track_uris[5] ], self.on_tracks)
class App(object): #album_uri = 'spotify:album:7u6zL7kqpgLPISZYXNTgYk' # Alive 2007 album_uri = 'spotify:album:1x4SGGPflZamzny9QXRsdi' # Tourist History def __init__(self): self.sp = Spotify() self.track_uris = None self.tracks = None self.album = None self.request_num = 0 def run(self): @self.sp.login(os.environ['USERNAME'], os.environ['PASSWORD']) def on_login(): # Fetch metadata for album self.sp.metadata(self.album_uri, self.on_album) def on_album(self, album): self.album = album # Request track metadata self.track_uris = [tr.uri for tr in self.album.tracks] self.sp.metadata( [self.track_uris[0], self.track_uris[5], self.track_uris[3]], self.on_tracks) def on_tracks(self, tracks): self.request_num += 1 self.tracks = tracks log.info('%s - %s', self.album.name, ', '.join([artist.name for artist in self.album.artists])) for track in self.tracks: #if not track.is_available(): # track.find_alternative() log.info('\t[%02d] (%s) %s', track.number, track.uri, track.name) if self.request_num >= 2: return self.sp.metadata([ self.track_uris[0], self.track_uris[6], self.track_uris[3], self.track_uris[4], self.track_uris[5] ], self.on_tracks)
class App(object): def __init__(self): self.sp = Spotify() def run(self): @self.sp.login(os.environ['USERNAME'], os.environ['PASSWORD']) def on_login(): self.sp.search('daft punk', count=20, callback=self.on_search) def on_search(self, result): # Artists if result.artists: print 'artists (%s)' % len(result.artists) def on_artists(artists): for artist in artists: print '\t[%s] "%s"' % (artist.uri, artist.name) self.sp.metadata([ar.uri for ar in result.artists], on_artists) # Albums if result.albums: print 'albums (%s)' % len(result.albums) def on_albums(albums): for album in albums: print '\t[%s] "%s" - %s' % (album.uri, album.name, ', '.join([ar.name for ar in album.artists])) self.sp.metadata([al.uri for al in result.albums], on_albums) # Tracks if result.tracks: print 'tracks (%s)' % len(result.tracks) def on_tracks(tracks): for track in tracks: print '\t[%s] "%s" - %s' % (track.uri, track.name, ', '.join([ar.name for ar in track.artists if ar.name])) self.sp.metadata([tr.uri for tr in result.tracks], on_tracks) # Playlists if result.playlists: print 'playlists (%s)' % len(result.playlists) for playlist in result.playlists: print '\t[%s] "%s"' % (playlist.uri, playlist.name)