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)
A powerful, cool and well-made userbot for your Telegram profile with promising extension capabilities.

Telecharm userbot A powerful, fast and simple Telegram userbot written in Python 3 and based on Pyrogram 1.X. Currently in active WIP state, so feel f

Daniil Kovalenko 16 Dec 01, 2022
Send alert to telegram use telegram cli

Run standalone: Rename conf.yml.example to conf.yml Change block cli(Add your api_id and hash) Install requirements.txt Run python AlertManagerTG.py I

Eugene Arkharov 1 Nov 12, 2021
twitter bot tha uses tweepy library class to connect to TWITTER API

TWITTER-BOT-tweepy- twitter bot that uses tweepy library class to connect to TWITTER API replies to mentions automatically and follows the tweet.autho

Muziwandile Nkomo 2 Jan 08, 2022
A simple bot which using an API , detects reported discord scams and kicks the user if possible while deleting the message

A simple bot which using an API , detects reported discord scams and kicks the user if possible while deleting the message

Vioshim 3 Nov 16, 2022
Fast IP address lookup

ipscoop Fast IP Scoop Table of Contents Installation CLI Getting Started Ref Installation To install ipscoop, simply: $ python3 -m pip install -U git+

6 Mar 16, 2022
A Discord BOT that uses Google Sheets for storing the roles and permissions of a discord server.

Discord Role Manager Bot Role Manager is a discord BOT that utilizes Google Sheets for the organization of a server's hierarchy and permissions. Detai

Dion Rigatos 17 Oct 13, 2022
Build a better understanding of your data in PostgreSQL.

Data Fluent for PostgreSQL Build a better understanding of your data in PostgreSQL. The following shows an example report generated by this tool. It g

Mark Litwintschik 28 Aug 30, 2022
A Python API For Questionnaire

Инструкция по разворачиванию приложения Окружение проекта: python 3.8 Django 2.2.10 djangorestframework Склонируйте репозиторий с помощью git: git clo

2 Feb 14, 2022
Throttle and debounce add-on for Pyrogram

pyrothrottle Throttle and debounce add-on for Pyrogram Quickstart implementation on decorators from pyrogram import Client, filters from pyrogram.type

7 Oct 01, 2022
Telegram bot to trim and download videos from youtube.

Inline-YouTube-Trim-Bot Telegram bot to trim and download youtube videos Deploy You can deploy this bot anywhere. Demo - YouTubeBot Required Variables

SUBIN 56 Dec 11, 2022
Auxiliator is telegram bot for basic web-application analysis

Auxiliator Auxiliator is telegram bot for basic web-application analysis What for? Sometimes there is no access to your main PC, where you can scan we

Revoltage 13 Dec 26, 2021
Pretend to be a discord bot

Pretendabot © Pretend to be a discord bot! About Pretendabot© is an app that lets you become a discord bot!. It uses discord intrigrations(webhooks) a

Advik 3 Apr 24, 2022
dex.guru python sdk

dexguru-sdk.py dexguru-sdk.py allows you to access dex.guru public methods from your async python scripts. Installation To install latest version, jus

DexGuru 17 Dec 06, 2022
Lib for create and show QRCode to PIX, you can show this code in another applications for payment by final consumer.

Biblioteca para a geração de codigos QR (BRCode como chamados na documentação do BACEN) a fins de facilitar a exibição para pagamentos ao consumidor.

João Camargo 13 Oct 05, 2022
🔮 A usefull set of scripts to dig into your Discord data package.

Discord DataExtractor 🔮 Discord DataExtractor is a set of scripts that allows you to dig into your Discord Data package. Repository guide ☕ Coffee_Ga

3 Dec 29, 2021
A simple, lightweight Discord bot running with only 512 MB memory on Heroku

Haruka This used to be a music bot, but people keep using it for NSFW content. Can't everyone be less horny? Bot commands See the built-in help comman

Haruka 4 Dec 26, 2022
A Python library wrapping the iFixit (Dozuki) API.

A Python library wrapping the iFixit API. Status Working, but incomplete. Fully tested and documented. Hacking I highly recommend using virtualenv: [$

James Pearson Hughes 13 May 24, 2021
gBasic - The easy multiplatform bot

gBasic The easy multiplatform bot gBasic is the module at the core of @GianpiertoldaBot, maintained with 3 for the entire community by the Stockdroid

Stockdroid Fans 5 Nov 03, 2021
A file-based quote bot written in Python

Let's Write a Python Quote Bot! This repository will get you started with building a quote bot in Python. It's meant to be used along with the Learnin

Florent 1 Dec 17, 2021
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