A fast and user-friendly command-line video downloader built in Rust. This application allows you to download videos from various platforms (currently YouTube, with more platforms coming soon).
- Download videos from YouTube (more platforms coming soon)
- Select video quality and format
- Show detailed video information
- Customizable configuration
- Progress bar display
- Support for various output formats
Make sure you have yt-dlp installed and available in your PATH. This tool uses yt-dlp under the hood.
- Install yt-dlp: https://github.com/yt-dlp/yt-dlp#installation
git clone https://github.com/yourusername/cli-video-downloader.git
cd cli-video-downloader
cargo build --releaseThe binary will be available at target/release/video-dl.
video-dl download -u https://www.youtube.com/watch?v=dQw4w9WgXcQSpecify quality and format:
video-dl download -u https://www.youtube.com/watch?v=dQw4w9WgXcQ -q 720p -f mp4Specify output path:
video-dl download -u https://www.youtube.com/watch?v=dQw4w9WgXcQ -o my-video.mp4video-dl info -u https://www.youtube.com/watch?v=dQw4w9WgXcQShow configuration:
video-dl config getGet a specific configuration value:
video-dl config get -k download_dirSet a configuration value:
video-dl config set -k download_dir -v "/path/to/downloads"Reset configuration to defaults:
video-dl config resetThe application stores configuration in:
- Windows:
%APPDATA%\video-dl\config.toml - macOS:
~/Library/Application Support/video-dl/config.toml - Linux:
~/.config/video-dl/config.toml
Available configuration options:
| Key | Description | Default |
|---|---|---|
| download_dir | Directory where videos are saved | Downloads folder |
| default_quality | Default video quality | "best" |
| default_format | Default video format | "mp4" |
| show_progress | Whether to show progress bars | true |
| overwrite_files | Whether to overwrite existing files | false |
| ytdlp_path | Custom path to yt-dlp executable | None (use PATH) |
- YouTube (including Shorts)
Contributions are welcome! Feel free to open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.