Playlist von Spotify zu YouTube Music übertragen

Datum: Tue, Mar 8, 2022

Tag(s): Playlist Spotify YouTube Music übertragen python

Ich habe mir vor kurzem YouTube Premium gegönnt. Darin ist YouTube Music enthalten, als langjähriger Spotify Nutzer hatte ich aber jetzt das Problem, dass ich meine Lieblingssongs gerne als Playlist bei YouTube Music hätte.

Die zahlreichen Online-Dienste und Apps übertragen meist nur ein paar hundert Songs kostenlos und verlangen einen bezahlten Premium-Account für mehr. Da ich aber keine Lust habe, zusätzlich zu meinen Streaming-Abo noch mehr Geld auszugeben und ich zudem auch Bedenken bezüglich des Datenschutzes für gerechtfertigt halte, konnte ich eine - zumindest für technisch affine Menschen - bessere Lösung finden.

Diese Anleitung geht davon aus, dass die Anwendungen git, python und pip bekannt und installiert sind.

Vorbereitung bei Spotify

Wenn die Lieblingssongs übertragen werden sollen, sollte man diese bei der Spotify Anwendung auf einem Mac, Windows oder Linux Rechner öffnen. Dort kann man mit z.B. “Command” + “A” unter macOS alle Songs markieren und danach diese über einen Rechtsklick zu einer neuen Playlist hinzufügen.

Anschließend muss über den Spotify-Bereich für Entwickler eine neue Anwendung erstellt werden und die Client ID und das Client Secret zwischengespeichert werden.

Vorbereitung bei YouTube Music

Da die offizielle API von Google leider starke Begrenzungen hat, werden wir den Weg über eine Python-Bibliothek nehmen, welche diese mit dem gleichen Aufruf, wie ein Browser sie machen wurde, umgeht.

Hierzu müssen wir nun aber in einem Browser die YouTube Music Anwendung öffnen und wie hier beschrieben die Request Headers kopieren bzw. eine manuelle headers_auth.json Datei erstellen.

Die Übertragung

Nun dieses Repo von GitHub lokal klonen:

git clone https://github.com/sigma67/spotifyplaylist_to_ytmusic.git

Dann die Abhängigkeiten installieren:

pip install -U -r requirements

Anschließend die Einstellungsdatei aus der Vorlage erstellen:

cp settings.ini.example settings.ini

Nun die in den vorbereiteten Schritten gespeicherten Zugangsdaten von Spotify und YouTube Music in der Datei einfügen und danach mit:

python YouTube.py <spotifylink>

Die Playlist übertragen. Hierbei ist <spotifylink> der Link zu unserer Playlist auf Spotify.

Anmerkungen

Ich bin etwas anders zur Lösung gekommen. Da ich manuell eine headers_auth.json Datei erstellt habe, musste ich den Code in der Anwendung etwas anpassen.

In der YouTube.py Datei muss die Zeile YTMusic(settings['youtube']['headers'], settings['youtube']['user_id']) hierfür auf YTMusic('headers_auth.json') abgeändert werden. Das ist alles.