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)
An example of matrix addition, demonstrating the basic method of Python calling C library functions

Example for Python call C functions An example of matrix addition, demonstrating the basic method of Python calling C library functions. How to run Bu

Quantum LIu 2 Dec 21, 2021
Trading Strategies (~50%) developed by GreenT on QuantConnect platform over the autumn quarter

Trading Strategies ~50% of codes from the Applied Financial Technology Course. Contributors: Claire W. Derrick T. Frank L. Utkarsh T. Course Leads: Dy

Utkarsh 2 Feb 07, 2022
A simple script that can be used to track real time that user was online in telegram

TG_OnlineTracker A simple script that can be used to track real time that user was online in telegram Join @DaisySupport_Official ๐ŸŽต for help ๐Ÿƒโ€โ™‚๏ธ Ea

Inuka Asith 15 Oct 23, 2022
Changes your desktop wallpaper based on the weather.

WallPaperChanger ๐Ÿ–ผ๏ธ Description โ›ˆ๏ธ This Python script changes your desktop wallpaper based on the weather. Cloning ๐ŸŒ€ $ git clone https://github.com/

Clarence Yang 74 Nov 29, 2022
Robust and blazing fast open-redirect vulnerability scanner with ability of recursevely crawling all of web-forms, entry points, or links with data.

After Golismero project got dead there is no more any up to date open-source tool that can collect links with parametrs and web-forms and then test th

railway zeppelin 34 Aug 25, 2022
This is a Innexia Chat Bot Open Source Code ๐Ÿคฌ

โšก Innexia โšก A Powerful, Smart And Simple Chat Bot ... Written with Python... Available on Telegram as @InnexiaChatBot โค๏ธ Support โญ๏ธ Thanks to everyone

Dark Cyber 4 Oct 02, 2022
The open source version of Tentro - A multipurpose Discord bot.

Welcome to Tentro ๐Ÿ‘‹ A multipurpose Discord bot. ๐Ÿ  Homepage Install pip install -r requirements.txt Usage py Tentro.py Contributors ๐Ÿ‘ค Tentro Dev Tea

6 Jul 14, 2022
Get an SNS alert for High Severity GuardDuty findings

Automation AWS-GuardDuty findings Get an SNS alert for High Severity GuardDuty findings Problem: Getting notified when there is Red finding in AWS Gua

Giten Mitra 4 Nov 18, 2022
Scuttlecrab.py - Python Version of Scuttle Crab Bot

____ _ _ _ ____ _ / ___| ___ _ _| |_|

Fabrizo 4 Jul 08, 2022
veez music bot is a telegram music bot project, allow you to play music on voice chat group telegram.

๐ŸŽถ Veez Music Bot Music bot for playing music on telegram voice chat group. Requirements ๐Ÿ“ FFmpeg NodeJS nodesource.com Python 3.7+ PyTgCalls ๐Ÿงช Get

levina 143 Jun 19, 2022
This is new discord nitro generator for discord

Hello! This is new discord nitro generator for discord. If you want use it, To generator i added checker for no seraching generator and checker. This tool maked by .

ItzBolt 1 Jan 16, 2022
The Easy-to-use Dialogue Response Selection Toolkit for Researchers

Easy-to-use toolkit for retrieval-based Chatbot Our released data can be found at this link. Make sure the following steps are adopted to use our code

GMFTBY 32 Nov 13, 2022
Reddit comment bot emulating Telugu actor N. Bala Krishna.

Balayya-Bot Reddit comment bot emulating Telugu actor N. Bala Krishna. Project structure config.py contains Bot's higher level configuration. generate

Kari Lorince 2 Nov 05, 2021
Properly-formatted dynamic timestamps for Discord messages

discord-timestamps discord-timestamps generates properly-formatted dynamic timestamps for Discord messages, with support for Arrow objects. format

Ben Soyka 2 Mar 10, 2022
TuShare is a utility for crawling historical data of China stocks

TuShare Tushare Pro็‰ˆๅทฒๅ‘ๅธƒ๏ผŒ่ฏท่ฎฟ้—ฎๆ–ฐ็š„ๅฎ˜็ฝ‘ไบ†่งฃๅ’ŒๆŸฅ่ฏขๆ•ฐๆฎๆŽฅๅฃ๏ผ https://tushare.pro TuShareๆ˜ฏๅฎž็Žฐๅฏน่‚ก็ฅจ/ๆœŸ่ดง็ญ‰้‡‘่žๆ•ฐๆฎไปŽๆ•ฐๆฎ้‡‡้›†ใ€ๆธ…ๆด—ๅŠ ๅทฅ ๅˆฐ ๆ•ฐๆฎๅญ˜ๅ‚จ่ฟ‡็จ‹็š„ๅทฅๅ…ท๏ผŒๆปก่ถณ้‡‘่ž้‡ๅŒ–ๅˆ†ๆžๅธˆๅ’Œๅญฆไน ๆ•ฐๆฎๅˆ†ๆž็š„ไบบๅœจๆ•ฐๆฎ่Žทๅ–ๆ–น้ข็š„้œ€ๆฑ‚๏ผŒๅฎƒ็š„็‰น็‚นๆ˜ฏๆ•ฐๆฎ่ฆ†็›–่Œƒๅ›ดๅนฟ๏ผŒๆŽฅๅฃ

ๆŒ–ๅœฐๅ…” 11.9k Dec 30, 2022
Python API Client for Twitter API v2

๐Ÿ Python Client For Twitter API v2 ๐Ÿš€ Why Twitter Stream ? Twitter-Stream.py a python API client for Twitter API v2 now supports FilteredStream, Samp

Twitivity 31 Nov 19, 2022
Let your friends know when you are online and offline xD

Twitter Last Seen Activity Let your friends know when you are online and offline Laser-light eyes when online Last seen is mentioned in user bio Also

Kush Choudhary 12 Aug 16, 2021
TgMusicBot is a telegram userbot for playing songs in telegram voice calls based on Pyrogram and PyTgCalls.

TgMusicBot [Stable] TgMusicBot is a telegram userbot for playing songs in telegram voice calls based on Pyrogram and PyTgCalls. Commands !start / !hel

KรผrลŸad 21 Dec 25, 2022
Signs API calls to SberCloud.Advanced with AK/SK

sbercloud-api-aksk Signs API calls to SberCloud.Advanced with AK/SK This script is a courtesy of @sadpdtchr Description Sometimes there is a need to m

Peter Predtechensky 1 Nov 30, 2021
Discord bot that manages expiration of roles with subscriptions!

Discord bot that manages expiration of roles with subscriptions!

Chakeaw__ 3 Apr 28, 2022