Unofficial API for TIDAL music streaming service.
Project description
tidalapi
Unofficial Python API for TIDAL music streaming service.
Requires Python 3.9 or higher.
Installation
Install from PyPI using pip:
$ pip install tidalapi
Usage
For examples on how to use the api, see the 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:
$ pip install pipx
$ pipx install poetry
$ poetry install --no-root
History
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
v0.6.9
v0.6.8
v0.6.7
v0.6.6
Update api token and slightly obfuscate it - morguldir
v0.6.5
Update api token - morguldir
v0.6.4
v0.6.3
v0.6.2
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.