An app threesome that offers you love.
Enhances your quality of life by transferring your Spotify playlists to TIDAL.
Bridging the gap in the music streaming wars, one playlist at a time.
A simple Python app that syncs your playlists and automates the downloading of TIDAL tracks
- Search and select Spotify playlists, or
- Load a previously saved playlist selection to
- Sync playlists or
- Download tracks directly from TIDAL
- Includes a log for 404 not found tracks
Install poetry if you don't have it already.
pip install poetry
Navigate to project root directory and install all dependencies:
poetry install
First time you use it it will ask you about your spotify credentials. You can also do it manually, either way check the next section to find where to get your credentials.
To use the Spotify API, you'll need your Spotify credentials.
Besides your username
, you will need to get a client ID
and a client secret
by registering an app in Spotify for Developers. Follow these steps to obtain them:
- Find your Spotify
username
either in your account settings or in your Spotify profile URL. - Go to the Spotify for Developers website and log in.
- Navigate to
Dashboard
>Create App
. - Choose a
Name
for your app. - Provide a
Description
(you can write anything). - Set the
Website
tohttp://localhost:8888/callback
. - Define the
Redirect URIs
ashttp://localhost:8888
. - Check the
Web API
box.
Once the app is created, copy the Client ID
and Client Secret
from your app settings.
We will get your TIDAL Credentials automatically. You just need to open a link in your browser and accept the connection to this app.
Spotidal will use these credentials, which should be stored in a credentials.yaml
file located in the ~/.config/spotidal
directory.
Credentials file structure should look like this:
spotify:
client_id: <your_client_id>
client_secret: <your_client_secret>
username: <your_username>
redirect_uri: http://localhost:8888
scope: playlist-read-private, user-library-read
requests_timeout: 2
tidal:
access_token: <your_access_token>
refresh_token: <your_refresh_token>
session_id: <your_session_id>
token_type: Bearer
To start up the app, run in app directory:
poetry run spotidal
- Simplify setup and ensure all critical files are ready
- Improve search functionality for missing tracks
- Optimize the sync process for TIDAL tracks
- Make TIDAL tracks persist across syncs
- Fully integrate TIDAL playlist track downloads
This project began as a fork of spotify_to_tidal, combined with the python-tidal algorithm.
It was built for personal use and learning purposes. There is an automation feature that uses tidal-media-downloader.
Thanks to everyone involved!
Does this project solve a major problem? Will this automation end anyone's suffering? Probably not. But did I enjoy it building it...?