Created
March 11, 2023 19:49
-
-
Save mhay10/0f293af8a1775ac55187493ed54a4bf8 to your computer and use it in GitHub Desktop.
Downloads 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