Skip to main content

TIDAL Downloader (fork of tidal-dl-ng)

Project description

tidaler! (download from tidal)

fork of tidal_dl_ng by exislow, their account and repo dissapeared. this is a personal fork with tweaks to metadata to better suit my preferences. also probably not gonna be maintaining the gui since i never use it

Release Build status Commit activity License

This tool allows you to download songs and videos from TIDAL. Multithreaded and multi-chunked downloads are supported.

⚠️ Windows Defender / Anti Virus software / web browser alerts, while you try to download the app binary: This is a false positive. Please read this issue, PyInstaller (used by this project) statement and the alternative installation solution.

A paid TIDAL plan is required! Audio quality varies up to HiRes Lossless / TIDAL MAX 24-bit, 192 kHz depending on the song available. Dolby Atmos is supported. You can use the command line or GUI version of this tool.

App Image

$ tidaler --help

 Usage: tidaler [OPTIONS] COMMAND [ARGS]...

╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --version  -v                                                                │
│ --help     -h        Show this message and exit.                             │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────╮
│ cfg    Print or set an option. If no arguments are given, all options will   │
│        be listed. If only one argument is given, the value will be printed   │
│        for this option. To set a value for an option simply pass the value   │
│        as the second argument                                                │
│ dl                                                                           │
│ dl_fav Download from a favorites collection.                                 │
│ gui                                                                          │
│ login                                                                        │
│ logout                                                                       │
╰──────────────────────────────────────────────────────────────────────────────╯

💻 Installation / Upgrade

Requirements: Python version 3.12 / 3.13 (other versions might work but are not tested!)

pip install --upgrade tidaler
# If you like to have the GUI as well use this command instead
pip install --upgrade "tidaler[gui]"

⌨️ Usage

You can use the command line (CLI) version to download media by URL:

tidaler dl https://tidal.com/browse/track/46755209
# OR
tdn dl https://tidal.com/browse/track/46755209

Or by your favorites collections:

tidaler dl_fav tracks
tidaler dl_fav artists
tidaler dl_fav albums
tidaler dl_fav videos

You can also use the GUI:

tidaler-gui
# OR
tdng
# OR
tidaler gui

If you would like to use the GUI version as a binary, have a look at the release page and download the correct version for your OS.

🧁 Features

  • Download tracks, videos, albums, playlists, your favorites etc.
  • Multithreaded and multi-chunked downloads
  • Metadata for songs
  • Adjustable audio and video download quality.
  • FLAC extraction from MP4 containers
  • Lyrics and album art / cover download
  • Creates playlist files
  • Can symlink tracks instead of having several copies, if added to different playlists

▶️ Getting started with development

🚰 Install dependencies

Clone this repository and install the dependencies:

# First, install Poetry. On some operating systems you need to use `pip` instead of `pipx`
pipx install --upgrade poetry
poetry install --all-extras --with dev,docs

The main entry points are:

tidaler/cli.py
tidaler/gui.py

📺 GUI Builder

The GUI is built with PySide6 using the Qt Designer:

PYSIDE_DESIGNER_PLUGINS=tidaler/ui pyside6-designer

After all changes are saved, you need to translate the Qt Designer *.ui file into Python code, for instance:

pyside6-uic tidaler/ui/main.ui -o tidaler/ui/main.py

This needs to be done for each created / modified *.ui file accordingly.

🏗 Build the project

To build the project use this command:

# Install virtual environment and dependencies if not already done
make install
# Build macOS GUI
make gui-macos-dmg
# OR Build Windows GUI
make gui-windows
# OR Build Linux GUI
make gui-linux
# Check build output
ls dist/

See the Makefile for all available build commands.

The CI/CD pipeline will be triggered when you open a pull request, merge to main, or when you create a new release.

To finalize the set-up for publishing to PyPi or Artifactory, see here. For activating the automatic documentation with MkDocs, see here. To enable the code coverage reports, see here.

❓ FAQ

macOS Error Message: File/App is damaged and cannot be opened. You should move it to Trash

If you download an (unsigned) app from any source other than those that Apple deems trusted, the application gets an extended attribute "com.apple.Quarantine". This triggers the message: " is damaged and can't be opened. You should move it to the Bin."

Remove the attribute and you can launch the application. Source 1 Source 2

sudo xattr -dr com.apple.quarantine /Applications/tidaler.app/

Why is this app unsigned? Only developers enrolled in the paid Apple Developer Program are allowed to sign (legal) apps. Without this subscription, app signing is not possible.

Does Gatekeeper really annoy you, and you'd like to disable it completely? Follow this link

My (Windows) antivirus app XYZ says the GUI version of this app is harmful

Short answer: It is a lie. Get rid of your antivirus app.

Long answer: See here

I get an error when extract_flac is enabled

Your path_binary_ffmpeg is probably wrong. Please read over and over again the help of this particular option until you get it right what path to put for path_binary_ffmpeg.

My Linux (e.g. Ubuntu) complains that libxcb-cursor0 is not installed

Simply install this dependency using your OS specific package manager.

Ubuntu / Debian

sudo apt install libxcb-cursor0

A terminal is flashing when I run this app on Windows

Please see this issue #103.

This is due to the Python ffmpeg library which is used and only happens on windows if extract_flac is activated.

How can I download Dolby Atmos files?

You need to activate download_dolby_atmos in the settings. Then, if an item is available in Dolby Atmos, it will be downloaded as a Dolby Atmos file instead of a stereo audio file. Dolby Atmos is only available as 320kbps at TIDAL (you cannot adjust the quality for Dolby Atmos downloads). If an item is available in Dolby Atmos, the "Quality" column in the GUI will indicate this with Dolby Atmos.

‼️ Disclaimer

  • For educational purposes only. I am not liable and responsible for any damage that happens.
  • You should not use this method to distribute or pirate music.
  • It may be illegal to use this app in your country.

🫂 Contributors

mainly exislow

Thanks to all, who have contributed to this project!

Special thanks goes out to @orbittwz for all his support in the issues section.

This project is based on:

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

tidaler-0.1.2.tar.gz (291.4 kB view details)

Uploaded Source

Built Distribution

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

tidaler-0.1.2-py3-none-any.whl (298.6 kB view details)

Uploaded Python 3

File details

Details for the file tidaler-0.1.2.tar.gz.

File metadata

  • Download URL: tidaler-0.1.2.tar.gz
  • Upload date:
  • Size: 291.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.3 CPython/3.12.13 Linux/6.17.0-1010-azure

File hashes

Hashes for tidaler-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e7515d4b06575c5b41578d8a721704f28512c8fe2f7998bf5b4554a11fa98530
MD5 6006bfd277a92bd0474ea84bc63d050b
BLAKE2b-256 87f939a24be71bd4b08ccb7865d3491784d75474dd10c8714553e5af44544529

See more details on using hashes here.

File details

Details for the file tidaler-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: tidaler-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 298.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.3 CPython/3.12.13 Linux/6.17.0-1010-azure

File hashes

Hashes for tidaler-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0f4326d0a816f1680aff3c9adc6973c6e22b0881df2b028c32a68bad7b5407d2
MD5 133cacda7567aca7288b8379db8e5650
BLAKE2b-256 685c7362123a37d8a39e1110953daa785c1ea2a053c22a2cb1889ba505e1f768

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