Skip to content
IamevanjordanPublic

About

yt-dlp + ffmpeg pipeline for batch downloading and normalizing video. Built for my own workflow, v1.1.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

1st-Rodeo

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.


What It Does

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 ffmpeg for 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

Requirements

macOS:

brew install yt-dlp ffmpeg

Linux:

sudo apt install ffmpeg
pip install yt-dlp

Usage

chmod +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

Encoding Defaults

-crf 20               # Quality (lower = better, larger file)
-preset veryfast      # Speed vs compression tradeoff
-b:a 160k             # Audio bitrate
-movflags +faststart  # Web-optimized playback

Adjust these in the script to match your workflow.


What's Next

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
  • --mode flags: 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.


Notes

  • 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

About

yt-dlp + ffmpeg pipeline for batch downloading and normalizing video. Built for my own workflow, v1.1.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages