Skip to main content

Tidekeeper

Tidekeeper

Tidekeeper is an unofficial maintained fork of yaronzz/Tidal-Media-Downloader, with a reliable terminal workflow and optional desktop GUI. The primary command is tidekeeper; tidal-dl remains available for compatibility.

CI Build PyPI Release License Python

Install

Tidekeeper requires Python 3.10 or newer.

ffmpeg is recommended for video downloads and optional FLAC remux (tidekeeper --doctor reports whether it is available).

From PyPI (recommended)

python -m pip install -U tidekeeper
tidekeeper --help

Desktop GUI:

python -m pip install -U "tidekeeper[gui]"
tidekeeper-gui

From Git

python -m pip install -U "git+https://github.com/OpenNerdz/tidekeeper.git#subdirectory=TIDALDL-PY"
tidekeeper --help

One-line installer (Linux / Termux)

curl -fsSL https://raw.githubusercontent.com/OpenNerdz/tidekeeper/main/install.sh | bash

For Android shared storage, run termux-setup-storage and optionally set:

export TIDEKEEPER_DOWNLOAD_PATH="/storage/emulated/0/Download/Tidekeeper"

Prebuilt binaries

Terminal and desktop GUI executables for Windows, macOS, and Linux are attached to each GitHub Release.

Docker

Build the image from the repository, then persist account configuration and downloads with bind mounts. The image includes ffmpeg.

docker build -t tidekeeper .
docker run --rm -it \
  -v "$PWD/config:/config" \
  -v "$PWD/downloads:/downloads" \
  tidekeeper
docker run --rm \
  -v "$PWD/config:/config" \
  -v "$PWD/downloads:/downloads" \
  tidekeeper -l "https://tidal.com/browse/track/70973230"

The container runs as non-root UID 1000. Ensure both host directories are writable by that user. A GUI is not included in the container image.

Usage

tidekeeper --help
tidekeeper --doctor
tidekeeper --paths
tidekeeper --open-output
tidekeeper --update
tidekeeper -l "https://tidal.com/browse/track/70973230"
tidekeeper --video-only -l "https://tidal.com/browse/artist/123456"

Dolby Atmos downloads are opt-in with tidekeeper -q Atmos (or GUI audio quality Atmos). TIDAL keeps Atmos mixes on separate catalog IDs that often report quality LOW with an Atmos flag — search now labels those rows clearly, and when Atmos quality is selected Tidekeeper will switch a stereo album/track pick to the matching Atmos catalog release when one exists.

Failed downloads are saved to failed-tracks.txt in the download folder and can be retried with:

tidekeeper -l "/path/to/downloads/failed-tracks.txt"

Customizability

Custom filename formats are supported:

Tokens Description Album Track Video Playlist
{ArtistID} Comma separated list of each artists' ID for that media (i.e: 123, 456) :white_check_mark: :white_check_mark: :white_check_mark: :x:
{ArtistName} Comma separated list of each artists' name for that media (i.e: ABC, DEF) :white_check_mark: :x: :x: :x:
{ArtistName} Primary artist's name for that media :x: :white_check_mark: :white_check_mark: :x:
{ArtistsName} Comma separated list of each artists' name for that media (i.e: ABC, DEF) :x: :white_check_mark: :white_check_mark: :x:
{AlbumArtistID} Primary artist's ID for that media :white_check_mark: :x: :x: :x:
{AlbumArtistName} Primary artist's name for that media :white_check_mark: :x: :x: :x:
{TrackArtistID} Primary artist's ID for that media :x: :white_check_mark: :x: :x:
{TrackArtistName} Primary artist's name for that media :x: :white_check_mark: :x: :x:
{VideoArtistID} Primary artist's ID for that media :x: :x: :white_check_mark: :x:
{VideoArtistName} Primary artist's name for that media :x: :x: :white_check_mark: :x:
{Flag} Quality/content flags: M (Master), A (Dolby Atmos), E (Explicit) :white_check_mark: :x: :x: :x:
{AlbumID} :white_check_mark: :x: :x: :x:
{AlbumYear} :white_check_mark: :white_check_mark: :x: :x:
{AlbumTitle} :white_check_mark: :white_check_mark: :x: :x:
{AudioQuality} Audio quality reported by TIDAL (e.g. LOSSLESS, HI_RES) :white_check_mark: :white_check_mark: :x: :x:
{DurationSeconds} :white_check_mark: :white_check_mark: :x: :x:
{Duration} Duration formatted as MM:SS (or H:MM:SS) :white_check_mark: :white_check_mark: :x: :x:
{NumberOfTracks} :white_check_mark: :x: :x: :x:
{NumberOfVideos} :white_check_mark: :x: :x: :x:
{NumberOfVolumes} :white_check_mark: :x: :x: :x:
{ReleaseDate} :white_check_mark: :x: :x: :x:
{RecordType} :white_check_mark: :x: :x: :x:
{TrackID} :x: :white_check_mark: :x: :x:
{TrackNumber} :x: :white_check_mark: :x: :x:
{TrackTitle} :x: :white_check_mark: :x: :x:
{ExplicitFlag} :x: :white_check_mark: :white_check_mark: :x:
{StreamQuality} :x: :white_check_mark: :x: :x:
{Codec} :x: :white_check_mark: :x: :x:
{VideoID} :x: :x: :white_check_mark: :x:
{VideoNumber} :x: :x: :white_check_mark: :x:
{VideoTitle} :x: :x: :white_check_mark: :x:
{VideoYear} :x: :x: :white_check_mark: :x:
{PlaylistUUID} :x: :x: :x: :white_check_mark:
{PlaylistName} :x: :x: :x: :white_check_mark:

Desktop GUI

The GUI provides login, search, queueing, downloads, settings, diagnostics, and updates. After installing with the GUI extra above, launch it with tidekeeper-gui or tidekeeper --gui. Update GUI installs with tidekeeper --update-gui.

Search Queue
Search screen Queue screen
Settings Account
Settings screen Account screen

Troubleshooting

Run diagnostics first:

tidekeeper --doctor
tidekeeper --paths

For repeated HTTP 429 errors, keep Use request delay enabled and raise Request delay seconds to 30 or 60 before retrying.

If doctor warns that ffmpeg is missing, install it from your OS package manager (or use the Docker image). Video downloads and FLAC remux may otherwise be limited.

If Termux reports cannot locate symbol "x265_api_get_216", refresh its media packages with pkg upgrade -y && pkg reinstall -y ffmpeg x265. If that fails, change mirrors with termux-change-repo and retry.

Development

See CONTRIBUTING.md for setup and checks, CHANGELOG.md for release history, and SECURITY.md for private vulnerability reporting.

git clone https://github.com/OpenNerdz/tidekeeper.git
cd tidekeeper/TIDALDL-PY
python -m pip install -e .
python -m unittest discover -s tests

Build release artifacts with ./build.sh from the repository root.

Project policy

Tidekeeper does not aim to bypass access controls, subscription checks, or DRM. Use it only where permitted by law and applicable service terms. This project is not affiliated with or endorsed by TIDAL or Block, Inc.

The original project was created by YaronH and contributors. See NOTICE and LICENSE for attribution and licensing.

Release files for tidekeeper 2026.8.31.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tidekeeper 2026.8.31.0
File Size Uploaded
tidekeeper-2026.8.31.0.tar.gz 129.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tidekeeper 2026.8.31.0
File Interpreter ABI Platform
tidekeeper-2026.8.31.0-py3-none-any.whl Python 3 none any Details

Total release size: 252.3 kB

Release files / tidekeeper-2026.8.31.0.tar.gz

Download URL tidekeeper-2026.8.31.0.tar.gz
Size 129.0 kB
Tags Source
SHA-256 checksum
How to use checksums
998c3db0884ef2ca761578b48fe1973b918d9ca48516cf3765eb80af1f28dab7
BLAKE2b-256 checksum
How to use checksums
ff254a07f5f950441e41706c037e52f45d02924f157725fdeaef9b59b4a8cdd7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / tidekeeper-2026.8.31.0-py3-none-any.whl

Download URL tidekeeper-2026.8.31.0-py3-none-any.whl
Size 123.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0bf8bf7b6c5cc6c72eb9c637e4337e4c90ee2fafed4a74c4467eb0781cd3c698
BLAKE2b-256 checksum
How to use checksums
4dd2dd62e4ebe1a32ba2b75907bcc348ab1ff7f59a7e43bec5ee8865883ca540
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page