Rusteer is a high-performance Rust library and CLI for downloading music from Deezer. It supports downloading tracks, albums, and playlists with full metadata tagging and cover art.
- 🎵 High Quality: Download in MP3 (128/320kbps) or FLAC (Lossless).
- 🏷️ Metadata: Automatically embeds ID3 tags (Title, Artist, Album, Year, Genre, ISRC, etc.).
- 🖼️ Cover Art: Embeds high-resolution album covers.
- 📦 Batch Downloads: Download full albums and playlists with a single command.
- 🚀 Fast: Built with Rust for optimal performance and concurrency.
- 🔒 Secure: Handles Deezer encryption transparently.
-
Clone the repository:
git clone https://github.com/xScherpschutter/Rusteer.git cd Rusteer -
Build the project:
cargo build --release
-
The CLI binary will be available at
target/release/rusteer-cli.
The rusteer-cli tool allows you to interact with Rusteer from the terminal.
You need a valid Deezer ARL token to use Rusteer. You can find this in your browser cookies (named arl) when logged into Deezer.
You can provide the token in two ways:
- Flag:
--arl "YOUR_TOKEN" - Environment Variable:
export DEEZER_ARL="YOUR_TOKEN"
Download a track, album, or playlist.
# Download a track by URL
rusteer-cli download "https://www.deezer.com/track/3135556"
# Download an album by ID
rusteer-cli download "302127" --type album
# Download a playlist
rusteer-cli download "908622995" --type playlist
# Specify output directory and quality
rusteer-cli --output "My Music" --quality flac download "3135556"Search for tracks or albums.
# Search for tracks
rusteer-cli search "Daft Punk"
# Search for albums
rusteer-cli search "Discovery" --type albumAdd Rusteer to your Cargo.toml:
[dependencies]
rusteer = { path = "." } # Or git repository
tokio = { version = "1", features = ["full"] }use rusteer::{Rusteer, DownloadQuality};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Initialize with ARL token
let dz = Rusteer::new("YOUR_ARL_TOKEN").await?;
// Configure options
dz.set_output_dir("downloads");
dz.set_quality(DownloadQuality::Mp3_320);
// Download a track
let result = dz.download_track("3135556").await?;
println!("Downloaded: {}", result.title);
Ok(())
}This tool is for recreational purposes only. Downloading copyrighted material without permission may be illegal in your country. Use responsibly and support the artists by streaming on official platforms.
MIT