Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

tidalapi

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tidalapi

Unofficial API for TIDAL music streaming service.

  • 0.8.2
  • PyPI
  • Socket score

Maintainers
1

tidalapi

.. image:: https://img.shields.io/pypi/v/tidalapi.svg :target: https://pypi.org/project/tidalapi

.. image:: https://api.netlify.com/api/v1/badges/f05c0752-4565-4940-90df-d2b3fe91c84b/deploy-status :target: https://tidalapi.netlify.com/

Unofficial Python API for TIDAL music streaming service.

Requires Python 3.9 or higher.

Installation

Install from PyPI <https://pypi.python.org/pypi/tidalapi/>_ using pip:

.. code-block:: bash

$ pip install tidalapi

Usage

For examples on how to use the api, see the examples <https://github.com/tamland/python-tidal/tree/master/examples>_ directory.

Documentation

Documentation is available at https://tidalapi.netlify.app/

Development

This project uses poetry for dependency management and packaging. To install dependencies and setup the project for development, run:

.. code-block:: bash

    $ pip install pipx
    $ pipx install poetry
    $ poetry install --no-root

Contributions

Issues, suggestions and PRs are always welcome and are much appreciated.

Maintainer(s)

  • Current:

    • tehkillerbee <https://github.com/tehkillerbee>_
  • Former:

    • tamland <https://github.com/tamland>_
    • morguldir <https://github.com/morguldir>_

.. :changelog:

History

v0.8.2

  • Fixed wrong determination of file extensions for stream metadata. - exislow_
  • Moved LinkLogin and futures to login_oauth. - exislow_
  • Added/updated docstrings for auth methods. - exislow_
  • Methods for device authorization have been renamed considered private. - exislow_

v0.8.1

  • Typings: get_urls() returned value shall be [str]. - exislow_
  • Remove MQA legacy code leftovers, HIRES naming inconsistency - exislow_
  • Tests: Updated unit test(s) - tehkillerbee_

v0.8.0

  • BREAKING: MQA, Sony 360 audio no longer supported July 24th 2024; removed references to these formats. - tehkillerbee_
  • Bugfix: Logical loop of is_encrypted / encryption_key - TooYoungTooSimp_
  • Tests: Added additional playlist, folder tests. - tehkillerbee_
  • Feature: Add support for playlist merging. - tehkillerbee_
  • Added trn to playlist object for convenience. - tehkillerbee_
  • Set limits from argument in all relevant methods. - tehkillerbee_
  • Feature: Use v2 endpoint for playlist creation. - tehkillerbee_
  • Feature: Add support for playlist folders (#181) - tehkillerbee_
  • Feature: Add track to user playlist, user tracks from ISRC (#96) - tehkillerbee_
  • Feature: Add optional fn_print to Session::login_session_file - GioF71_
  • Feature: Add support for moving playlist items (#116) - tehkillerbee_
  • Feature: Allow adding items multiple times to the same playlist - tehkillerbee_
  • Feature: Add support for adding items to a playlists at a specific position (#116) - tehkillerbee_
  • Feature: Set UserPlaylist public/private. Add method for getting public user playlists. - tehkillerbee_
  • Feature: Remove multiple items from UserPlaylist. (Fixes #259) - tehkillerbee_
  • Remove deprecated username/pass login method (Fixes #279) - tehkillerbee_
  • Populate the track/items.album attributes from the parent Album object. Updated tests (Fixes #281) - tehkillerbee_
  • Added clarifications to video_url method. Check video URLs for all available video qualities (Fixes #257) - tehkillerbee_
  • Tests: Fix all tests that previously failed. - tehkillerbee_
  • Use enum to specify default audio / video quality - tehkillerbee_
  • Bugfix: Recent TIDAL changes resulted in missing Mix not causing a ObjectNotFound exception. - tehkillerbee_
  • Bugfix: Ensure manifest.codecs always uses a Codec type for both MPD and BTS. - tehkillerbee_
  • Added additional tests to verify stream formats (Relates to #252) - tehkillerbee_
  • BREAKING: Fix naming of getters to align with python naming convention and avoid confusion (Fixes #255) - tehkillerbee_
  • Bugfix: Use correct internal type int for relevant IDs (Fixes #260) - tehkillerbee_
  • Bugfix: Fix linting for audio_modes. Update tests (Fixes #261) - tehkillerbee_
  • Feat.: Provide "Share Link", "Listen link" as an attribute to album/artist/media/playlist/. Update relevant tests (Fixes #266) - tehkillerbee_
  • Allow switching authentication method oauth/pkce for tests. Default: oauth - tehkillerbee_
  • Tests: Added track stream tests (BTS, MPD) - tehkillerbee_
  • Bugfix: Always use last element in segment timeline. (Fixes #273) - tehkillerbee_
  • Add method to get detailed request error response if an error occurred during request. - tehkillerbee_
  • Tests: Add tests tests for ISRC, barcode methods and cleanup exception handling. - tehkillerbee_
  • Feat.: Add support to get tracks by ISRC. - tehkillerbee_, M4TH1EU_
  • Feat.: Add support to get albums by Barcode ID (UPC). - tehkillerbee_, M4TH1EU_
  • Feat.: Add support for a custom base url in request() and basic_request() to use the new openapi. - M4TH1EU_

v0.7.6

  • Fix: Set token type correctly for OAuth/PKCE authentication - tehkillerbee_
  • Revert to using enums with str support for relevant classes - tehkillerbee_, exislow_
  • Removed return types from method names for consistency, added deprecation warnings - exislow_

v0.7.5

  • Fix: Use wide image when no square picture is available. - tehkillerbee_
  • Feat.: Added HiRes page. - tehkillerbee_
  • Feat.: Handle missing Stream fields gracefully. Get stream audio resolution (bit depth, rate) as tuple. - tehkillerbee_
  • Feat.: Added misc helper functions for audio mode, get available audio mode for media. - tehkillerbee_
  • Feat.: Added misc. fields to album. Get audio resolution for album + individual tracks. - tehkillerbee_
  • Feat.: Added MPEG-DASH to HLS stream parsing, Added MPEG-DASH stream example. - tehkillerbee_
  • Set default artist IMG if missing. Use default album IMG URI instead of direct URL. - tehkillerbee_
  • Bugfix: Make sure is_pkce state is set when pkce_login_url() is used directly. - tehkillerbee_
  • Tests: Added misc tests for ObjectNotFound - tehkillerbee_
  • Error handling: Handle TooManyRequests exceptions gracefully. - tehkillerbee_
  • Error handling: Handle ObjectNotFound exceptions gracefully. - tehkillerbee_
  • Tests: Fix misc tests broken by Tidal. - tehkillerbee_
  • Bugfix: Fix pkce token refresh. - tehkillerbee_
  • Bugfix: Load/store PKCE state from file using wrong client_id. - tehkillerbee_
  • Feat.: Improved error handling (Missing albums, missing lyrics, missing track url etc.). - tehkillerbee_
  • Bugfix: Page Recursion into Categories. - quodrum-glas_

v0.7.4

  • Load/store OAuth/PKCE session to file - tehkillerbee_
  • Add PKCE login for HiRes - exislow_, arnesongit_
  • Include request response on error. Print as warning - tehkillerbee_
  • Fix tests - tehkillerbee_
  • Bugfixes (artist.get_similar) - tehkillerbee_
  • Favourite mixes refactoring - jozefKruszynski_
  • Add typings for Playlist, UserPlaylist, Pages - arusahni_
  • Update favorites.tracks to accept order and orderDirection params - Jimmyscene_

v0.7.3

  • Official support for HI_RES FLAC quality - tehkillerbee_
  • Add helper functions to set audio/video quality for current session - tehkillerbee_
  • Added missing WELCOME_MIX MixType - tehkillerbee_
  • Various image bugfixes - tehkillerbee_
  • Add "for_you" page - tehkillerbee_
  • Various test, poetry bugfixes - 2e0byo_
  • Add typings for Artists and Users - arusahni_
  • Add media metadata - jozefKruszynski_
  • Add option to limit track radio length - jozefKruszynski_
  • Downgrade minimum required version of requests JoshMock_

v0.7.2

  • (BREAKING!) Drop support for python3.8 and older
  • Improved tests - 2e0byo_
  • Add type to album object - jozefKruszynski_
  • Add mix images and tests - jozefKruszynski_
  • Add mypy and fix immediate typing errors - arusahni_
  • New attribute to media.Track() class: 'full_name' - WilliamGuisan_
  • Fix Track.stream() method - ssnailed_
  • Fixed key error for gender when parsing user json - mkaufhol_
  • Drop (almost) all user data we don't use. - 2e0byo_
  • Add typing for media, genres, mixes, and albums - arusahni_
  • Replace TypedDict and NamedTuple with dataclasses - arusahni_
  • Fix circular Imports and Typing - PretzelVector_

v0.7.1

  • Quick fix for "got key error 'picture'" error. - BlackLight_
  • Bring back Radio support - bjesus_
  • Added function for multiple deletions at once bloedboemmel_
  • Use UTC instead of local time for expiry_time lutzbuerkle_

v0.7.0

  • (BREAKING!) Removed obsolete parameter session_id from load_oauth_session - lutzbuerkle_
  • (BREAKING!) Drop support for python2.7 - morguldir_
  • (BREAKING!) Change the architecture of the library to allow for using more files, see the migration guide - morguldir_
  • Add support for tidal pages (e.g. home, videos and explore in the web ui) - morguldir_
  • Add support for parsing mixes and retrieving the media - morguldir_
  • Get rid of the old genre and mood support, you can now find them in the pages instead - morguldir_
  • Update almost all of the json parsing and classes to include more fields - morguldir_
  • Add complete docstrings to many of the functions - morguldir_
  • Tests now cover almost all of the code - morguldir_
  • Pylint scores are now much higher - morguldir_
  • Add option to retrieve master quality tracks (I can't test this, but I believe it works as of writing) - morguldir_
  • Add a few documentation pages explaining the basics - morguldir_
  • Add support for modifying playlists - morguldir_
  • Add a parameter to always fetch the track album if it's not provided - divadsn_
  • Add function to retrieve the year and date from either the release data or the stream start date - divadsn_
  • Improve the performance of the internal get_items() function by using extend - BlackLight_
  • Properly deal with the api returning non-json results - BlackLight_
  • Add support for retrieving the reviews of an album - retired-guy_

v0.6.10

  • Update the client secret - 1nikolas_
  • Use a track url endpoint compatible with the new secret - morguldir_

v0.6.9

  • Update the client secret - morguldir_
  • Fix token_refresh() not correctly including the client secret - morguldir_

v0.6.8

  • Support OAuth login through login_oauth_simple() and login_oauth() - morguldir_
  • Support loading an OAuth session through load_oauth_session() - morguldir_
  • Include more info when a request fails - morguldir_

v0.6.7

  • Fix wimp images not resolving - ktnrg45_
  • Made the favorite playlists function also return created playlists - morguldir_

v0.6.6

  • Update api token and slightly obfuscate it - morguldir_

v0.6.5

  • Update api token - morguldir_

v0.6.4

  • Add parameter to search() allowing for more results (up to 300) - morguldir_
  • Fix get_track_url() not returning anything - morguldir_

v0.6.3

  • Fix quality options using enum names instead of values - morguldir_
  • Handle situations where tidal doesn't set the version tag - morguldir_

v0.6.2

  • Update lossless token - morguldir_
  • Always use the same api token - morguldir_
  • Include additional info when logging fails - morguldir_
  • Make user_id and country_code optional when using load_session() - morguldir_
  • Add version tag for Track - Husky22_
  • Switch to netlify for documentation - morguldir_

.. _morguldir: https://github.com/morguldir .. _Husky22: https://github.com/Husky22 .. _ktnrg45: https://github.com/ktnrg45 .. _1nikolas: https://github.com/1nikolas .. _divadsn: https://github.com/divadsn .. _BlackLight: https://github.com/BlackLight .. _lutzbuerkle: https://github.com/lutzbuerkle .. _retired-guy: https://github.com/retired-guy .. _bjesus: https://github.com/bjesus .. _bloedboemmel: https://github.com/bloedboemmel .. _2e0byo: https://github.com/2e0byo .. _jozefKruszynski: https://github.com/jozefKruszynski .. _arusahni: https://github.com/arusahni .. _WilliamGuisan: https://github.com/WilliamGuisan .. _ssnailed: https://github.com/ssnailed .. _mkaufhol: https://github.com/mkaufhol .. _PretzelVector: https://github.com/PretzelVector .. _tehkillerbee: https://github.com/tehkillerbee .. _JoshMock: https://github.com/JoshMock .. _exislow: https://github.com/exislow .. _arnesongit: https://github.com/arnesongit .. _Jimmyscene: https://github.com/Jimmyscene .. _quodrum-glas: https://github.com/quodrum-glas .. _M4TH1EU: https://github.com/M4TH1EU .. _GioF71: https://github.com/GioF71 .. _TooYoungTooSimp: https://github.com/TooYoungTooSimp

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc