| Crates.io | auto-ytdlp-rs |
| lib.rs | auto-ytdlp-rs |
| version | 1.0.51 |
| created_at | 2025-02-27 16:04:22.63824+00 |
| updated_at | 2025-02-27 16:04:22.63824+00 |
| description | Download videos with yt-dlp automatically. You can even download multiple videos at the same time! |
| homepage | |
| repository | https://github.com/panchi64/auto-ytdlp |
| max_upload_size | |
| id | 1571868 |
| size | 126,755 |
I wrote this script originally in Python so that I didn't have to manually archive a massive list of YouTube university course videos (at the request of my professor). I built it around the yt-dlp repository because it extends the capabilities of manual downloads by incorporating a lot of QoL features. This script builds on top of that by adding multiple download multithreading and an intuitive TUI.
However I rewrote it in Rust, as a little practice for myself, since I've been trying to write more Rust recently.
It's not just for archiving course videos however! This script can handle all sorts of video-downloading tasks. Maybe you're a researcher collecting data, a content creator gathering inspiration, or just someone who likes to keep offline copies of their favorite online content. Whatever your reason, I hope my little repo helps.
Here's what makes this script nice to have:
And hey, if you think of some cool feature to add, the code's right there for you to tinker with!
Go to the Releases page
Download the appropriate binary for your system:
auto-ytdlp-[version]-windows.exeauto-ytdlp-[version]-macosauto-ytdlp-[version]-linuxMake the binary executable (macOS/Linux only):
chmod +x auto-ytdlp-[version]-[platform]
Optional: Move the binary to a directory in your PATH:
C:\Windows\ or add the binary location to your PATHsudo mv auto-ytdlp-[version]-[platform] /usr/local/bin/auto-ytdlp
# Install directly from crates.io
cargo install auto-ytdlp-rs
# Then run with:
auto-ytdlp
Clone this repository:
git clone https://github.com/panchi64/auto-ytdlp.git
cd auto-ytdlp
Build the project:
cargo build --release
Run the application:
cargo run --release
[!WARNING] You need FFMPEG and yt-dlp installed in your system for the script to work appropriately.
The application can be run in two modes:
[!NOTE] The following commands assume you've renamed the downloaded binary file from:
auto-ytdlp-[version]-[platform]toauto-ytdlp
# Using pre-built binary
./auto-ytdlp
# If you wanna download the videos into the folder you're in, use:
./auto-ytdlp -d ./
# Or if installed to PATH
auto-ytdlp
S: Start/Stop downloadsP: Pause active downloadsR: Refresh downloads from links list fileA: Add URLs from clipboardQ: Graceful shutdownShift+Q: Force quit[!NOTE] All quit options will wait for the currently active downloads to finish, even the Force Quit
# Using pre-built binary:
./auto-ytdlp --auto
# Or if installed to PATH
auto-ytdlp --auto
-a, --auto Run in automated mode without TUI
-c, --concurrent <CONCURRENT> Max concurrent downloads [default: 4]
-d, --download-dir <DOWNLOAD_DIR> Download directory [default: ./yt_dlp_downloads]
-f, --archive-file <ARCHIVE_FILE> Archive file path [default: ./download_archive.txt]
-h, --help Print help
-V, --version Print version
The application handles several important files:
links.txt: Contains your download queuedownload_archive.txt: Tracks completed downloadsPATHIf you get the "auto-ytdlp-[version]-macos not opened" message on Apple devices. Use the following command to remove it from quarantine:
xattr -dr com.apple.quarantine <path to file>/auto-ytdlp-[version]-macos
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the GNU GPLv3 - look at the LICENSE file for details.
This tool is for educational purposes only. Please make sure you have the right to download any content before using this script. I'm not responsible for any misuse of this software.