Skip to main content

Unofficial API for TIDAL music streaming service.

Project description

tidalapi

https://img.shields.io/pypi/v/tidalapi.svg https://api.netlify.com/api/v1/badges/f05c0752-4565-4940-90df-d2b3fe91c84b/deploy-status

Unofficial Python API for TIDAL music streaming service.

Requires Python 3.7 or higher.

0.7.0 Rewrite

The 0.7.0 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()
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.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

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tidalapi-0.7.2.tar.gz (30.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tidalapi-0.7.2-py3-none-any.whl (37.8 kB view details)

Uploaded Python 3

File details

Details for the file tidalapi-0.7.2.tar.gz.

File metadata

  • Download URL: tidalapi-0.7.2.tar.gz
  • Upload date:
  • Size: 30.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for tidalapi-0.7.2.tar.gz
Algorithm Hash digest
SHA256 0b2cafce1b8307d5e0ae878ff963d3248b9f4f7554f5f0fa3e0d90d69ac1d0ca
MD5 4259551825131db2eb4ff7ea275569ee
BLAKE2b-256 072cc14afe2ffc4294f2d1411fdcc2925fb9466cff37e386aad442047a255043

See more details on using hashes here.

File details

Details for the file tidalapi-0.7.2-py3-none-any.whl.

File metadata

  • Download URL: tidalapi-0.7.2-py3-none-any.whl
  • Upload date:
  • Size: 37.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for tidalapi-0.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 09f456a76651688b0dcadbb714ac299527179aa6d457d621c6b059788ef58c21
MD5 ed9e550d3dd19e3163c5fc62c70f43ee
BLAKE2b-256 08d8cab11a880c8f24d84aaf0fee39af65c3ca504b7dbbc42372856d34f48ee0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page