Skip to main content

Download Tidal tracks with CLI downloader.

Project description

Tidal Downloader

Download tracks and videos from Tidal with max quality! tiddl is CLI app written in Python.

[!WARNING] This app is for personal use only and is not affiliated with Tidal. Users must ensure their use complies with Tidal's terms of service and local copyright laws. Downloaded tracks are for personal use and may not be shared or redistributed. The developer assumes no responsibility for misuse of this app.

PyPI - Downloads PyPI - Version

Installation

tiddl is available at python package index and you can install it with your favorite Python package manager.

[!IMPORTANT] Also make sure you have installed ffmpeg - it is used to convert downloaded tracks to proper format.

uv

We recommend using uv

uv tool install tiddl

pip

You can also use pip

pip install tiddl

docker

coming soon

Usage

Run the app with tiddl

$ tiddl
 Usage: tiddl [OPTIONS] COMMAND [ARGS]...

 tiddl - download tidal tracks ♫

╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --omit-cache            --no-omit-cache      [default: no-omit-cache]                                       │
│ --debug                 --no-debug           [default: no-debug]                                            │
│ --install-completion                         Install completion for the current shell.                      │
│ --show-completion                            Show completion for the current shell, to copy it or customize │
│                                              the installation.                                              │
│ --help                                       Show this message and exit.                                    │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ──────────────────────────────────────────────────────────────────────────────────────────────────╮
│ auth       Manage Tidal authentication.                                                                     │
│ download   Download Tidal resources.                                                                        │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Authentication

Login to app with your Tidal account: run the command below and follow instructions.

tiddl auth login

Downloading

You can download tracks / videos / albums / artists / playlists / mixes.

$ tiddl download url <url>

[!TIP] You don't have to paste full urls, track/103805726, album/103805723 etc. will also work

Run tiddl download to see available download options.

Error Handling

By default, tiddl stops when encountering unavailable items in collections such as playlists, albums, artists, or mixes (e.g., removed or region-locked tracks).

Use --skip-errors to automatically skip these items and continue downloading:

tiddl download url <url> --skip-errors

Skipped items are logged with track/album name and IDs for reference.

Quality

Quality File extension Details
LOW .m4a 96 kbps
NORMAL .m4a 320 kbps
HIGH .flac 16-bit, 44.1 kHz
MAX .flac Up to 24-bit, 192 kHz

Output

You can format filenames of your downloaded resources and put them in different directories.

For example, setting output flag to "{album.artist}/{album.title}/{item.number:02d}. {item.title}" will download tracks like following:

Music
└── Kanye West
    └── Graduation
        ├── 01. Good Morning.flac
        ├── 02. Champion.flac
        ├── 03. Stronger.flac
        ├── 04. I Wonder.flac
        ├── 05. Good Life.flac
        ├── 06. Can't Tell Me Nothing.flac
        ├── 07. Barry Bonds.flac
        ├── 08. Drunk and Hot Girls.flac
        ├── 09. Flashing Lights.flac
        ├── 10. Everything I Am.flac
        ├── 11. The Glory.flac
        ├── 12. Homecoming.flac
        ├── 13. Big Brother.flac
        └── 14. Good Night.flac

[!NOTE] Learn more about file templating

Configuration files

Files of the app are created in your home directory. By default, the app is located at ~/.tiddl.

You can (and should) create the config.toml file to configure the app how you want.

You can copy example config from docs config.example.toml

Environment variables

Custom app path

You can set TIDDL_PATH environment variable to use custom path for tiddl app.

Example CLI usage:

TIDDL_PATH=~/custom/tiddl tiddl auth login

Auth stopped working?

Set TIDDL_AUTH environment variable to use another credentials.

TIDDL_AUTH=<CLIENT_ID>;<CLIENT_SECRET>

Development

Clone the repository

git clone https://github.com/oskvr37/tiddl
cd tiddl

You should create virtual environment and activate it

uv venv
source .venv/Scripts/activate

Install package with --editable flag

uv pip install -e .

Resources

Tidal API wiki (api endpoints)

Tidal-Media-Downloader (inspiration)

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.

Source Distribution

tiddl-3.4.0a1.tar.gz (37.8 kB view details)

Uploaded Source

Built Distribution

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

tiddl-3.4.0a1-py3-none-any.whl (47.5 kB view details)

Uploaded Python 3

File details

Details for the file tiddl-3.4.0a1.tar.gz.

File metadata

  • Download URL: tiddl-3.4.0a1.tar.gz
  • Upload date:
  • Size: 37.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for tiddl-3.4.0a1.tar.gz
Algorithm Hash digest
SHA256 272b1833540895b93f7d412fd8ebcdff156a09cace604dd7331f4755f0267669
MD5 d9bbbd8a98c48fd1d1ec433ec4a33ae8
BLAKE2b-256 102201ff5b294e0a2fefcc8c674a1fb8b636d10a4723cffc72233233171b52f1

See more details on using hashes here.

File details

Details for the file tiddl-3.4.0a1-py3-none-any.whl.

File metadata

  • Download URL: tiddl-3.4.0a1-py3-none-any.whl
  • Upload date:
  • Size: 47.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for tiddl-3.4.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 224a2fc9b934569b1a95fc8ab857674ffbac53dbde909861a2962adc486d4ba8
MD5 f5495a2c41b575afd94cd43f0bf739e4
BLAKE2b-256 12f1267babb40b339b7f595d952cb6b52af6a7b98311a4ab0d338cb51fbd9ad7

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