Achtung: Leider funktioniert diese Anleitung nicht mehr. Probiert diesen Matcher stattdessen.
Selbstverständlich höre ich Musik nur noch über Spotify. Allerdings wollte ich schon immer die Lieder meiner Jugend in Spotify importieren und wollte diese nicht per Hand dort suchen müssen. Zwar ermöglicht Spotify, die lokalen MP3-Dateien auf dem Mac oder iPhone mit in seine Oberfläche zu integrieren. Jedoch nimmt dies bei großen MP3-Sammlungen sehr viel Platz weg. Abgesehen davon hat Spotify seine eigene Funktion namens „matching local files“ vor langer Zeit eingestellt.
Trotzdem gibt es eine Möglichkeit, auf macOS seine lokalen MP3-Dateien zu identifizieren, auf Spotify zu suchen und dort in eine Playliste zu speichern. Achtung: Diese Anleitung funktioniert nur mit einem Spotify Premium Benutzerkonto und unter macOS auf einem Mac.
Anleitung für SpotifyMatch auf dem Mac
Schritt 1: Xcode installieren
Xcode ist kostenlos im AppStore auf dem Mac erhältlich. Diese Software wird benötigt, um git zu nutzen und die .swift-Dateien auszuführen. Nach der Installation sollte man Xcode zumindest einmal gestartet haben.
Schritt 2: SpotifyMatch Git Repository klonen
Wir nutzen dafür das Terminal und klonen das Git Repository mit dem Code von Rebello95.
cd ~/Documents
git clone https://github.com/mtoensing/SpotifyMatch.git
cd SpotifyMatch
Bei Fehlern bezüglich Pfaden könnt ihr folgenden Befehl ausführen. Damit wird der Pfad zu Xcode gesetzt.
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Das Terminalfenster lassen wir nun erst mal geöffnet und kümmern uns zuerst um andere Dinge.
Schritt 3: Eine Spotify App anlegen
Damit der Swift-Programmcode mit deinem Spotify-Account interagieren kann, muss in deinem Account eine Spotify-App angelegt werden. Das geschieht im Developer Portal.
Wir akzeptieren alle Bedingungen und geben der App einen Namen. Die Webseite und Redirect URL setzt ihr bitte auf http://localhost. Wohl aber die Client-ID. Die findet ihr nach erfolgreichen Erstellen der App am Ende und wird dann in die Zwischenablage kopiert.
Schritt 4: Access Token für die App erstellen
Spotify authentifiziert sich mit per OAuth. Diesen Prozess durchlaufen wird nun manuell, um an den Access Token zu kommen. Mit diesem Token kann die App später die Lieder in eure Bibliothek übernehmen. In der folgenden URL bitte die Client-ID aus eurer Zwischenablage gegen den Platzhalter austauschen.
https://accounts.spotify.com/authorize?client_id=DEINE_CLIENT_ID&scope=user-library-modify&response_type=token&redirect_uri=http://localhost
Die URL mit eurer Client ID ruft man nun im Browser auf und erlaubt der App eure Spotify Bibliothek zu verändern. Das sieht dann so aus. Nun klickt ihr „Ich stimme zu!“.
Wenn ihr nicht gerade Webseiten entwickelt und einen lokalen Webserver am Laufen habt, erscheint nur wahrscheinlich 404 – Seite nicht gefunden im Browser. Das ist aber nicht schlimm denn das Access Token steht oben in der URL.
http://localhost/#access_token=HIER_STEHT_DAS_SEHR_LANGE_ TOKEN&token_type=Bearer&expires_in=3600
Das Access Token kopieren wir nun in die Zwischenablage und freuen uns dabei wie ein kleines Kind was für krasse Hacker wir doch sind.
Schritt 5: MatchSpotify ausführen
Nun führen wir das Script auf dem Terminal aus Schritt 1 aus und nutzen das AuthToken als Parameter. Zusätzlich geben wir den Ort mit, an dem die MP3-Dateien liegen. Die enthaltenen Verzeichnisse werden rekursiv durchlaufen.
./run.sh ACCESS_TOKEN PFAD_ZU_DEN_SONGS
Wenn die MP3-Dateien wie bei mir auf einem Synology NAS (z. B. DS218+ kaufen) liegen, dann sieht das beispielsweise so aus:
./run.sh DASTOKENVONSPOTIFYHATNIXMITTOKENVONSOUTHPARKZUTUN /Volumes/Media/Audio/Music/
Je nach Größe der MP3-Sammlung kann es recht lange dauern, bis das Script durchgelaufen ist. Nun sollten folgende magische Hinweise im Terminal auftauchen.
Looking up 'Dein Herz schlägt schneller artist:Fünf Sterne deluxe'...
Failed to match 'I Believe artist:Digital Rockers'
Matched 'You Can't Hide, You Can't Run'
Looking up 'Life's Too Short In artist:The Qemists'...
Matched 'Crazy Sexy Marvellous - Radio Edit'
Sollte der Fehler „Error in GET request, status: 401“ erscheinen, stimmt etwas mit dem Access Token nicht. Falsch kopiert? Länger als 60 Min gewartet?
Schritt 6: Lieder Spotify hinzufügen
Das Script fragt am Ende, ob die erkannten Lieder eurer Spotify Bibliothek hinzugefügt werden sollen. Dies bestätigen wir nun mit „y“.
Done: Matched 2642/3557 songs
Add songs to Spotify library? (y/n)
Nur verfügbare Lieder werden in Spotify gefunden
Der Vorteil ist, dass die erkannten Lieder nun für immer in Spotify vorhanden sind und keinen Platz mehr verbrauchen. Die größte Einschränkung dieses Vorgangs ist, dass Songs fehlen werden. Leider wurden einigen Liedern nur Remixes oder die Karaoke-Version zugeordnet, weil es die Originale nicht auf Spotify erschienen sind. Nun rächt es sich auch, wenn die Lieder damals die falschen Metadaten hatten.
Alternative: Musikbibliothek im selbst-gehosteten Spotfiy
Wenn man nun auch den letzten Bootleg oder selbst aufgenommene Lieder mit sich rumtragen möchte, der kann das mit der Musikfunktion in PLEX tun. Auch hier spart man sich den Platz auf dem Mobiltelefon und hat Bewertungen und Metadaten an einem Ort. Deswegen läuft bei mir ein PLEX-Server auf einem Synology NAS (beispielsweise DS218+ kaufen). Dieser streamt für jeden Anflug von Nostalgie nun wirklich alle meine Lieder auf das iPhone.
Schreibe einen Kommentar