{"id":13988512,"url":"https://github.com/acgonzales/pydeezer","last_synced_at":"2025-07-22T09:30:59.143Z","repository":{"id":40574530,"uuid":"252169755","full_name":"acgonzales/pydeezer","owner":"acgonzales","description":"A package to search and download musics on Deezer.","archived":false,"fork":false,"pushed_at":"2023-02-08T00:43:50.000Z","size":145,"stargazers_count":53,"open_issues_count":19,"forks_count":14,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-29T06:37:17.582Z","etag":null,"topics":["deezer","download-musics","music","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/acgonzales.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-04-01T12:33:03.000Z","updated_at":"2024-11-08T10:26:58.000Z","dependencies_parsed_at":"2024-01-15T16:52:16.224Z","dependency_job_id":null,"html_url":"https://github.com/acgonzales/pydeezer","commit_stats":null,"previous_names":["chr1st-oo/pydeezer"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/acgonzales/pydeezer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acgonzales%2Fpydeezer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acgonzales%2Fpydeezer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acgonzales%2Fpydeezer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acgonzales%2Fpydeezer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/acgonzales","download_url":"https://codeload.github.com/acgonzales/pydeezer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acgonzales%2Fpydeezer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266465033,"owners_count":23933046,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deezer","download-musics","music","python3"],"created_at":"2024-08-09T13:01:11.957Z","updated_at":"2025-07-22T09:30:58.787Z","avatar_url":"https://github.com/acgonzales.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# PyDeezer\n\nA package to search and download musics on [Deezer](https://www.deezer.com/en/).\n\n## Installation\n\n### Install from release\n\n```bash\npip install py-deezer\n```\n\n### Install from repository\n\n```bash\ngit clone https://github.com/Chr1st-oo/pydeezer.git\ncd pydeezer\npip install .\n```\n\n## Usage as a CLI\n\n```bash\nUsage: pydeezer [OPTIONS] COMMAND [ARGS]...\n\n  PyDeezer CLI\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  download  Download tracks\n```\n\n#### Commands\n\n```bash\nUsage: pydeezer download [OPTIONS]\n\n  Download tracks\n\nOptions:\n  -a, --arl TEXT                  Used to be able to login to Deezer. Check\n                                  the docs on how to get one.\n\n  --media-type [Track|Album|Playlist|Artist]\n                                  Sets the media type and how it searches the\n                                  api.\n\n  -d, --download-dir DIRECTORY    Sets the directory on where the tracks are\n                                  to be saved.\n\n  -q, --quality [MP3_128|MP3_256|MP3_320|FLAC]\n                                  Sets the quality of the tracks. if the\n                                  provided quality is not supported, the\n                                  default quality of the track will be used.\n\n  --help                          Show this message and exit.\n```\n\n## Usage as a package\n\n#### Logging In\n\n```python\nfrom pydeezer import Deezer\n\narl = \"edit_this\"\ndeezer = Deezer(arl=arl)\nuser_info = deezer.user\n# or\n# deezer = Deezer()\n# user_info = deezer.login_via_arl(arl)\n```\n\nYou can get the your `arl` by manually logging into [Deezer](https://www.deezer.com/) using your browser and check the `cookies` and look for the value of `arl`.\n\n#### Searching\n\n```python\n# Some login code here\n\n# Search tracks\ntrack_search_results = deezer.search_tracks(\"IM DOPE\")\n# Search albums\nalbum_search_results = deezer.search_albums(\"DAMN\", limit=10)\n# Search artists\nartist_search_results = deezer.search_artists(\"J. Cole\", limit=5)\n# Search playlists\nplaylist_search_results = deezer.search_playlists(\"top\", index=2)\n```\n\n#### Getting Information and Downloading\n\n```python\n# Some login code here\n\n# Some download stuffs\n\nfrom pydeezer import Downloader\nfrom pydeezer.constants import track_formats\n\ndownload_dir = \"C:\\\\Users\\\\User\\\\Music\"\n\ntrack_id = \"547653622\"\ntrack = deezer.get_track(track_id)\n# track is now a dict with a key of info, download, tags, and get_tag\n# info and tags are dict\ntrack_info = track[\"info\"]\ntags_separated_by_comma = track[\"tags\"]\n# download and get_tag are partial functions\ntrack[\"download\"](download_dir, quality=track_formats.MP3_320) # this will download the file, default file name is Filename.[mp3 or flac]\ntags_separated_by_semicolon = track[\"get_tag\"](separator=\"; \") # this will return a dictionary similar to track[\"tags\"] but this will override the default separator\n\nartist_id = \"53859305\"\nartist = deezer.get_artist(artist_id)\n\nalbum_id = \"39949511\"\nalbum = deezer.get_album(album_id) # returns a dict containing data about the album\n\nplaylist_id = \"1370794195\"\nplaylist = deezer.get_playlist(playlist_id) # returns a dict containing data about the playlist\n\n# Multithreaded Downloader\n\nlist_of_id = [\"572537082\",\n              \"921278352\",\n              \"927432162\",\n              \"547653622\"]\n\ndownloader = Downloader(deezer, list_of_ids, download_dir,\n                        quality=track_formats.MP3_320, concurrent_downloads=2)\ndownloader.start()\n```\n\n### Custom ProgressHandler\n\nThis example uses the amazing [tqdm](https://github.com/tqdm/tqdm) package.\n\n#### Code\n\n```python\nfrom pydeezer import Deezer\nfrom pydeezer.ProgressHandler import BaseProgressHandler\nfrom tqdm import tqdm\n\n# Extend BaseProgressHandler and override its initialize, update and close methods accordingly\n\nclass MyProgressHandler(BaseProgressHandler):\n    def __init__(self):\n        pass\n\n    def initialize(self, *args):\n        super().initialize(*args)\n\n        self.pbar = tqdm(self.iterable, total=self.total_size,\n                         unit=\"B\", unit_scale=True, unit_divisor=1024, \n                         leave=False, desc=self.track_title)\n\n    def update(self):\n        self.pbar.update(self.current_chunk_size)\n\n    def close(self):\n        self.pbar.close()\n\n\n# When starting a download, pass your ProgressHandler instance in progress_handler keyword argument.\n\nprint(\"DefaultProgressHandler\")\ntrack[\"download\"](download_dir, quality=track_formats.FLAC)\n\nprint()\n\nmy_progress_handler = MyProgressHandler()\n\nprint(\"CustomProgressHandler\")\ntrack[\"download\"](download_dir, quality=track_formats.FLAC,\n                  progress_handler=my_progress_handler)\n\n```\n\n#### Output\n\n![progresshandlergif](https://media.giphy.com/media/xa8YtgCbBvK0jSfefa/giphy.gif)\n\n## TODO\n\n- [ ] More CLI features, save used Arls for convenience.\n- [x] Multithreaded downloader (1 song / 1 thread)\n- [ ] Binary file\n- [ ] GUI\n\n## Disclaimer\n\nI will and should not be held responsible for the usage of this package.\n\nDon't use this package illegaly and against Deezer's [Terms Of Use](https://www.deezer.com/legal/cgu).\n\nThis is licensed under [GNU GPL v3](https://choosealicense.com/licenses/gpl-3.0/#).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facgonzales%2Fpydeezer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facgonzales%2Fpydeezer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facgonzales%2Fpydeezer/lists"}