Manuel Wildauers blog

Spotify-Track-IDs ▸ Artist - Track

Ich hatte kürzlich das Problem, eine Liste mit Spotify-Track-IDs zu bekommen, die so aussehen:

spotify:track:1AhDOtG9vPSOmsWgNW0BEY

Die Liste war recht lang und ich wollte nicht jede einzelne ID in die Spotify Suche eingeben, um rauszufinden welcher Interpret und Titel sich dahinter versteckt. Das erste was mir dazu eingefallen ist, einfach mal die API von Spotify anschauen. Ich war positiv überrascht, da ich nichtmal einen Developer Account, Token oder was anderes benötige.

Ich kann einfach https://api.spotify.com/v1/tracks/1AhDOtG9vPSOmsWgNW0BEY aufrufen. Also habe ich ein kleines Python Script zusammen gehackt

#!/usr/bin/env python3
# -*- coding: iso-8859-1 -*-

import sys, requests, os

URL = 'https://api.spotify.com/v1/tracks/{trackId}'

def main(filename):
    if os.path.isfile(filename) and os.access(filename, os.R_OK):
        f = open(filename, 'r')
        for line in f:
            line = line.strip()
            split = line.split(':', 2)

            r = requests.get(URL.format(trackId=split[2]))
            json = r.json()

            for artist in json['artists']:
                name = artist

            print('{artist} - {track}'.format(
                artist=name['name'],
                track=json['name'])
            )

        f.close()
    else:
        print("Filename: {filename} doesn't exists or not readable".format(filename=filename));
if __name__=="__main__":
    if len(sys.argv) > 1:
        main(sys.argv[1])
    else:
         print("Usage: \n\t  ./spotify-track-id /path/to/file")

Example:

$ ./spotify-track-id /path/to/file
ARTIST1 - TRACK1
ARTIST2 - TRACK2
...

File format

spotify:track:1AhDOtG9vPSOmsWgNW0BEY
spotify:track:51pQ7vY7WXzxskwloaeqyj
spotify:track:21cp8L9Pei4AgysZVihjSv
spotify:track:1ZA8L9IOkRhmmz4nPXXx7h
spotify:track:3UOrKWXdwUVtDglahh3OQj
spotify:track:1wHSxWBfPr3GO31y8KGrWe

Output

Queen - Bohemian Rhapsody - Remastered 2011
Led Zeppelin - Stairway To Heaven
Deep Purple - Child In Time
Eagles - Hotel California
Dire Straits - Brothers In Arms
Pink Floyd - Wish You Were Here - 2011 Remastered Version