Unofficial API for TIDAL music streaming service.
Project description
tidalapi
Unofficial Python API for TIDAL music streaming service.
Requires Python 3.9 or higher.
0.7.x Migration guide
The 0.7.x rewrite is now complete, see the migration guide for dealing with it
Installation
Install from PyPI using pip:
$ pip install tidalapi
Example usage
import tidalapi
session = tidalapi.Session()
# Will run until you visit the printed url and link your account
session.login_oauth_simple()
# Override the required playback quality, if necessary
# Note: Set the quality according to your subscription.
# Normal: Quality.low_320k
# HiFi: Quality.high_lossless
# HiFi+ Quality.hi_res_lossless
session.audio_quality = Quality.low_320k
album = session.album(66236918)
tracks = album.tracks()
for track in tracks:
print(track.name)
for artist in track.artists:
print(' by: ', artist.name)
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.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.