2025-10-26 09:59:51 +01:00
#  TIDAL Downloader Next Generation! (tidal-dl-ng)
2023-12-19 23:58:57 +01:00
2025-12-03 13:20:08 +01:00
# [FORK] For DJ with management feature
2025-12-29 22:24:44 +01:00
[](https://img.shields.io/github/v/release/FunWarry/tidal-dl-ng-For-DJ)
[](https://github.com/FunWarry/tidal-dl-ng-For-DJ/actions/workflows/release-or-test-build.yml)
[](https://img.shields.io/github/commit-activity/m/FunWarry/tidal-dl-ng-For-DJ)
[](https://img.shields.io/github/license/FunWarry/tidal-dl-ng-For-DJ)
2023-12-19 23:58:57 +01:00
2025-11-25 23:56:56 -03:00
This tool allows you to download songs and videos from TIDAL. Multithreaded and multi-chunked downloads are supported.
2024-12-15 23:49:40 +01:00
2025-11-29 12:10:06 +01:00
⚠️ **Windows** Defender / **Anti Virus** software / web browser alerts, while you try to download the app binary: This
is a **false positive** . Please
2025-12-29 22:24:44 +01:00
read [this issue ](https://github.com/FunWarry/tidal-dl-ng-For-DJ/issues/231 ), [PyInstaller (used by this project) statement ](https://github.com/pyinstaller/pyinstaller/blob/develop/.github/ISSUE_TEMPLATE/antivirus.md )
and [the alternative installation solution ](https://github.com/FunWarry/tidal-dl-ng-For-DJ/?tab=readme-ov-file#-installation--upgrade ).
2025-01-02 13:59:31 +01:00
2025-11-29 12:10:06 +01:00
**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.
2023-12-19 23:58:57 +01:00
2024-01-19 14:43:29 +01:00

```bash
$ tidal-dl-ng --help
Usage: tidal-dl-ng [ OPTIONS] COMMAND [ ARGS] ...
2024-04-01 18:57:44 +02:00
╭─ 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 │
2025-01-04 13:26:37 +01:00
│ dl_fav Download from a favorites collection. │
2024-04-01 18:57:44 +02:00
│ gui │
│ login │
2025-01-04 13:26:37 +01:00
│ logout │
2024-04-01 18:57:44 +02:00
╰──────────────────────────────────────────────────────────────────────────────╯
2024-01-19 14:43:29 +01:00
```
2023-12-19 23:58:57 +01:00
## 💻 Installation / Upgrade
2025-10-26 09:52:42 +01:00
**Requirements** : Python version 3.12 / 3.13 (other versions might work but are not tested!)
2023-12-19 23:58:57 +01:00
```bash
pip install --upgrade tidal-dl-ng
2025-01-04 13:26:37 +01:00
# If you like to have the GUI as well use this command instead
2025-07-04 17:50:29 +02:00
pip install --upgrade "tidal-dl-ng[gui]"
2023-12-19 23:58:57 +01:00
```
2025-01-03 15:34:02 +00:00
## ⌨️ Usage
You can use the command line (CLI) version to download media by URL:
2023-12-19 23:58:57 +01:00
```bash
tidal-dl-ng dl https://tidal.com/browse/track/46755209
# OR
tdn dl https://tidal.com/browse/track/46755209
```
2025-01-03 15:34:02 +00:00
Or by your favorites collections:
```bash
tidal-dl-ng dl_fav tracks
tidal-dl-ng dl_fav artists
tidal-dl-ng dl_fav albums
tidal-dl-ng dl_fav videos
```
2025-01-04 13:26:37 +01:00
You can also use the GUI:
2023-12-19 23:58:57 +01:00
```bash
tidal-dl-ng-gui
# OR
tdng
# OR
tidal-dl-ng gui
```
2025-11-25 23:56:56 -03:00
If you would like to use the GUI version as a binary, have a look at the
2025-12-29 22:24:44 +01:00
[release page ](https://github.com/FunWarry/tidal-dl-ng-For-DJ/releases ) and download the correct version for your OS.
2023-12-20 13:50:19 +01:00
2023-12-19 23:58:57 +01:00
## 🧁 Features
2025-01-04 13:26:37 +01:00
- Download tracks, videos, albums, playlists, your favorites etc.
2024-12-15 23:49:40 +01:00
- Multithreaded and multi-chunked downloads
2025-11-29 12:10:06 +01:00
- Metadata for songs (including extended metadata like genres, producers, composers when available from TIDAL API -
see [metadata documentation ](docs/missing_metadata.md ))
2023-12-19 23:58:57 +01:00
- Adjustable audio and video download quality.
2024-12-15 23:49:40 +01:00
- FLAC extraction from MP4 containers
- Lyrics and album art / cover download
2024-12-16 14:42:53 +01:00
- Creates playlist files
- Can symlink tracks instead of having several copies, if added to different playlist
2025-11-29 12:10:06 +01:00
- **🆕 Quick View on Hover** (GUI): Hover over tracks to instantly preview rich metadata without clicking (
see [feature documentation ](docs/feature_hover_info.md ))
2023-12-19 23:58:57 +01:00
## ▶️ Getting started with development
2023-12-20 13:50:19 +01:00
### 🚰 Install dependencies
2023-12-19 23:58:57 +01:00
Clone this repository and install the dependencies:
```bash
2025-03-27 18:57:34 +01:00
# First, install Poetry. On some operating systems you need to use `pip` instead of `pipx`
pipx install --upgrade poetry
2023-12-19 23:58:57 +01:00
poetry install --all-extras --with dev,docs
```
The main entry points are:
```bash
tidal_ng_dl/cli.py
tidal_ng_dl/gui.py
```
### 📺 GUI Builder
2025-11-25 23:56:56 -03:00
The GUI is built with `PySide6` using the [Qt Designer ](https://doc.qt.io/qt-6/qtdesigner-manual.html ):
2023-12-19 23:58:57 +01:00
```bash
2024-02-01 07:38:01 +01:00
PYSIDE_DESIGNER_PLUGINS = tidal_dl_ng/ui pyside6-designer
2023-12-19 23:58:57 +01:00
```
2025-11-25 23:56:56 -03:00
After all changes are saved, you need to translate the Qt Designer `*.ui` file into Python code, for instance:
2023-12-19 23:58:57 +01:00
```
pyside6-uic tidal_dl_ng/ui/main.ui -o tidal_dl_ng/ui/main.py
```
2025-01-04 13:26:37 +01:00
This needs to be done for each created / modified `*.ui` file accordingly.
2023-12-19 23:58:57 +01:00
### 🏗 Build the project
To build the project use this command:
```bash
2025-03-27 18:57:34 +01:00
# Install virtual environment and dependencies if not already done
2023-12-19 23:58:57 +01:00
make install
2025-03-27 18:57:34 +01:00
# Build macOS GUI
2025-10-22 23:05:04 +02:00
make gui-macos-dmg
2025-11-25 23:56:56 -03:00
# OR Build Windows GUI
2025-10-22 23:05:04 +02:00
make gui-windows
2025-11-25 23:56:56 -03:00
# OR Build Linux GUI
2025-10-22 23:05:04 +02:00
make gui-linux
2025-03-27 18:57:34 +01:00
# Check build output
ls dist/
2023-12-19 23:58:57 +01:00
```
2025-01-04 13:26:37 +01:00
See the `Makefile` for all available build commands.
2023-12-19 23:58:57 +01:00
The CI/CD pipeline will be triggered when you open a pull request, merge to main, or when you create a new release.
2025-11-29 12:10:06 +01:00
To finalize the set-up for publishing to PyPi or Artifactory,
see [here ](https://fpgmaas.github.io/cookiecutter-poetry/features/publishing/#set-up-for-pypi ).
For activating the automatic documentation with MkDocs,
see [here ](https://fpgmaas.github.io/cookiecutter-poetry/features/mkdocs/#enabling-the-documentation-on-github ).
2023-12-19 23:58:57 +01:00
To enable the code coverage reports, see [here ](https://fpgmaas.github.io/cookiecutter-poetry/features/codecov/ ).
2025-02-28 11:13:37 +01:00
## ❓ FAQ
2025-06-29 12:36:08 +02:00
### macOS Error Message: File/App is damaged and cannot be opened. You should move it to Trash
2025-02-28 11:13:37 +01:00
2025-11-29 12:10:06 +01:00
If you download an (unsigned) app from any source other than those that Apple seems suited, the application gets an
extended attribute "com.apple.Quarantine". This triggers the message: "<application> is damaged and can't be opened. You
should move it to the Bin."
2025-02-28 11:13:37 +01:00
2025-11-29 12:10:06 +01:00
Remove the attribute and you can launch the
application. [Source 1 ](https://discussions.apple.com/thread/253714860?sortBy=rank ) [Source 2 ](https://www.reddit.com/r/macsysadmin/comments/13vu7f3/app_is_damaged_and_cant_be_opened_error_on_ventura/ )
2025-02-28 11:13:37 +01:00
```
2025-06-29 12:36:08 +02:00
sudo xattr -dr com.apple.quarantine /Applications/TIDAL-Downloader-NG.app/
2025-02-28 11:13:37 +01:00
```
2025-11-29 12:10:06 +01:00
Why is this app unsigned? Only developer enrolled in the paid Apple developer program are allowed to sign (legal) apps.
Without this subscription app signing is not possible.
2025-02-28 11:13:37 +01:00
2025-11-29 12:10:06 +01:00
Gatekeeper really annoys you, and you like to disable it completely? Follow
this [link ](https://iboysoft.com/tips/how-to-disable-gatekeeper-macos-sequoia.html )
2025-02-28 11:13:37 +01:00
2025-06-29 12:36:08 +02:00
### My (Windows) antivirus app XYZ says the GUI version of this app is harmful
2025-02-28 11:13:37 +01:00
Short answer: It is a lie. Get rid of your antivirus app.
2025-12-29 22:24:44 +01:00
Long answer: See [here ](https://github.com/FunWarry/tidal-dl-ng-For-DJ/issues/231 )
2025-02-28 11:13:37 +01:00
2025-06-29 12:36:08 +02:00
### I get an error when `extract_flac` is enabled
2025-02-28 11:13:37 +01:00
2025-11-29 12:10:06 +01:00
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` .
2025-02-28 11:13:37 +01:00
2025-10-06 12:28:54 +02:00
### My Linux (e.g. Ubuntu) complains that `libxcb-cursor0` is not installed
Simply install this dependency using your OS specific package manager.
Ubuntu / Debian
```bash
sudo apt install libxcb-cursor0
```
2025-10-06 12:55:49 +02:00
### A terminal is flashing when I run this app on Windows
2025-12-29 22:24:44 +01:00
Please see this issue [#103 ](https://github.com/FunWarry/tidal-dl-ng-For-DJ/issues/103 ).
2025-10-06 12:55:49 +02:00
This is due to the Python `ffmpeg` library which is used and only happens on windows if `extract_flac` is activated.
2025-10-22 23:05:04 +02:00
### How can I download Dolby Atmos files?
2025-11-29 12:10:06 +01:00
You need to activate `download_dolby_atmos` in the settings. Then, if an item is available in Dolby Atmos, it will be
downloaded as an Dolby Atmos file instead of as an stereo audio file. Dolby Atmos ist 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`
### Why do some metadata fields show "—" or "N/A"?
Some metadata fields like Genres, Producers, Composers, Label, or BPM may display `—` because **the TIDAL API does not
provide this information** for that specific track or album. This is not a bug - TIDAL simply doesn't have or doesn't
expose this data via their API.
- **Bitrate shows "N/A"** for LOSSLESS tracks because they use variable bitrate compression
- **Extended metadata** (genres, producers, etc.) depends on what TIDAL receives from music labels
- See the [detailed metadata documentation ](docs/missing_metadata.md ) for more information
2025-10-22 23:05:04 +02:00
2023-12-20 13:52:50 +01:00
## ‼️ Disclaimer
2023-12-19 23:58:57 +01:00
- 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.
2025-07-01 11:09:27 +02:00
- [cookiecutter-poetry ](https://fpgmaas.github.io/cookiecutter-poetry/ )