Skip to content

Instantly share code, notes, and snippets.

@Alexwi1son
Forked from mhay10/download.py
Last active June 20, 2025 10:06
Show Gist options
  • Save Alexwi1son/ad1b380c982e378a5cf02eefabe4c038 to your computer and use it in GitHub Desktop.
Save Alexwi1son/ad1b380c982e378a5cf02eefabe4c038 to your computer and use it in GitHub Desktop.
Downloads tracks/playlists/albums from Deezer
from pydeezer.constants import track_formats
from pydeezer import Deezer, Downloader
import readline
import glob
import os
# Setup path autocomplete
def completer(text, state):
line = readline.get_line_buffer().split()
return [x for x in glob.glob(text + "*")][state]
readline.set_completer_delims("\t")
readline.parse_and_bind("tab: complete")
readline.set_completer(completer)
# Login to Deezer
arl = input("Deezer ARL: ")
dz = Deezer(arl=arl)
user = dz.user
print("Logged in as", user["name"])
# Get playlist/album tracks
url = input("Playlist/Album URL: ")
url_id = url.split("/")[-1]
if "playlist" in url:
tracks = dz.get_playlist_tracks(url_id)
elif "album" in url:
tracks = dz.get_album_tracks(url_id)
# Download tracks
track_ids = [track["SNG_ID"] for track in tracks]
download_dir = input("Download directory: ")
output_folder = os.path.join(
download_dir, f'{tracks[0]["ART_NAME"]} - {tracks[0]["ALB_TITLE"]}'
)
downloader = Downloader(
dz,
track_ids,
os.path.abspath(output_folder),
quality=track_formats.MP3_128,
concurrent_downloads=4,
)
downloader.start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment