All Projects → kmille → Deezer Downloader

kmille / Deezer Downloader

Download music from Deezer with a nice front end

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Deezer Downloader

Smd
Spotify Music Downloader
Stars: ✭ 822 (+547.24%)
Mutual labels:  music, spotify, youtube-dl
Hifiberry Os
Linux distribution optimized for audio playback
Stars: ✭ 487 (+283.46%)
Mutual labels:  music, spotify, mpd
Musicnow
CLI tool to download songs with metadata.
Stars: ✭ 146 (+14.96%)
Mutual labels:  music, spotify, youtube-dl
Ytmdl
A simple app to get songs from YouTube in mp3 format with artist name, album name etc from sources like iTunes, Spotify, LastFM, Deezer, Gaana etc.
Stars: ✭ 2,070 (+1529.92%)
Mutual labels:  music, spotify, youtube-dl
Rust Mpd
Rust version of libmpdclient
Stars: ✭ 66 (-48.03%)
Mutual labels:  music, mpd
Headfon.es
a mini Spotify clone 🎧
Stars: ✭ 62 (-51.18%)
Mutual labels:  music, spotify
Spotifycurrentlyplaying.js
Display your currently playing Spotify song(s) using Last.fm scrobbling.
Stars: ✭ 71 (-44.09%)
Mutual labels:  music, spotify
Vidify
Play music videos automatically for the songs playing on any device
Stars: ✭ 95 (-25.2%)
Mutual labels:  music, spotify
Ytspotifydl
Youtube and Spotify music downloader with metadata.
Stars: ✭ 34 (-73.23%)
Mutual labels:  music, spotify
Botify
Discord bot that plays Spotify tracks and YouTube videos or any URL including Soundcloud links and Twitch streams
Stars: ✭ 86 (-32.28%)
Mutual labels:  music, spotify
Sysdash
A simple and clean system monitoring skin for Rainmeter.
Stars: ✭ 128 (+0.79%)
Mutual labels:  music, spotify
A Pop
🎶 HD Music Streaming and Sharing Web App
Stars: ✭ 55 (-56.69%)
Mutual labels:  music, spotify
Forked Daapd
Linux/FreeBSD DAAP (iTunes) and MPD media server with support for AirPlay devices (multiroom), Apple Remote (and compatibles), Chromecast, Spotify and internet radio.
Stars: ✭ 1,073 (+744.88%)
Mutual labels:  spotify, mpd
Spotify Onthego
Download Spotify playlists by searching for audio files on YouTube
Stars: ✭ 66 (-48.03%)
Mutual labels:  music, spotify
Mitsuhaxi
Universal iOS 11 audio visualizer
Stars: ✭ 44 (-65.35%)
Mutual labels:  music, spotify
Malp
M.A.L.P. - Android MPD client
Stars: ✭ 94 (-25.98%)
Mutual labels:  music, mpd
Spotspot
A Spotify mini-player for macOS
Stars: ✭ 110 (-13.39%)
Mutual labels:  music, spotify
Getsong
Download any song mp3 with no dependencies except ffmpeg
Stars: ✭ 102 (-19.69%)
Mutual labels:  music, spotify
Zenmusic
Slack / Sonos / Spotify / Node.js - Control Sonos through #Slack
Stars: ✭ 113 (-11.02%)
Mutual labels:  music, spotify
Shoutoutplay
The mobile app that allows you to create and record personal dedications using your favorite music playlists for corporate events, parties, weddings and get togethers.
Stars: ✭ 28 (-77.95%)
Mutual labels:  music, spotify

Music Downloader 🎶 🎧 💃 🦄

tests push image to dockerhub docker pulls latest tag Python 3.6

Features

  • download songs, albums, public playlists from Deezer.com (account is required, free plan is enough)
  • download Spotify playlists (by parsing the Spotify website and download the songs from Deezer)
  • download as zip file (including m3u8 playlist file)
  • 320 kbit/s mp3s with ID3-Tags and album cover (or flac if you want)
  • download songs via youtube-dl
  • KISS front end
  • MPD integration (use it on a Raspberry Pi!)
  • simple REST api

How to use it

There is a settings file template called settings.ini.example. You can specify the download directory with download_dir. Pressing the download button only downloads the song/album/playlist. If you set use_mpd=True in the settings.ini the backend will connect to mpd (localhost:6600) and update the music database. Pressing the play button will download the music. If use_mpd=True is set the mpd database will be updated and the song/album/playlist will be added to the playlist. In settings.ini music_dir should be the music root location of mpd. The download_dir must be a subdirectory of music_dir.

As Deezer sometimes requires a captcha to login the auto login features was removed. Instead you have to manually insert a valid Deezer cookie to the settings.ini. The relevant cookie is the arl cookie.

Run it as a service

We use it with nginx and ympd as mpd frontend

  • / goes to ympd
  • /d/ goes to the downloader

The deployment directory contains a systemd unit file and a nginx vhost config file. There is also a patch to add a link to the ympd frontend. The debug tab will show you the debug output of the app.

Try it out

vagrant up
vagrant ssh
sudo vim /opt/deezer/app/settings.ini # insert your Deezer cookie
/opt/deezer/app/venv/bin/python /opt/deezer/app/app.py # start the backend

# On the host:
xdg-open http://localhost:5000 # view frontend in the browser
ncmpcpp -h 127.0.0.1 # try the mpd client

Docker

You can use the Docker image hosted on hub.docker.com. Login into your free Deezer account and grab the arl cookie. Then:

mkdir downloads
sudo docker run -p 5000:5000 --volume $(pwd)/downloads/:/mnt/deezer-downloader --env DEEZER_COOKIE_ARL=changeme --env DEEZER_FLAC_QUALITY=True kmille2/deezer-downloader:latest 
xdg-open http://localhost:5000

If you want to debug or build it from source: there is a docker-compose file in the docker directory. The docker/downloads directory is mounted into the container and will be used as download directory. You have to check the permissions of the docker/downloads directory as docker mounts it with the same owner/group/permissions as on the host. The deezer user in the docker container has uid 1000. If you also have the uid 1000 then there should be no problem. For debugging: sudo docker-compose build --force-rm && sudo docker-compose up

Deployment

apt-get update -q
apt-get install -qy vim tmux git gcc ffmpeg
apt-get install -qy python3-virtualenv python3-dev
git clone https://github.com/kmille/deezer-downloader.git /opt/deezer
python3 -m virtualenv -p python3 /opt/deezer/app/venv
source /opt/deezer/app/venv/bin/activate
pip install -r /opt/deezer/requirements.txt
pip install -U youtube-dl
cp /opt/deezer/app/settings.ini.example /opt/deezer/app/settings.ini
# Adjust /opt/deezer/app/settings.ini
/opt/deezer/app/venv/bin/python /opt/deezer/app/app.py

# for mpd
apt-get install -yq mpd ncmpcpp
# adjust the file paths in /etc/mpd.conf and settings.ini
systemctl restart mpd
ncmpcpp -h 127.0.0.1

Shortcuts

ctrl-m: focus search bar
Enter: serach for songs
Alt+Enter: search for albums
ctrl-b: go to / (this is where our ympd is)
ctrl-shift-[1-7] switch tabs

Some screenshots

Search for songs. You can listen to a 30 second preview in the browser.

Search for albums. You can download them as zip file.

List songs of an album.

Download songs with youtube-dl

Download a Spotify playlist.

Download a Deezer playlist.

ncmpcpp mpd client.

Tests

cd app
source venv/bin/activate
python -m pytest -v tests.py

Deployment with Ansible (including mpd and ympd)

https://github.com/kmille/music-ansible (almost always outdated)

Changelog

Version 1.3.1 (21.01.2021)

  • allow to set download quality (flac|mp3) via environment variable DEEZER_FLAC_QUALITY (#43)

Version 1.3 (05.11.2020)

  • feature: download your favorite Deezer songs
  • automated tests with Github Actions
  • push Docker image to hub.docker.com with Github Actions

Version 1.2 (01.11.2020)

  • breaking change: now use the arl cookie instead of the sid cookie. This cookie does not expire so we don't need the background thread that keeps the session alive
  • add support for flac as download format

Version 1.1 (13.05.2020)

  • thanks to luelista for the contribution!
  • play 30 second preview in browser
  • add Vagrantfile
  • show album cover in search results
  • use a threaded queue for download tasks
  • list album songs
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].