Python3 script to transfer playlists across Spotify, Tidal, AppleMusic and Youtube-Music
- Youtube Music -> specify with
youtube
- Spotify -> specify with
spotify
- Tidal -> specify with
tidal
- Apple Music -> specify with
apple
- Install dependencies using
pip install -r requirements.txt
- Generate a new app at https://developer.spotify.com/dashboard/applications)
- Fill the
redirect_uri
from config.py into the new app's settings - Fill in your
client_id
andclient_secret
from your Spotify app into config.py file
- Open a new tab in browser
- Open the developer tools (Ctrl-Shift-I) and select the “Network” tab
- Go to https://music.youtube.com and ensure you are logged in
- Find an authenticated POST request.
- Copy your cookies
- Paste copied cookies in headers_auth.json. Should look something like this
- Easiest one. Run
main.py
. It provides a link link. - Follow link to authorize the script.
- Open a new tab in browser
- Open the developer tools (Ctrl-Shift-I) and select the “Network” tab
- Go to https://music.apple.com and ensure you are logged in
- Find any authenticated POST request.
- Copy out the value of the
authorization header
andmedia-user-token
request headers - Paste copied values in .creds/i_auth.txt. Should look something like this
- Display all flags with
python3 main.py --help
- Specify playlist source platform and destination platform with
--source
/-s
and--destination
/-d
respectively Specify Youtube Music -> specify withyoutube
. Spotify -> specify withspotify
. Tidal -> specify withtidal
. Apple Music -> specify withapple
- Display user playlists for source platfrom using
-L
e.g Display tidal playlists with
python3 main.py --source tidal -L
- Copy a playlist (specify name in stdin) from one platform to the other using
-p
e.g Copy my "1am drive" playlists from spotify to ytmusic
python3 main.py -s spotify -d youtube -p "1am drive"
- Playlist names can be specified from a file with each playlist name occupying a line
python3 main.py --source spotify --destination youtube -P ./myplaylists.txt
- Transfer all playlists from one platform to the other using
-p
e.g Transfer all playlists from spotify to ytmusic (this includes Spotify liked songs)
python3 main.py --source spotify --destination youtube -A
- Allow users send specific playlists
- Allow users send playlists specified in file
- Add ytmusic to spotify
- Add function to properly compare song names
- Add a file to log songs not found
- Clean code and make it easy to add platforms
- Handle Spotify's liked songs (It's not considered a playlist by the api)
- Integrate TidalMusic
- Add Applemusic to the mix
- Handle TidalMusic's liked songs (It's not considered a playlist by the api)
- Add Deezer?