Awesome
Tidal Downloader
TIDDL is the Python CLI application that allows downloading Tidal tracks. Fully typed, only 2 requirements.
<img src="https://img.shields.io/badge/gitmoji-%20😜%20😍-FFDD67.svg?style=for-the-badge" />
It's inspired by Tidal-Media-Downloader - currently not mantained project. This repository will contain features requests from that project and will be the enhanced version.
Installation
Install package using pip
pip install tiddl
After installation you can use tiddl
to set up auth token
$ tiddl
> go to https://link.tidal.com/xxxxx and add device!
authenticated!
token expires in 7 days
Use tiddl -h
to show help message
CLI
After authentication - when your token is ready - you can start downloading!
You can download tracks
albums
playlists
artists albums
tiddl -s -q high
sets high quality as default qualitytiddl <input>
downloads with high qualitytiddl <input> -q master
downloads with best possible qualitytiddl 284165609 -p my_folder -o "{artist} - {title}"
downloads track tomy_folder/{artist} - {title}.flac
tiddl track/284165609 -p my_folder -o "{artist} - {title}" -s
same as above, but savesmy_folder
as default download path and{artist} - {title}
as default file format
Valid input
- 284165609 (will treat this as track id)
- https://tidal.com/browse/track/284165609
- track/284165609
- https://listen.tidal.com/album/284165608/track/284165609
- https://listen.tidal.com/album/284165608
- album/284165608
- https://listen.tidal.com/artist/7695548
- artist/7695548
- https://listen.tidal.com/playlist/803be625-97e4-4cbb-88dd-43f0b1c61ed7
- playlist/803be625-97e4-4cbb-88dd-43f0b1c61ed7
File formatting
Key | Example | Comment |
---|---|---|
title | Money Trees | |
artist | Kendrick Lamar | |
artists | Kendrick Lamar, Jay Rock | |
album | good kid, m.A.A.d city | |
number | 5 | number on album |
disc_number | 1 | number of album volume |
released | 10/22/2012 | release date |
year | 2012 | year of release date |
playlist | Kendrick Lamar Essentials | title of playlist will only appear when you download playlist |
playlist_number | 15 | index of track on the playlist |
id | 20556797 | id on Tidal |
Modules
You can also use TIDDL as module, it's fully typed so you will get type hints
from tiddl import TidalApi, Config
config = Config()
api = TidalApi(
config["token"],
config["user"]["user_id"],
config["user"]["country_code"]
)
album_id = 284165608
album = api.getAlbum(album_id)
print(f"{album["title"]} has {album["numberOfTracks"]} tracks!")
Testing
python -m unittest tiddl/tests.py