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)
This is the repository for HalpyBOT, the Hull Seals IRC Chatbot Assistant.

HalpyBOT 1.4.2 This is the repository for HalpyBOT, the Hull Seals IRC Chatbot Assistant. Description This repository houses all of the files required

The Hull Seals 3 Nov 03, 2022
An Anime Themed Fast And Safe Group Managing Bot.

Ξ L I N Ξ› πŸ‘Έ A Powerful, Smart And Simple Group Manager bot Avaiilable a latest version as Ξ L I N Ξ› πŸ‘Έ on Telegram Self-hosting (For Devs) vps # Inst

7 Nov 12, 2022
Clash of Clans developer unofficial api Wrapper to generate ip based token

Clash of Clans developer unofficial api Wrapper to generate ip based token

Aryan Vikash 6 Apr 01, 2022
Osmnx-examples - Usage examples, demos, and tutorials for OSMnx.

OSMnx Examples OSMnx is a Python package to work with street networks and other spatial data from OpenStreetMap: retrieve, model, analyze, and visuali

Geoff Boeing 1.2k Jan 03, 2023
Cloud-native, data onboarding architecture for the Google Cloud Public Datasets program

Public Datasets Pipelines Cloud-native, data pipeline architecture for onboarding datasets to the Google Cloud Public Datasets Program. Overview Requi

Google Cloud Platform 109 Dec 30, 2022
ServiceX DID Finder Girder

ServiceX_DID_Finder_Girder Access datasets for ServiceX from yt Hub Finding datasets This DID finder is designed to take a collection id (https://gird

1 Dec 07, 2021
Wrapper for wttr.in weather forecast.

pywttr Wrapper for wttr.in weather forecast. Asynchronous version here. Installation pip install pywttr Example This example prints the average temper

Almaz 6 Dec 25, 2022
A template that help you getting started with Pycord.

A Pycord Template with some example! Getting Started: Clone this repository using git clone https://github.com/AungS8430/pycord-template.git If you ha

2 Feb 10, 2022
Backlog API v2 Client Library for Python

BacklogPy - Backlog API v2 Client Library for Python BacklogPy is Backlog API v2 Client Library for Python 2/3 Install You can install the client libr

Koudai Aono 7 Dec 16, 2022
Python script using Twitter API to change user banner to see 100DaysOfCode process.

100DaysOfCode - Automatic Banners πŸ‘©β€πŸ’» Adds a number to your twitter banner indicating the number of days you have in the #100DaysOfCode challenge Se

Ingrid Echeverri 10 Jul 06, 2022
Trading bot - A Trading bot With Python

Trading_bot Trading bot intended for 1) Tracking current prices of tokens 2) Set

Tymur Kotkov 29 Dec 01, 2022
Discord bot that shows valorant your daily store by using the Ingame API

Valorant store checker - Discord Bot Discord bot that shows valorant your daily store by using the Ingame API. written using Python and the Pycord lib

STACIA 226 Jan 02, 2023
Pythonic and easy iCalendar library (rfc5545)

ics.py 0.8.0-dev : iCalendar for Humans Original repository (GitHub) - Bugtracker and issues (GitHub) - PyPi package (ics) - Documentation (Read The D

ics.py 513 Jan 02, 2023
A discord account nuker with lots of tools that will destroy a discord account

A discord account nuker with lots of tools that will destroy a discord account (token destroyer... and much more).

firexi 10 Apr 28, 2022
search different Streaming Platforms for movie titles.

Install git clone and cd to directory install Selenium download chromedriver.exe to same directory First Run Use --setup True for the first run. Platf

34 Dec 25, 2022
A updated and improved version from the original Discord-Netflix from Nirewen.

Discord-Netflix A updated version from the original Discord-Netflix from nirewen A Netflix wrapper that uses Discord RPC to show what you're watching

Void 42 Jan 02, 2023
This is RequestTrackerBot and it used for tracking request made by user in a group

This is a Request Tracker Bot repo, It is for those who upload content like movies, anime, etc. It can be used for tracking request of content that your members asked for.

Abhijeet 27 Dec 29, 2022
Automatically deploy freqtrade to a remote Docker host and auto update strategies.

Freqtrade Automatically deploy freqtrade to a remote Docker host and auto update strategies. I've been using it to automatically deploy to vultr, but

p-zombie 109 Jan 07, 2023
"Nesse projeto criei uma automaΓ§Γ£o para abrir as tarefas no Jira em massa pegando de uma determinada fila do Zendesk."

automacao-Zendesk "Nesse projeto criei uma automaΓ§Γ£o para abrir as tarefas no Jira em massa pegando de uma determinada fila do Zendesk." en-us "In thi

tokoyamy 1 Dec 20, 2021
🦊 Powerfull Discord Nitro Generator

🦊 Follow me here 🦊 Discord | YouTube | Github β˜• Usage πŸ’» Downloading git clone https://github.com/KanekiWeb/Nitro-Generator/new/main pip insta

Kaneki 104 Jan 02, 2023