Example #1
0
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
Example #2
0
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
Example #3
0
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)
Example #4
0
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)
Example #5
0
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)
Example #6
0
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)
Example #7
0
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)