-
Notifications
You must be signed in to change notification settings - Fork 0
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.
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".
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.
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:
- Fetch the AES decryption key from the Widevine license server (using your
.wvdcredentials) - Pass the encrypted media file and the key to
mp4decrypt - Receive a decrypted, playable media file
Only needed for music video and video podcast downloads.
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.
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).