| Crates.io | dj-cli |
| lib.rs | dj-cli |
| version | 0.1.0 |
| created_at | 2025-07-24 20:42:40.020012+00 |
| updated_at | 2025-07-24 20:42:40.020012+00 |
| description | A CLI tool for DJs to download MP3s from YouTube |
| homepage | |
| repository | https://github.com/henryoman/dj-cli |
| max_upload_size | |
| id | 1766903 |
| size | 191,551 |
DJ-CLI's beautiful terminal interface featuring real-time status updates, batch processing capabilities, and intuitive keyboard controls.
yt-dlp backendratatui with vibrant colorscargo install dj-cli
git clone https://github.com/henryoman/dj-cli.git
cd dj-cli
cargo build --release
cargo install --path .
git clone https://github.com/henryoman/dj-cli.git
cd dj-cli
cargo run --release
# Launch the interactive TUI
dj-cli
# Or download directly (non-interactive)
dj-cli "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
DJ-CLI requires Rust 1.78 or later. Install via rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
Install the latest version of yt-dlp:
# macOS (Homebrew)
brew install yt-dlp
# Ubuntu/Debian
sudo apt update && sudo apt install yt-dlp
# Arch Linux
sudo pacman -S yt-dlp
# Or via pip (universal)
pip install yt-dlp
Required for audio extraction and format conversion:
# macOS (Homebrew)
brew install ffmpeg
# Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg
# Arch Linux
sudo pacman -S ffmpeg
# Windows (Chocolatey)
choco install ffmpeg
Test your setup:
yt-dlp --version
ffmpeg -version
cargo --version
Launch DJ-CLI
dj-cli
Paste YouTube URL
Choose Quality & Download
Enable Batch Mode
Press Ctrl+B to toggle batch mode
Add Multiple URLs
Paste URL → Press Enter → Repeat for each video
Start Batch Download
Press Ctrl+D to download all queued videos
Monitor Progress
| Shortcut | Function |
|---|---|
| Ctrl+C | Quit application |
| Esc | Exit application |
| Tab | Switch focus between elements |
| Enter | Download (single mode) / Add URL (batch mode) |
| Ctrl+B | Toggle batch mode |
| Ctrl+D | Start batch download |
| Ctrl+1 | Quick 128kbps download |
| Ctrl+2 | Quick 256kbps download |
| F5 | Clean and extract URL from input |
| Delete | Clear input field |
| Backspace | Remove last character |
Files are automatically saved to your system's Downloads folder:
~/Downloads/~/Downloads/%USERPROFILE%\Downloads\| Quality | Bitrate | Use Case |
|---|---|---|
| 128kbps | Standard quality | General listening, smaller files |
| 256kbps | High quality | Audiophile listening, DJ sets |
Downloaded files use the format: [Video Title].mp3
# Ensure yt-dlp is installed and in PATH
which yt-dlp
# If not found, install via your package manager
brew install yt-dlp # macOS
# Check if URL is accessible
yt-dlp --list-formats [YOUR_URL]
# Update yt-dlp to latest version
pip install -U yt-dlp
# Check Downloads folder permissions
ls -la ~/Downloads/
# Create if missing
mkdir -p ~/Downloads/
# Verify ffmpeg installation
ffmpeg -version
# Reinstall if needed
brew reinstall ffmpeg # macOS
For detailed error information:
# Enable verbose logging (modify source)
RUST_LOG=debug cargo run
# Update DJ-CLI
cargo install dj-cli --force
# Update yt-dlp (important for YouTube compatibility)
pip install -U yt-dlp
# Update dependencies when building from source
cd dj-cli
cargo update
We welcome contributions! Here's how to get involved:
# Clone and setup development environment
git clone https://github.com/henryoman/dj-cli.git
cd dj-cli
cargo build
cargo test
# Install development tools
cargo install cargo-watch
# Format code
cargo fmt
# Lint with Clippy
cargo clippy --all-targets --all-features -- -D warnings
# Run tests
cargo test
git checkout -b feature/amazing-featurecargo fmt && cargo clippy && cargo testgit commit -m 'Add amazing feature'git push origin feature/amazing-featureThis project is licensed under the MIT License - see the LICENSE file for complete details.
MIT License
Copyright (c) 2024 Henryoman
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files...
Built with ❤️ using Rust
Making YouTube audio downloads fast, safe, and beautiful