Skip to content

Dependencies Explained

Salehin Ashfi edited this page Jun 2, 2026 · 2 revisions

Dependencies Explained

Dotify uses several powerful open-source tools under the hood for downloading, decrypting, and packaging media. Here's exactly what each one does.


FFmpeg (Required)

Download: [ffmpeg.org](https://ffmpeg.org/download.html)

FFmpeg is the Swiss Army knife of media processing. Dotify uses it for:

  • Remuxing — moving decrypted audio streams into standard containers (.m4a, .flac, .ogg) without re-encoding or quality loss
  • Metadata embedding — writing track title, artist, album, track number, release date, and cover art directly into the file's tags
  • Format conversion — handling container compatibility between Spotify's raw stream formats and standard playback formats

FFmpeg must be installed and in your system PATH, or its path must be set in config.json under "ffmpeg_path".


Aria2c (Optional — Strongly Recommended)

Download: [aria2.github.io](https://aria2.github.io/)

Aria2c replaces Dotify's built-in Python downloader. It opens multiple concurrent connections to the Spotify CDN for each file, which dramatically speeds up downloads — especially for large albums, playlists, and discography downloads.

Without Aria2c, Dotify uses a single-threaded Python downloader which is noticeably slower.


mp4decrypt / Bento4 (Video downloads only)

Download: [bento4.com/downloads](https://www.bento4.com/downloads/)

Spotify uses Widevine DRM to encrypt its video streams. mp4decrypt strips that encryption.

Dotify's flow for DRM content:

  1. Fetch the AES decryption key from the Widevine license server (using your .wvd credentials)
  2. Pass the encrypted media file and the key to mp4decrypt
  3. Receive a decrypted, playable media file

Only needed for music video and video podcast downloads.


MP4Box / GPAC (Video downloads only)

Download: [gpac.wp.imt.fr/downloads](https://gpac.wp.imt.fr/downloads/)

After mp4decrypt decrypts the audio and video streams separately, MP4Box multiplexes (combines) them into a single .mp4 file — without any re-encoding, so there's zero quality loss.

Only needed for music video and video podcast downloads.


Widevine Device File (.wvd) + KeyDive (Required for Premium audio)

KeyDive: [github.com/hyugogirubato/KeyDive](https://github.com/hyugogirubato/KeyDive)

A .wvd (Widevine Device) file contains the cryptographic identity of a provisioned Android device. Spotify's Widevine license server uses this identity to decide which decryption keys to issue.

Dotify uses your .wvd to request decryption keys for Premium-tier streams (AAC 256kbps, FLAC, 24-bit FLAC). Without a valid .wvd, Dotify can only access free-tier 128kbps streams.

KeyDive is the standard tool for extracting a .wvd from a physical or emulated Android device. Follow the [KeyDive documentation](https://github.com/hyugogirubato/KeyDive) for extraction instructions.

Place your extracted file at ~/.dotify/keys/device.wvd (default location).

Clone this wiki locally