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)
simple discord token grabber with webhook hiding feature.

Token Grabber A simple Discord token grabber with base64 webhook encoding, it uses pastebin as a database to get webhook, so next time u dont get your

0 Dec 01, 2021
Tiktok-bot - A Simple Tiktok bot With Python

Install the requirements pip install selenium pip install pyfiglet==0.7.5 How ca

Muchlis Faroqi 5 Aug 23, 2022
Another secured and Yet Fastest telegram userbot

Vision-UserBot A stable, simple Telegram UserBot in Pyrogram! Support Variables ➨ TG_APP_ID - Your Telegram Api id. ➨ TG_API_HASH - Your Telegram Api

TeamVision 40 Oct 24, 2022
Wakatime Response In javascript and python

Project Title Wakatime Response In javascript and python Description just for refrence Getting Started Dependencies For Python: requests json For Java

Gjenius20 1 Dec 31, 2021
Telegram music & video bot direct play music

⚡ NOINOI MUSIC PLAYER 🎵 SUPERFAST MUSIC BOT WHO CAN DIRECT PLAY SONG ON TELEGRAM VOICE CHAT ALSO CAN PLAY VIDEO ON VOICE CHATS ✨ Heroku Deploy YOU CA

noinoi-X 1 Dec 28, 2021
Telegram chats reader with python

Telegram chat reader Программа полностью сливает чаты телеграм в базу данных PostgreSQL. Для использования нужен развернутый сервер постгрес и телегра

Anton 4 Dec 24, 2021
Spore REST API asyncio client

Spore REST API asyncio client

LEv145 16 Aug 02, 2022
A Python Instagram Scraper for Downloading Profile's Posts, stories, ProfilePic and See the Details of Particular Instagram Profile.

✔ ✔ InstAstra ⚡ ⚡ ⁜ Description ~ A Python Instagram Scraper for Downloading Profile's Posts, stories, ProfilePic and See the Details of Particular In

12 Jun 23, 2022
Userbot untuk memutar video dan lagu di vcg/os

Userbot untuk memutar video dan lagu di vcg/os

FJ_GAMING 2 Nov 13, 2021
arweave-nft-uploader is a Python tool to improve the experience of uploading NFTs to the Arweave storage for use with the Metaplex Candy Machine.

arweave-nft-uploader arweave-nft-uploader is a Python tool to improve the experience of uploading NFTs to the Arweave storage for use with the Metaple

0xEnrico 84 Dec 26, 2022
Shred your reddit comment and post history

trasheddit Shred your reddit comment and post history (x89/Shreddit replacement) Usage Simple Example Download trasheddit: git clone https://github.co

Elly 2 Jan 05, 2022
A fully decentralized protocol for private transactions FAST snipe BUY token on LUANCH after add LIQUIDITY

TORNADO CASH Pancakeswap Sniper BOT 2022-V1 (MAC WINDOWS ANDROID LINUX) ⭐️ A fully decentralized protocol for private and safe transactions ⭐️ AUTO DO

Crypto Trader 2 Jan 06, 2022
TeamDltvideo Bot you can add in your Telegram Group Thanks

TeamDltvideo TeamDltvideo Bot you can add in your Telegram Group Thanks Video Stream is a telegram bot project that's allow you to play video on teleg

TeamDlt 1 Nov 18, 2021
Python wrappers for INHECO ODTC and SCILA libraries by INHECO GmbH.

Python wrappers for INHECO ODTC and SCILA libraries by INHECO GmbH.

1 Feb 09, 2022
Telegram bot for logistic - Telegram bot for logistic

Демонстрационный телеграм-бот для нужд транспортной компании Цель проекта Реализ

M1chigun 1 Feb 05, 2022
This Python script will automate the process of uploading your project to GitHub.

ProjectToGithub This Python script will help you to upload your project to Github without having to type in any commands !!! Quick Start guide First C

Imira Randeniya 1 Sep 11, 2022
Utilizing the freqtrade high-frequency cryptocurrency trading framework to build and optimize trading strategies. The bot runs nonstop on a Rasberry Pi.

Freqtrade Strategy Repository Please test all scripts and dry run them before using them in live mode Contact me on discord if you have any questions!

Michael Fourie 90 Jan 01, 2023
A simple Discord Mass-Ban that's still working with Member Scraper.

Mass-Ban [!] This was made for education / you can use for revenge. Please don't skid it. [!] If you want to use it, please use member scraper before

WoahThatsHot 1 Nov 20, 2021
Design and build a wrapper for the Open Weather API current weather data service

Design and build a wrapper for the Open Weather API current weather data service that returns a city's temperature, with caching, also allowing for the temperature of the latest queried cities that a

Duan Rafael Ribeiro 1 Jun 27, 2022