Tim Rae 1e8366a0e8 Performance optimization / refactoring (#43)
This replaces #36 and adds some other fixes!

Execution speed should be much faster now, especially when there are not
many changes to synchronize.

* Maintain track cache between different playlists (thanks to @joshrmcdaniel for amazing work on that!)
* Fix incorrect tidal_playlist_is_dirty() implementation
* Remove more redundant API calls
* Avoid unnecessarily spinning up tasks for tracks that were in match failure cache
* Introduce new rate_limit configuration parameter implemented with leaky bucket rate-limiting algorithm
* Where possible, add new tracks to existing playlist instead of erasing the old ones
* Use asyncio multithreading instead of multiprocessing
* When user has large number of spotify playlists, fetch them in parallel instead of one by one
* More typing hints / typing fixes
2024-06-03 09:11:56 +02:00
2024-05-22 14:54:17 +02:00
2022-02-10 16:08:11 +13:00

A command line tool for importing your Spotify playlists into Tidal

Installation

Clone this git repository and then run:

python3 -m pip install -e .

Setup

  1. Rename the file example_config.yml to config.yml
  2. Go here and register a new app on developer.spotify.com.
  3. Copy and paste your client ID and client secret to the Spotify part of the config file
  4. Copy and paste the value in 'redirect_uri' of the config file to Redirect URIs at developer.spotify.com and press ADD
  5. Enter your Spotify username to the config file

Usage

To synchronize all of your Spotify playlists with your Tidal account run the following from the project root directory

spotify_to_tidal

You can also just synchronize a specific playlist by doing the following:

spotify_to_tidal --uri 1ABCDEqsABCD6EaABCDa0a # accepts playlist id or full playlist uri

See example_config.yml for more configuration options, and spotify_to_tidal --help for more options.


Join our amazing community as a code contributor



Description
No description provided
Readme 148 KiB
Languages
Python 99.5%
Shell 0.5%