-
-
Save Alexwi1son/ad1b380c982e378a5cf02eefabe4c038 to your computer and use it in GitHub Desktop.
Downloads tracks/playlists/albums from Deezer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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