Skip to content

Instantly share code, notes, and snippets.

@candideu
Last active April 25, 2025 19:16
Show Gist options
  • Save candideu/29dbbaf7f346d85ede11e465f183b889 to your computer and use it in GitHub Desktop.
Save candideu/29dbbaf7f346d85ede11e465f183b889 to your computer and use it in GitHub Desktop.
Spotify Playlists to Navidrome using tunesynctool (formerly Navify)

Here are some quick tips on how to transfer your Spotify playlists to your Navidrome instance using tunesynctool, assuming you're using Windows:

Download Python

Download Python to your computer: https://www.python.org/downloads/

When installing, make sure to add Python to PATH:

Also make sure that pip is included in your installation:

pip installation for Python

Download tunesynctool

Open the command line interface (CLI) on your computer by clicking on the Windows (WIN) key, and search "cmd" or "command prompt".

Type the following command to install tunesynctool:

pip install tunesynctool

To check whether the installation worked, type the following in command prompt:

tunesynctool --help

Create a Spotify for Developers application

Go to https://developer.spotify.com/dashboard/create to create a new Spotify for devs app. Give it a name, description, and enter the following redirect URI:

http://127.0.0.1:8888/callback

Spotify for devs

Save the app, and copy the Client ID and Client Secret.

(optional) Create a user for the automation

If you don't want tunesynctool to interact with your main navidrome account, you can create a separate user just for the automation in navidrome.

Run the automation

Go back to your command prompt, and enter the following command:

tunesynctool --spotify-client-id 12345-client-ID --spotify-client-secret 12345-client-secret --spotify-redirect-uri http://127.0.0.1:8888/callback --subsonic-base-url https://my.navidrome.instance.com --subsonic-port 443 --subsonic-username username --subsonic-password "your-password-would-go-here" transfer --from spotify --to subsonic 12345-spotify-playlist-ID

tunesynctool --spotify-client-id 12345-client-ID --spotify-client-secret 12345-client-secret --spotify-redirect-uri http://127.0.0.1:8888/callback --subsonic-base-url https://my.navidrome.instance.com --subsonic-port 443 --subsonic-username username --subsonic-password "your-password-would-go-here" transfer --from spotify --to subsonic 12345-spotify-playlist-ID

Explanation:

  • --spotify-client-id: the Client ID from your app
  • --spotify-client-secret: the Client secret from your app
  • --spotify-redirect-uri: the redirect URI that you entered in the Spotify app
  • --subsonic-base-url: the URL of your Navidrome instance
  • --subsonic-port: if you navidrome instance is hosted at an https:// domain and reverse-proxied, the port will be 443.
  • --subsonic-username and --subsonic-password: the login credentials for your Navidrome user
  • The last digits should be the ID of the playlist you want to transfer. For example, if the URL of your playlist is https://open.spotify.com/playlist/12345-my-playlist, the ID to use will be 12345-my-playlist

When you run this command the first time, your browser will open, and the command line will ask you to enter the URL to the page that your browser just opened. Copy and paste it into the command line and hit ENTER to proceed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment