RustifyDL
A fast, no-fuss Spotify downloader built in Rust.
Why RustifyDL?
Turn any Spotify track/album/playlist URL into properly tagged audio files. RustifyDL pairs Spotify metadata with audio from YouTube, then writes tidy tags and artwork so your library looks right everywhere.
Features
- β‘ Concurrent downloads for maximum speed
- π·οΈ Accurate tags: artist, album, track/disc numbers, genre, year, cover art
- π Clean, minimal logging (tune with verbosity levels)
- π§° FFmpeg-based conversion (choose bitrate/format)
- π Library and CLI - use as a Rust crate or standalone binary
Demo

RustifyDL in action: downloading a Spotify album
Installation
From crates.io (Recommended)
From source
Prerequisites:
- FFmpeg on PATH
Usage
Command Line Interface
Common options (see rustifydl --help for full list):
-o, --output-dir <PATH>Output folder (default:./output)--concurrent-downloads <N>Parallel downloads (e.g., 6 or 10)--bitrate <RATE>FFmpeg bitrate, e.g.,192k,256k,320k--format <EXT>Output format, e.g.,mp3,m4a,opus,flac-v, --verbosity <LEVEL>none,info,debug,full--no-dupesSkip duplicate track names when collecting
Library Usage
Add to your Cargo.toml:
[]
= "0.1"
= { = "1", = ["full"] }
Example usage:
use ;
async
Configuration (Automatic)
RustifyDL manages Spotify API credentials automatically. On first use it creates a config file and reuses it next timeβno need to pass credentials on the command line.
Config location examples:
- Windows:
%APPDATA%/RustifyDL/config.toml - Linux:
~/.config/RustifyDL/config.toml - macOS:
~/Library/Application Support/RustifyDL/config.toml
To reset, delete the file and run again.
Project Structure
src/
βββ lib.rs # Library API & orchestration
βββ metadata.rs # Tag writing (lofty)
βββ spotify.rs # Spotify fetch (spotify-rs)
βββ youtube.rs # YouTube download (rustypipe + ffmpeg)
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Status
π§ Active development
License
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Support
If you encounter issues or have questions, please open an issue.
Built with Rust π¦ and π by thepangel _____