Vidder is a video downloading CLI, written in Go. Download any video or playlist with a simple command — no GUI, no restrictions, no nonsense.
- Any Video, Any Playlist: Download from YouTube, Vimeo, and 1500+ sites that yt-dlp supports.
- Granular Control: Choose resolution (480p, 720p, 1080p, best), format (mkv, mp4), whether to embed chapters, and more.
- Audio Mode: Extract audio only as mp3, m4a, aac, or flac with quality options.
- Batch Downloads: Feed it a text file with URLs and it downloads concurrently — up to 5× your CPU cores.
- Progress Tracking: See exactly how many downloads completed and how many failed.
- Shell Completion: Bash, Zsh, and Fish completions available.
- Configurable: Set your default download directory once with
vidder config set-dir.
- A computer (Windows, Linux, or Mac)
- yt-dlp installed
- Basic terminal knowledge
go install github.com/E-nkv/vidder@latestRun it from anywhere:
vidder "VIDEO_URL"
vidder --helpgit clone https://github.com/E-nkv/vidder.git
cd vidder
go build -o ~/vidder .vidder https://youtube.com/watch?v=...
vidder "https://youtube.com/playlist?list=..."| Description | Flag | Example |
|---|---|---|
| Custom filename | --title | -t |
vidder <URL> -t "My Video" |
| Audio only | --audio |
vidder <URL> --audio |
| Audio format | --format |
vidder <URL> --audio --format m4a |
| Audio quality (0 best, 10 worst) | --aq |
vidder <URL> --audio --aq 2 |
| Video quality | --quality |
vidder <URL> --quality 720 |
| Skip chapters | --no-chapters |
vidder <URL> --no-chapters |
| Playlist: flat output (no subfolder) | --spread |
vidder <URL> --spread |
| Verbose/debug output | -v | --verbose |
vidder <URL> -v |
| Batch download | -f <file.txt> |
vidder -f urls.txt |
Create a file with one URL per line:
# urls.txt
https://youtube.com/watch?v=example1
https://youtube.com/watch?v=example2
https://youtube.com/playlist?list=...Then run:
vidder -f urls.txtDownloads happen concurrently. You'll see progress as each completes.
Vidder stores config in ~/.vidder/config.json.
vidder config set-dir ~/Videos # Set default download directory
vidder config get-dir # Show current directory
vidder config view # Show full configThe default directory is your system's Downloads folder.
Bash, Zsh, and Fish completions are included.
# Source directly
source /path/to/vidder.bash
# Or install system-wide
sudo cp vidder.bash /etc/bash_completion.d/# Copy to your completions dir
mkdir -p ~/.zsh/completion
cp _vidder ~/.zsh/completion/
# Add to ~/.zshrc
echo 'fpath=(~/.zsh/completion $fpath)' >> ~/.zshrc
echo 'autoload -Uz compinit && compinit' >> ~/.zshrc# Copy to fish completions dir
cp vidder.fish ~/.config/fish/completions/This project uses yt-dlp — credits to them!