Automatic Spotify to Deezer playlist updater, and deemix track downloader. This is only a placeholder repo, the full code and documentation can be found on GitLab.
Key Features • Download • How To Use • Support • Contributing • Changelog • Credits & Contributors
- Easy to use CLI.
- Converts playlists from Spotify to Deezer.
- Updates playlists.
- Downloads songs using
deemix. - Downloads cover art.
- Automatically sorts music files.
You can download the source code to run the CLI scripts from the command line on Windows. This will require Windows 10, Python, the Windows Subsystem for Linux and a Linux Image.
Before running deedown, the following must be installed or downloaded:
- Windows 10 (Version 1903 or higher, with Build 18362 or higher)
- A text editor
- Windows Subsystem for Linux
- An Ubuntu, Kali or Debian image from the Microsoft Store (others may work, but are untested)
- Python 3 (and
pip) - The following Python Packages: (these do not need to be individually installed, installation instructions can be found below)
urwid
deemix
deezer-py
deezer-python
certifi==2020.6.20
chardet==3.0.4
html5lib==1.1
idna==2.10
python-dateutil==2.8.1
pytz==2020.1
requests==2.24.0
six==1.15.0
urllib3>=1.26.5
webencodings==0.5.1
- A Spotify account
- A Deezer account
- Some Spotify or Deezer playlists
- The deedown code from this repo
To install deedown and get the program running, follow these steps:
- Ensure you have downloaded the code from this repo, and installed Python 3, Windows 10 and the Windows Subsystem for Linux (instructions here).
- Extract the downloaded
.zipfile to the directory where you would like to access deedown. The best option is your user folder. - Open a Command Prompt from this folder and run
pip install -r requirements.txt, then run this command,pip3 install -r requirements.txt, from the Windows Subsystem for Linux terminal. (Using the Windows Terminal app may be helpful to keep WSL and Windows shell's sorted.) - Create a new Deezer Application from the Deezer Developers website. Use the following information for each blank:
| Name | Value |
|---|---|
| Name | deedown |
| Domain | localhost |
| Redirect URL | http://localhost:23412/authfinsh |
| Link to Terms of Use | https://docs.github.com/en/github/site-policy/github-terms-of-service |
| Description | A basic app to convert playlists to Deezer |
- Edit the
secrets.pyfile in thedeedowndirectory. Use a text editor such as Notepad or VS Code. Place the values from your app in between the single quotes ('...'). If you cannot find your User ID, it is the 10-digit number at the end of your profile link on Deezer.
| Deezer App Name | secrets.py Name |
|---|---|
| Application ID | DEEZER_CLIENT_ID |
| Secret Key | DEEZER_CLIENT_SECRET |
| Deezer User ID | DEEZER_USER_ID |
- This step is not mandatory, but if you would like all of your Liked Songs to also download, you need to move them all to a playlist. Do this by selecting groups of 50 songs in your Liked Songs list and adding them to a playlist titled Liked Songs (or anything else you feel like). Select songs the same way as files, by
shiftclicking. The playlist can be up to 10,000 songs, but you can only add 50 at a time otherwise Spotify starts to loose them. - Open a new Command Prompt in the base folder where you extracted deedown (the folder with all the scripts), and run
1_playlists.cmd. This will delete all of the old playlist files as well as any cached Python code. Then it saves a copy of all your Spotify playlists in.JSONformat, and finally uploads them to Deezer. As @helpsterTree puts it: "this will take a long time, especially with a large number of playlists / large track count, so get a coffee [or tea], brew some more, establish a coffee plantation business with fair trade principles, make some money and come back to check, if the script is finished." - Open a browser, and head to your Deezer account and click on playlists, which is on the left. Also open the
2_download.shscript in a text editor. - Find each of your playlists and right click on the playlist title. Select copy link and paste it where the placeholder playlist links (
https://www.deezer.com/en/playlist) are in the script. Make sure you paste the link in between the double quotes, as those are crucial! After the links have all been copied, delete any extra placeholders. - This step is not mandatory, but if you would like to change the bitrate or the type of file downloaded, change the
128on line 19 toflacor320depending on your needs. I find 128kbps gives a nice balance between sound quality and file size. - Open a Linux shell in the main deedown directory (the one with the scripts) and run
./2_download.shto let the tracks download. This may also take a long time, depending on the size of your library. If the script asks you to provide yourarl, go back to deezer.com and pressF12on your keyboard. Click on Application, and then on the left side, click on Cookies. Select thehttps://www.deezer.comlisting, and then in the Filter box, search forarl. Click on thearllisting and copy the long code, pasting it the terminal. - Your audio files will be downloaded into
Downloads\deedwn, sorted by playlist. If you would like to move them to your music folder, run3_move.cmdfrom a Command Prompt and all of your files will instantly move to your user Music folder. That's it - enjoy listening!
More documentation is available in the Documentation and on the Wiki. If more support is required, please open a GitHub Discussion or join our Discord.
Please contribute using GitHub Flow. Create a branch, add commits, and open a pull request. If the contribution relates to the full program code, submit a merge request on Gitlab.
Please read CONTRIBUTING for details on our CODE OF CONDUCT, and the process for submitting pull requests to us.
See the CHANGELOG file for details.
This software uses the following open source packages, projects, services or websites:
| GitHub | Python Software Foundation | PyInstaller | Spotify | Deezer |
| Web - Plans | Web - Donate | Web - Donate | Web - Plans | Web - Plans |
This project uses many scripts from many different people. Thanks to them, as this project would not work without their help.
- Thanks to Casey Chu and the Spotify Backup script, which allows you to export your Spotify playlists in easy to use
JSONformat. - Thanks to Thomas and the Spotify Playlists 2 Deezer project, which makes sure your playlists show up in Deezer.
- Thanks to Stefan Dworschak and the Spotify to Deezer project, which allows you to compare the differences between your Spotify playlists when sending them to Deezer.
- Thank to the deemix project for allowing the download of audio files.
- @willtheorangeguy - Sponsor on PayPal
- Running Calculator - A running distance and speed command line interface.
- Snoopy Landing Page - A simple under construction landing page that features Charles M. Schulz's iconic Snoopy Beagle.
- Python Logo Widgets - Python Powered Logo widgets that can be added to any GUI project.
This project is licensed under the GNU General Public License - see the LICENSE file for details. See the Privacy Policy and Terms and Conditions for legal information.
Any connections with Spotify and/or Deezer are governed by their own privacy policies and terms. This application is not related to and/or endorsed by either of the respective companies.