I wanted to find out a way to download cartoons from my childhood I liked so they could be archived and potentially edited. During one of my rabbit hole sessions I had stumbled across a "secret app store" called Homebrew which lead me to yt-dlp and ffmpeg. This was the first time I had ever heard of any of this.
One thing led to another and I ended up writing a bash script to automate a whole pipeline. Outside of installing Linux, this was the first time I'd ever actually done something with code. That's partly why it's called 1st-Rodeo.
Downloads video from any YouTube URL or playlist, then normalizes the output so your files are clean and edit-ready. Two steps, one command.
- Pulls best available quality via
yt-dlp, merges to.mp4 - Re-encodes with
ffmpegfor consistent codec, bitrate, and web-ready output - Skips files already processed so re-runs don't duplicate work
- Keeps a download archive so you never pull the same video twice
- Exits cleanly on errors instead of silently continuing
macOS:
brew install yt-dlp ffmpegLinux:
sudo apt install ffmpeg
pip install yt-dlpchmod +x 1st-rodeo.sh
./1st-rodeo.sh "https://www.youtube.com/watch?v=YOUR_VIDEO_ID"Playlist:
./1st-rodeo.sh "https://www.youtube.com/playlist?list=YOUR_PLAYLIST_ID"Output:
- Raw downloads →
~/1st-Rodeo/downloads/ - Processed files →
~/1st-Rodeo/output/ - Archive log →
~/1st-Rodeo/archive.txt
-crf 20 # Quality (lower = better, larger file)
-preset veryfast # Speed vs compression tradeoff
-b:a 160k # Audio bitrate
-movflags +faststart # Web-optimized playbackAdjust these in the script to match your workflow.
This is v1.1 — a lean pipeline. Where I want to take it:
- Silence detection to identify natural cut points
- Timestamp mapping for high-retention segment extraction
--modeflags:download,process,analyze- Parallelized processing for large batches
When those pieces come together this becomes less of a script and more of a content extraction engine. Not there yet.
- Built and tested on macOS. Works on Linux. Windows needs WSL or Git Bash.
- Only use this for content you have the rights to download.
- This was built for my own workflow. It works. It's not polished. Use accordingly.
Built by Evan-Jordan
github.com/iamevanjordan