Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/exislow/tidal-dl-ng
TIDAL Media Downloader Next Generation! Up to HiRes Lossless / TIDAL MAX 24-bit, 192 kHz.
https://github.com/exislow/tidal-dl-ng
audio downloader music python tidal
Last synced: 17 days ago
JSON representation
TIDAL Media Downloader Next Generation! Up to HiRes Lossless / TIDAL MAX 24-bit, 192 kHz.
- Host: GitHub
- URL: https://github.com/exislow/tidal-dl-ng
- Owner: exislow
- License: agpl-3.0
- Created: 2023-12-19T23:05:47.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-05-22T20:05:36.000Z (8 months ago)
- Last Synced: 2024-05-23T08:33:38.908Z (8 months ago)
- Topics: audio, downloader, music, python, tidal
- Language: Python
- Homepage:
- Size: 2.06 MB
- Stars: 104
- Watchers: 4
- Forks: 6
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - exislow/tidal-dl-ng - Multithreaded TIDAL Media Downloader Next Generation! Up to HiRes Lossless / TIDAL MAX 24-bit, 192 kHz. (Python)
README
# 🔰 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 --helpUsage: 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 🙃✌️
## 💻 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/