Skip to content

Latest commit

 

History

History
105 lines (71 loc) · 3.89 KB

readme.md

File metadata and controls

105 lines (71 loc) · 3.89 KB

RedSea

Easy to use music downloader and tagger for Tidal. For educational use only, and may break in the future. You still need a Tidal account, but you can just use the free trial month.

Introduction

RedSea is a music downloader and tagger for the Tidal music streaming service. It is designed partially as a Tidal API example. This repository also hosts a wildly incomplete Python Tidal API implementation - it is contained in config/tidal_api.py and only requires requests to be installed.

Requirements

  • Python 3.6
  • requests
  • mutagen
  • pycrypto
  • opencv

Setting up (with pip)

  1. Run pip install -r requirements.txt to install dependencies
  2. Run python redsea.py -h to view the help file
  3. Run python redsea.py urls to download lossless files from urls

Setting up (with Pipenv)

  1. Run pipenv install --three to install dependencies in a virtual env using Pipenv
  2. Run pipenv run python redsea.py -h to view the help file
  3. Run pipenv run python redsea.py urls to download lossless files from urls

How to use

usage: redsea.py [-h] [-id IDENTIFIANT -pwd PASSWORD] [-p PRESET] [-o DIR] [-a ACCOUNT] [-s] urls [urls ...]

A music downloader for Tidal.

positional arguments:
urls                    The URLs to download. You may need to wrap the URLs in
                        double quotes if you have issues downloading.

optional arguments:
-h, --help              show this help message and exit
-p PRESET, --preset PRESET
                        Select a download preset. Defaults to Lossless only.
                        See /config/settings.py for presets
                        
-id IDENTIFIANT, --identifiant IDENTIFIANT
                        Pass the Tidal identifiant of your account. Must be use with -pwd.

-pwd PASSWORD, --password PASSWORD
                        Pass the Tidal password of your account. Must be use with -id.

-s, --skip              Pass this flag to skip track and continue when a track
                        does not meet the requested quality                          
-o DIR, --outidr DIR 
                        Set DIR as the outupt directory. By default it's the
                        same as redsea.py

Issues

  • Sometimes, tracks will be tagged with a useless version (for instance, "(album version)"), or have the same version twice "(album version)(album version)". This is because tracks in Tidal are not consistent in terms of metadata - sometimes a version may be included in the track title, included in the version field, or both.

  • Tracks may be tagged with an inaccurate release year; this may be because of Tidal only having the "rerelease" or "remastered" version but showing it as the original.

  • Downloading an artist URL actually downloads the content of "best tracks".

Config reference

Stock Presets

default: FLAC 44.1k / 16bit only

best_available: Download the highest available quality (MQA > FLAC > 320 > 96)

mqa_flac: Accept both MQA 24bit and FLAC 16bit

MQA: Only allow FLAC 44.1k / 24bit (includes 'folded' 96k content)

FLAC: FLAC 44.1k / 16bit only

320: AAC ~320 VBR only

96: AAC ~96 VBR only

Preset Configuration Variables

keep_cover_jpg: Whether to keep the cover.jpg file in the album directory

embed_album_art: Whether to embed album art or not into the file.

save_album_json: save the album metadata as a json file

tries: How many times to attempt to get a valid stream URL.

path: Base download directory

Format variables are {title}, {artist}, {album}, {tracknumber}.

track_format: How tracks are formatted. The relevant extension is appended to the end.

album_format: Base album directory - tracks and cover art are stored here. May have slashes in it, for instance {artist}/{album}.