Skip to content

oskvr37/tiddl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tidal Downloader

TIDDL is the Python CLI application that allows downloading Tidal tracks. Fully typed, only 2 requirements.

GitHub top language PyPI - Version GitHub commits since latest release

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 quality
  • tiddl <input> downloads with high quality
  • tiddl <input> -q master downloads with best possible quality
  • tiddl 284165609 -p my_folder -o "{artist} - {title}" downloads track to my_folder/{artist} - {title}.flac
  • tiddl track/284165609 -p my_folder -o "{artist} - {title}" -s same as above, but saves my_folder as default download path and {artist} - {title} as default file format

Valid input

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

Resources

Tidal API wiki