Check out https://github.com/yarrm80s/orpheusdl and https://github.com/Dniel97/orpheusdl-tidal instead.
Mania is a command-line tool for downloading music from TIDAL. It is intended for educational and private use only, and not as a tool for pirating and distributing music.
pip3 install --user --upgrade "https://github.com/evan-goode/mania/archive/master.zip"
Mania requires Python 3.6 or higher and has been tested on GNU/Linux and macOS.
Instead of asking for your username and password, Mania now uses TIDAL's TV login process. The first time you run it, it will ask you to link a TIDAL account. Simply follow the link it gives you and log in.
To download a track, an album, or even an artist's entire discography:
mania track the great gig in the sky
mania album the dark side of the moon
mania artist pink floyd
To include EPs and singles in the discography:
mania artist pink floyd --include-eps-singles
You can also give it a URL to something in the TIDAL catalog and Mania will try to parse it:
mania url https://tidal.com/browse/track/140538043
Optional flags can go anywhere in the command. For example, to automatically select the top search result:
mania track the great gig in the sky --lucky
Each option (except --config-file
) can be specified either as a command-line argument or using the TOML config file at ~/.config/mania/config.toml
. On the command line, prefix the option with --
, or --no-
, as in --output-directory ~/music
or --no-full-structure
.
The first time it's run, Mania populates ~/.config/mania/config.toml
with some default values. For more information on the TOML format, see https://github.com/toml-lang/toml.
To point Mania to a different configuration file, use --config-file <file>
.
Available options are:
quality <quality>
: default value islossless
. Possible values aremaster
(MQA in a FLAC container, usually 96 kHz, 24 bit),lossless
(44.1 kHz, 16 bit FLAC),high
(~320 kbps VBR AAC), andlow
(~96 kbps VBR AAC). If the content you request isn't available in the specified quality, Mania will try to download the "next best" option (master
>lossless
>high
>low
). Note thatmaster
andlossless
require a TIDAL HiFi subscription.output-directory <path>
: where to put downloaded music. Default value is.
(your working directory when you run Mania).by-id
: find something using its ID instead of searching TIDAL. For example,mania album --by-id 79419393
.lucky
: automatically download the top search result. Default value isfalse
.search-count <number>
: how many results to include in the search. Default value is16
.quiet
: don't log any output. Default value isfalse
.nice-format
: rename downloaded material to follow kebab-case and strip out special characters. "Maxwell's Silver Hammer (Remastered).mp3" becomes "maxwells-silver-hammer-remastered.mp3". Default value isfalse
.full-structure
: always organize content by artist and album. For example,mania track --full-structure --lucky "isn't she lovely"
would createStevie Wonder/Songs In The Key Of Life/Disc 2/01 Isn't She Lovely.flac
. Default value isfalse
.skip-metadata
: don't download cover art or set tags. Not sure why someone would want this. Overridesreplay-gain
. Default value isfalse
.replay-gain
: tag FLAC files with ReplayGain data from TIDAL (for normalization). Overridden byskip-metadata
. Default value istrue
.include-eps-singles
: include EPs and singles when downloading discographies withmania artist
. Default value isfalse
; prolific artists can have a lot of singles/remixes and often you just want the studio albums.track-format
: filename format for tracks. Default value is{track_number} {track_name}
.individual-track-format
: filename format for tracks when a track is downloaded without the rest of the album.full-structure
will force the use of the long format. Default value is{track_name}
album-format
: filename format for albums. Default value is{album_name}
.individual-album-format
: filename format for albums when an album is downloaded without the rest of the artist's discography.full-structure
will force the use of the long format. Default value is{album_name}
, the same as the defaultalbum-format
. These options are kept distinct in case you want to, for example, include the year only for albums in a discography.
The following variables are available for use in the *-format
options. All are surrounded with {}
:
{track_id}
: the ID of the track in TIDAL{track_name}
{track_artists}
: ", "-delimited list of artists{track_first_artist}
: the first listed artist{track_number}
: number of the track in the album. Automatically zero-padded according to the total number of tracks.{album_id}
: the ID of the album in TIDAL{album_name}
{album_artists}
: comma + delimited list of album artists{album_first_artist}
: the first listed album artist{album_year}
: the year of release, orUnknown Year
For example:
mania track the great gig in the sky --lucky --individual-track-format "{track_artists} - {track_name} ({album_year})"
will download:
Pink Floyd - The Great Gig in the Sky (1973).flac