tidal-dl-ng


Nametidal-dl-ng JSON
Version 0.24.5 PyPI version JSON
download
home_pagehttps://github.com/exislow/tidal-dl-ng
SummaryTIDAL Medial Downloader Next Generation!
upload_time2025-01-17 08:45:28
maintainerNone
docs_urlNone
authorRobert Honz
requires_python<3.13,>=3.12
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 🔰 TIDAL Downloader Next Generation! (tidal-dl-ng)

[![Release](https://img.shields.io/github/v/release/exislow/tidal-dl-ng)](https://img.shields.io/github/v/release/exislow/tidal-dl-ng)
[![Build status](https://img.shields.io/github/actions/workflow/status/exislow/tidal-dl-ng/on-release-master.yml)](https://github.com/exislow/tidal-dl-ng/actions/workflows/on-release-master.yml)
[![Commit activity](https://img.shields.io/github/commit-activity/m/exislow/tidal-dl-ng)](https://img.shields.io/github/commit-activity/m/exislow/tidal-dl-ng)
[![License](https://img.shields.io/github/license/exislow/tidal-dl-ng)](https://img.shields.io/github/license/exislow/tidal-dl-ng)

This tool allows 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](https://github.com/exislow/tidal-dl-ng/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/exislow/tidal-dl-ng/?tab=readme-ov-file#-installation--upgrade). ⚠️

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

![App Image](assets/app.png)

```bash
$ tidal-dl-ng --help

 Usage: tidal-dl-ng [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                                                                       │
╰──────────────────────────────────────────────────────────────────────────────╯
```

If you like this projects and want to support it, feel free to buy me a coffee 🙃✌️

<a href="https://www.buymeacoffee.com/exislow" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/arial-orange.png" alt="Buy Me A Coffee" style="height: 51px !important;width: 217px !important;" ></a>
<a href="https://ko-fi.com/exislow" target="_blank" rel="noopener noreferrer"><img src="https://help.ko-fi.com/hc/article_attachments/11833788361117" alt="61e11d430afb112ea33c3aa5_Button-1-p-500"></a>

## 💻 Installation / Upgrade

**Requirements**: Python == 3.12 (other versions might work but are not tested!)

```bash
pip install --upgrade tidal-dl-ng
# If you like to have the GUI as well use this command instead
pip install --upgrade tidal-dl-ng[gui]
```

## ⌨️ Usage

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

```bash
tidal-dl-ng dl https://tidal.com/browse/track/46755209
# OR
tdn dl https://tidal.com/browse/track/46755209
```

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
```

You can also use the GUI:

```bash
tidal-dl-ng-gui
# OR
tdng
# OR
tidal-dl-ng gui
```

If you like to have the GUI version only as a binary, have a look at the
[release page](https://github.com/exislow/tidal-dl-ng/releases) and download the correct version for your platform.

## 🧁 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 playlist

## ▶️ Getting started with development

### 🚰 Install dependencies

Clone this repository and install the dependencies:

```bash
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

The GUI is build with `PySide6` using the [Qt Designer](https://doc.qt.io/qt-6/qtdesigner-manual.html):

```bash
PYSIDE_DESIGNER_PLUGINS=tidal_dl_ng/ui pyside6-designer
```

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

```
pyside6-uic tidal_dl_ng/ui/main.ui -o tidal_dl_ng/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:

```bash
make install
# OR
make gui-macos
```

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](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).
To enable the code coverage reports, see [here](https://fpgmaas.github.io/cookiecutter-poetry/features/codecov/).

## ‼️ 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

Thanks to all, who have contributed to this project!

This project is based on:

- https://fpgmaas.github.io/cookiecutter-poetry/

<a href="https://github.com/exislow/tidal-dl-ng/graphs/contributors"><img src="https://contributors-img.web.app/image?repo=exislow/tidal-dl-ng" /></a>

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/exislow/tidal-dl-ng",
    "name": "tidal-dl-ng",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13,>=3.12",
    "maintainer_email": null,
    "keywords": null,
    "author": "Robert Honz",
    "author_email": "cen.sored@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/a0/97/9a7e8fcd04227b970161e1b3708652221199da05e6994b0262b4143d0b07/tidal_dl_ng-0.24.5.tar.gz",
    "platform": null,
    "description": "# \ud83d\udd30 TIDAL Downloader Next Generation! (tidal-dl-ng)\n\n[![Release](https://img.shields.io/github/v/release/exislow/tidal-dl-ng)](https://img.shields.io/github/v/release/exislow/tidal-dl-ng)\n[![Build status](https://img.shields.io/github/actions/workflow/status/exislow/tidal-dl-ng/on-release-master.yml)](https://github.com/exislow/tidal-dl-ng/actions/workflows/on-release-master.yml)\n[![Commit activity](https://img.shields.io/github/commit-activity/m/exislow/tidal-dl-ng)](https://img.shields.io/github/commit-activity/m/exislow/tidal-dl-ng)\n[![License](https://img.shields.io/github/license/exislow/tidal-dl-ng)](https://img.shields.io/github/license/exislow/tidal-dl-ng)\n\nThis tool allows to download songs and videos from TIDAL. Multithreaded and multi-chunked downloads are supported.\n\n\u26a0\ufe0f **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](https://github.com/exislow/tidal-dl-ng/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/exislow/tidal-dl-ng/?tab=readme-ov-file#-installation--upgrade). \u26a0\ufe0f\n\n**A paid TIDAL plan is required!** Audio quality varies up to HiRes Lossless / TIDAL MAX 24-bit, 192 kHz depending on the song available. You can use the command line or GUI version of this tool.\n\n![App Image](assets/app.png)\n\n```bash\n$ tidal-dl-ng --help\n\n Usage: tidal-dl-ng [OPTIONS] COMMAND [ARGS]...\n\n\u256d\u2500 Options \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502 --version  -v                                                                \u2502\n\u2502 --help     -h        Show this message and exit.                             \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n\u256d\u2500 Commands \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502 cfg    Print or set an option. If no arguments are given, all options will   \u2502\n\u2502        be listed. If only one argument is given, the value will be printed   \u2502\n\u2502        for this option. To set a value for an option simply pass the value   \u2502\n\u2502        as the second argument                                                \u2502\n\u2502 dl                                                                           \u2502\n\u2502 dl_fav Download from a favorites collection.                                 \u2502\n\u2502 gui                                                                          \u2502\n\u2502 login                                                                        \u2502\n\u2502 logout                                                                       \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n```\n\nIf you like this projects and want to support it, feel free to buy me a coffee \ud83d\ude43\u270c\ufe0f\n\n<a href=\"https://www.buymeacoffee.com/exislow\" target=\"_blank\"><img src=\"https://cdn.buymeacoffee.com/buttons/arial-orange.png\" alt=\"Buy Me A Coffee\" style=\"height: 51px !important;width: 217px !important;\" ></a>\n<a href=\"https://ko-fi.com/exislow\" target=\"_blank\" rel=\"noopener noreferrer\"><img src=\"https://help.ko-fi.com/hc/article_attachments/11833788361117\" alt=\"61e11d430afb112ea33c3aa5_Button-1-p-500\"></a>\n\n## \ud83d\udcbb Installation / Upgrade\n\n**Requirements**: Python == 3.12 (other versions might work but are not tested!)\n\n```bash\npip install --upgrade tidal-dl-ng\n# If you like to have the GUI as well use this command instead\npip install --upgrade tidal-dl-ng[gui]\n```\n\n## \u2328\ufe0f Usage\n\nYou can use the command line (CLI) version to download media by URL:\n\n```bash\ntidal-dl-ng dl https://tidal.com/browse/track/46755209\n# OR\ntdn dl https://tidal.com/browse/track/46755209\n```\n\nOr by your favorites collections:\n\n```bash\ntidal-dl-ng dl_fav tracks\ntidal-dl-ng dl_fav artists\ntidal-dl-ng dl_fav albums\ntidal-dl-ng dl_fav videos\n```\n\nYou can also use the GUI:\n\n```bash\ntidal-dl-ng-gui\n# OR\ntdng\n# OR\ntidal-dl-ng gui\n```\n\nIf you like to have the GUI version only as a binary, have a look at the\n[release page](https://github.com/exislow/tidal-dl-ng/releases) and download the correct version for your platform.\n\n## \ud83e\uddc1 Features\n\n- Download tracks, videos, albums, playlists, your favorites etc.\n- Multithreaded and multi-chunked downloads\n- Metadata for songs\n- Adjustable audio and video download quality.\n- FLAC extraction from MP4 containers\n- Lyrics and album art / cover download\n- Creates playlist files\n- Can symlink tracks instead of having several copies, if added to different playlist\n\n## \u25b6\ufe0f Getting started with development\n\n### \ud83d\udeb0 Install dependencies\n\nClone this repository and install the dependencies:\n\n```bash\npoetry install --all-extras --with dev,docs\n```\n\nThe main entry points are:\n\n```bash\ntidal_ng_dl/cli.py\ntidal_ng_dl/gui.py\n```\n\n### \ud83d\udcfa GUI Builder\n\nThe GUI is build with `PySide6` using the [Qt Designer](https://doc.qt.io/qt-6/qtdesigner-manual.html):\n\n```bash\nPYSIDE_DESIGNER_PLUGINS=tidal_dl_ng/ui pyside6-designer\n```\n\nAfter all changes are saved you need to translate the Qt Designer `*.ui` file into Python code, for instance:\n\n```\npyside6-uic tidal_dl_ng/ui/main.ui -o tidal_dl_ng/ui/main.py\n```\n\nThis needs to be done for each created / modified `*.ui` file accordingly.\n\n### \ud83c\udfd7 Build the project\n\nTo build the project use this command:\n\n```bash\nmake install\n# OR\nmake gui-macos\n```\n\nSee the `Makefile` for all available build commands.\n\nThe CI/CD pipeline will be triggered when you open a pull request, merge to main, or when you create a new release.\n\nTo finalize the set-up for publishing to PyPi or Artifactory, see [here](https://fpgmaas.github.io/cookiecutter-poetry/features/publishing/#set-up-for-pypi).\nFor activating the automatic documentation with MkDocs, see [here](https://fpgmaas.github.io/cookiecutter-poetry/features/mkdocs/#enabling-the-documentation-on-github).\nTo enable the code coverage reports, see [here](https://fpgmaas.github.io/cookiecutter-poetry/features/codecov/).\n\n## \u203c\ufe0f Disclaimer\n\n- For educational purposes only. I am not liable and responsible for any damage that happens.\n- You should not use this method to distribute or pirate music.\n- It may be illegal to use this app in your country.\n\n## \ud83e\udec2 Contributors\n\nThanks to all, who have contributed to this project!\n\nThis project is based on:\n\n- https://fpgmaas.github.io/cookiecutter-poetry/\n\n<a href=\"https://github.com/exislow/tidal-dl-ng/graphs/contributors\"><img src=\"https://contributors-img.web.app/image?repo=exislow/tidal-dl-ng\" /></a>\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "TIDAL Medial Downloader Next Generation!",
    "version": "0.24.5",
    "project_urls": {
        "Documentation": "https://exislow.github.io/tidal-dl-ng/",
        "Homepage": "https://github.com/exislow/tidal-dl-ng",
        "Repository": "https://github.com/exislow/tidal-dl-ng"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5c9326dbdbccd2012ee657fb28064647f783b0162d4763d917b818c37c4694ad",
                "md5": "3f597228aaa81fdbf07a14f2e00c702a",
                "sha256": "40a97d80101e2f60831a9fa0fb4b6d8383c3004959c7ee1d7fba15eb3ad5b38b"
            },
            "downloads": -1,
            "filename": "tidal_dl_ng-0.24.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3f597228aaa81fdbf07a14f2e00c702a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.12",
            "size": 291480,
            "upload_time": "2025-01-17T08:45:25",
            "upload_time_iso_8601": "2025-01-17T08:45:25.441492Z",
            "url": "https://files.pythonhosted.org/packages/5c/93/26dbdbccd2012ee657fb28064647f783b0162d4763d917b818c37c4694ad/tidal_dl_ng-0.24.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a0979a7e8fcd04227b970161e1b3708652221199da05e6994b0262b4143d0b07",
                "md5": "5dee32ce0d38c53b5bb568fa3a68681a",
                "sha256": "e37752961f95dce469adbe4e52e926937a74bbe8562341adf349d4592ac53a2f"
            },
            "downloads": -1,
            "filename": "tidal_dl_ng-0.24.5.tar.gz",
            "has_sig": false,
            "md5_digest": "5dee32ce0d38c53b5bb568fa3a68681a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13,>=3.12",
            "size": 285255,
            "upload_time": "2025-01-17T08:45:28",
            "upload_time_iso_8601": "2025-01-17T08:45:28.998358Z",
            "url": "https://files.pythonhosted.org/packages/a0/97/9a7e8fcd04227b970161e1b3708652221199da05e6994b0262b4143d0b07/tidal_dl_ng-0.24.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-17 08:45:28",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "exislow",
    "github_project": "tidal-dl-ng",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "tidal-dl-ng"
}
        
Elapsed time: 0.39478s