👻 A command-line tool for downloading music from TIDAL
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Evan Goode 3b2d0cc878
no longer maintained
8 months ago
mania Fix default track-format 2 years ago
.gitignore Mania 4.0.0: Everyone loves breaking changes! 3 years ago
.pre-commit-config.yaml EPs and singles, ReplayGain, Black 2 years ago
LICENSE Create LICENSE 6 years ago
README.md no longer maintained 8 months ago
poetry.lock EPs and singles, ReplayGain, Black 2 years ago
pyproject.toml EPs and singles, ReplayGain, Black 2 years ago


⚠️ No longer maintained.

Check out https://github.com/yarrm80s/orpheusdl and https://github.com/Dniel97/orpheusdl-tidal instead.

Mania 👻

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 is lossless. Possible values are master (MQA in a FLAC container, usually 96 kHz, 24 bit), lossless (44.1 kHz, 16 bit FLAC), high (~320 kbps VBR AAC), and low (~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 that master and lossless 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 is false.
  • search-count <number>: how many results to include in the search. Default value is 16.
  • quiet: don't log any output. Default value is false.
  • 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 is false.
  • full-structure: always organize content by artist and album. For example, mania track --full-structure --lucky "isn't she lovely" would create Stevie Wonder/Songs In The Key Of Life/Disc 2/01 Isn't She Lovely.flac. Default value is false.
  • skip-metadata: don't download cover art or set tags. Not sure why someone would want this. Overrides replay-gain. Default value is false.
  • replay-gain: tag FLAC files with ReplayGain data from TIDAL (for normalization). Overridden by skip-metadata. Default value is true.
  • include-eps-singles: include EPs and singles when downloading discographies with mania artist. Default value is false; 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 default album-format. These options are kept distinct in case you want to, for example, include the year only for albums in a discography.

Formatting Variables

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, or Unknown 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


The Unlicense

See also