Deezer client for python

Overview

Deezer Python Client

CI Status Documentation Status Test coverage percentage

Poetry black pre-commit

Launch demo on Binder PyPi Status pyversions license LoC

A friendly Python wrapper around the Deezer API.

Installation

The package is published on PyPI and can be installed by running:

pip install deezer-python

Basic Use

Easily query the Deezer API from you Python code. The data returned by the Deezer API is mapped to python resources:

>>> client = deezer.Client()
>>> client.get_album(680407).title
'Monkey Business'

Ready for more? Look at our whole documentation on Read The Docs or have a play in pre-populated Jupyter notebook on Binder.

Contributors


Bruno Alla

💻 📖 🤔 🚧 📦 ⚠️

misuzu

💻 📖 🤔 ⚠️

Pascal

💻 ⚠️

khamaileon

📖

Nikolay Sheregeda

💻 ⚠️

Matheus Horstmann

💻 📖

Kieran Wynne

💻

Jonathan Virga

💻 📖

Hugo

💻

allcontributors[bot]

🚇

nrebena

🐛 💻 ⚠️

Pavel

🐛

Samuel Gaist

💻 ⚠️ 🛡️

Thomas Morelli

🐛 💻 🤔

Naveen M K

💻 🚇

Carababusha

💻

Bertrand Jacquin

💻

This project follows the all-contributors specification. Contributions of any kind are welcome!

Comments
  • feat: drop support for Python 3.5

    feat: drop support for Python 3.5

    Refs: https://github.com/browniebroke/deezer-python/issues/166 Fixes: https://github.com/browniebroke/deezer-python/issues/166

    BREAKING CHANGE: Depreciate python 3.5

    Did I had the commit message correctly? @browniebroke

    opened by naveen521kk 10
  • Add advanced search method

    Add advanced search method

    • [x] Include tests for bug fix and new functionality
    • [x] Updated documentation for new feature
    • [x] Added an entry at the top of History.rst, under the unreleased section

    Hi,

    A small pull request to add the advanced search method see in Search page of Deezer API.

    For the tests, I updated some tests already presents to be compatible with the complete_qs parameter in requests_mock module.

    enhancement 
    opened by jnth 8
  • Fix crash for unknown resource, add Podcast & Episode resources

    Fix crash for unknown resource, add Podcast & Episode resources

    Fixes #132

    Have so far created an empty Podcast class and linked it into Client. Am planning to also take the opportunity to integrate some Podcast API functionality, and add a failsafe to _process_json to prevent a new "type" from causing a crash in the future (by just instantiating a Resource)

    • [x] Include tests for bug fix and new functionality*
    • [x] Updated documentation for new feature (docstrings)

    (*a test for the failsafe would be a test that the program doesn't crash upon finding an unknown "type" field - not sure on the best way to implement this)

    enhancement 
    opened by hithomasmorelli 7
  • Usage example from README not works

    Usage example from README not works

    Am i do something wrong in this?

    Python 3.6.8 (default, Aug 20 2019, 17:12:48) 
    [GCC 8.3.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import deezer
    >>> client = deezer.Client()
    >>> client.get_album(12).title
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: 'Resource' object has no attribute 'title'
    
    bug 
    opened by spvkgn 7
  • feat: deserialize date in `Resource.as_dict()` method

    feat: deserialize date in `Resource.as_dict()` method

    • [x] Include tests for bug fix and new functionality (datetime object are only returned for authenticated API)
    • [x] Updated documentation for new feature (n/a)
    opened by bjacquin 6
  • Write `.env` file as part of oauth script

    Write `.env` file as part of oauth script

    The recently added oauth.py script takes you through the OAuth flow to obtain an access token that can be used for development.

    At the end, the token needs to be copied manually from the browser window to the .env file, but actually, the script could do it out of the box.

    The contributing guide will need to be updated accordingly.

    good first issue hacktoberfest 
    opened by browniebroke 6
  • force US response

    force US response

    If I use this program with a Japanese VPN, all results (such as track name) in Client().search come in japanese? Is there a way you could force US/english results?

    enhancement help wanted 
    opened by aviwad 6
  • Pagination on a search result

    Pagination on a search result

    Hello,

    sorry if it's not the good place to ask this but I didn't find anything on the documentation about it.

    I'm a bit lost how to have more than 100 results in a search

    how work the pagination with a search result?

    Thank in advance

    answered 
    opened by emmanuelvargas 5
  • Add user's favorite albums, artists, tracks and playlists in user resource.

    Add user's favorite albums, artists, tracks and playlists in user resource.

    • [x] Include tests for bug fix and new functionality
    • [x] Updated documentation for new feature
    • [x] Added an entry at the top of HISTORY.rst, under the unreleased section

    Hi Bruno,

    I add some methods in User resource to get user's favorite albums, artists, tracks and playlists.

    Jonathan

    enhancement 
    opened by jnth 5
  • feat: manage user's friends

    feat: manage user's friends

    • [x] Include tests for bug fix and new functionality
    • [x] Updated documentation for new feature

    This allows to manage user's friends:

    • get the followers
    • get, add or remove a following

    Also fix a return type in the doc

    opened by prndrbr 4
  • AttributeError: 'Episode' object has no attribute 'link'

    AttributeError: 'Episode' object has no attribute 'link'

    When using the following code with v5.3.3 of this lib

    deezer_client = deezer.Client()
    deezer_podcast = deezer_client.get_podcast(3330122)
    deezer_episodes = deezer_podcast.get_episodes()
    
    for episode in deezer_episodes:
       print(episode.title)
       print(dir(episode))
       print(episode.link)
    

    I get an output like

    my episode title
    ['__annotations__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_fields', '_fields_parsers', '_parse_release_date', 'as_dict', 'client', 'duration', 'get_paginated_list', 'get_relation', 'id', 'picture', 'podcast', 'release_date', 'title', 'type']
    Traceback (most recent call last):
      [...],
      File "/path/to/file.py", line 517, in function_name
        print(episode.link)
    AttributeError: 'Episode' object has no attribute 'link'
    

    According to deezer.Episode, this attribute should be available. According to the official deezer docs as well.

    As a workaround, I can craft the link myself like f"https://www.deezer.com/de/episode/{episode.id}".

    Is this a bug or a mistake on my side?

    opened by andygrunwald 4
  • Dependency Dashboard

    Dependency Dashboard

    This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

    This repository currently has no open or pending branches.

    Detected dependencies

    github-actions
    .github/workflows/ci.yml
    • actions/checkout v3
    • actions/setup-python v4
    • snok/install-poetry v1.3.3
    • codecov/codecov-action v3.1.1
    • actions/checkout v3
    • wagoid/commitlint-github-action v5.3.0
    • actions/checkout v3
    • relekang/python-semantic-release v7.32.2
    .github/workflows/codeql.yml
    • actions/checkout v3
    • github/codeql-action v2
    • github/codeql-action v2
    • github/codeql-action v2
    .github/workflows/hacktoberfest.yml
    • browniebroke/hacktoberfest-labeler-action v2.3.0
    .github/workflows/issue-manager.yml
    • tiangolo/issue-manager 0.4.0
    .github/workflows/labels.yml
    • actions/checkout v3
    • actions/setup-python v4
    .github/workflows/poetry-upgrade.yml
    • browniebroke/github-actions v1
    .github/workflows/semantic-release.yml
    • actions/checkout v3
    • relekang/python-semantic-release v7.32.2
    poetry
    pyproject.toml
    • requests >=2.18
    • myst-parser >=0.16
    • sphinx >=4.0
    • sphinx-autobuild >=2021.0
    • sphinx-rtd-theme >=1.0
    • coverage ^7.0
    • environs ^9.3
    • pytest ^7.0
    • pytest-cov ^4.0
    • pytest-mock ^3.6
    • pytest-vcr ^1.0
    • vcrpy ^4.1
    • deezer-oauth-cli ^0.4
    pre-commit
    .pre-commit-config.yaml
    • pre-commit/pre-commit-hooks v4.4.0
    • python-poetry/poetry 1.3.1
    • pre-commit/mirrors-prettier v3.0.0-alpha.4
    • asottile/pyupgrade v3.3.1
    • PyCQA/isort 5.11.4
    • psf/black 22.12.0
    • codespell-project/codespell v2.2.2
    • PyCQA/flake8 6.0.0
    • commitizen-tools/commitizen v2.39.1
    • PyCQA/bandit 1.7.4

    • [ ] Check this box to trigger a request for Renovate to run again on this repository
    opened by renovate[bot] 0
  • Add a page to features apps built with this

    Add a page to features apps built with this

    Starting point: https://github.com/browniebroke/deezer-python/network/dependents. Gives for instance:

    • https://github.com/jnth/soco-deezer-plugin
    • https://github.com/IRISIB/JukeBox
    enhancement 
    opened by browniebroke 1
Releases(v5.8.1)
[Fullversion]Web3 Pancakeswap Sniper bot written in python3.

🚀 Pancakeswap BSC Sniper Bot 🚀 Web3 Pancakeswap Sniper && Take Profit/StopLose bot written in python3, Please note the license conditions! The secon

21 Dec 11, 2022
A discord nuking tool made by python, this also has nuke accounts, inbuilt Selfbot, Massreport, Token Grabber, Nitro Sniper and ALOT more!

Disclaimer: Rage Multi Tool was made for Educational Purposes This project was created only for good purposes and personal use. By using Rage, you agr

†† 50 Jul 19, 2022
A Simple Google Translate Bot By VndGroup ❤️ Made With Python

VndGroup Google Translator Heroku Deploy ❤️ Functions This Bot Can Translate 95 Languages We Can Set Custom Language Group Support Mandatory Vars [+]

Venuja Sadew 1 Oct 09, 2022
Telegram Bot For Screenshot Generation.

Screenshotit_bot Telegram Bot For Screenshot Generation. Description An attempt to implement the screenshot generation of telegram files without downl

1 Nov 06, 2021
This Is A Python Program To Showcase Two Modules (Gratient And Fade)

Hellooo, It's PndaBoi Here! This Is A Python Program To Showcase Two Modules (Gratient And Fade). I Really Like Both Of These Modules So I Decided To

PndaBoi! 6 May 31, 2022
Auto Join: A GitHub action script to automatically invite everyone to the organization who comment at the issue page.

Auto Invite To Org By Issue Comment A GitHub action script to automatically invite everyone to the organization who comment at the issue page. What is

Max Base 6 Jun 08, 2022
Bearer API client for Python

Bearer Python Bearer Python client Installation pip install bearer Usage Get your Bearer Secret Key and integration id from the Dashboard and use the

Bearer 9 Oct 31, 2022
Discord-Wrapper - Discord Websocket Wrapper in python

This does not currently work and is in development Discord Websocket Wrapper in

3 Oct 25, 2022
Account Profiles Dumper for Fortnite.

Fortnite Profile Dumper This program allows you to dump your Fortnite account profiles. How to use it? After starting the FortniteProfileDumper.py, yo

PRO100KatYT 12 Jul 28, 2022
Signs the target email up to over 1000 different mailing lists to get spammed each day.

Email Bomber Say goodbye to that email Features Signs up to over 1k different mailing lists Written in python so the program is lightweight Easy to us

Loxdr 1 Nov 30, 2021
📖 GitHub action schedular (cron) that posts a Hadith every hour on Twitter & Facebook.

Hadith Every Hour 📖 A bot that posts a Hadith every hour on Twitter & Facebook (Every 3 hours for now to avoid spamming) Follow on Twitter @HadithEve

Ananto 13 Dec 14, 2022
See GitHub API on terminal

gitbees About gitbees uses the GitHub API to show user data and ``repos` Using Make sure you have a python interpreter and then python gitbees.py Lice

Marcello Belanda 1 Nov 29, 2021
Console BeautifulDiscord theme manager

BeautifulDiscord theme manager Console script for downloading & managing Discord .css themes via BeautifulDiscord. Setup Simply run # Linux/MacOS pip3

1 Dec 15, 2022
A MassDM selfbot which is working in 2021

mass-dm-discord - Little preview of the Logger and the Spammer Features Logging User IDS Sending DMs to the logged IDs Blacklist IDs (add the ID of th

karma.meme 88 Dec 26, 2022
itadori webhook spammer fucker

itadori-webhook-spammer-fucker Installation # install the requirements $ python3 -m pip install -r requirements.txt $ python3 main.py Repl.it: https:/

6 Mar 05, 2022
Using AWS Batch jobs to bulk copy/sync files in S3

Using AWS Batch jobs to bulk copy/sync files in S3

AWS Samples 14 Sep 19, 2022
A QQ(Tencent) robot created by go-cqhttp & nonebot2

绘梨花(胶布)Bot|ErikaBot ✨ 基于NoneBot2的绘梨花多功能 Bot ,自用 ✨ 快速开始 参考go-cqhttp项目文档,配置好机器人的相关设置,以及反向ws客户端 参考nonebot2项目文档,添加必要的.env相关设置 安装本项目相关的依赖库(依赖清单) git clone本

10 Aug 09, 2022
Automated endpoint management for Amazon Aurora Global Database

This sample code can be used to manage Aurora global database endpoints. After failover the global database writer endpoints swap from one region to the other. This solution automates creation and ma

AWS Samples 13 Dec 08, 2022
A Python wrapper for Discord RPC API

Discord RPC An Python wrapper for Discord RPC API. Allow you to make own custom RPC Install PyPI pip install discord-rpc Quick example import Discord

LyQuid :3 10 Dec 29, 2022
Download apps and remove icloud

Download apps and remove icloud