I got tired of googling yt-dlp flags every time I wanted to download something. So I just built trawl, a CLI wrapper that makes the whole thing actually pleasant to use. Here's what's going on under the hood.
The basic idea
trawl is a thin layer on top of yt-dlp. You give it a URL, it figures out what you want, builds the right command, and runs it. Simple in theory. A bit messier in practice.
Running yt-dlp as an async subprocess
The whole thing is built around tokio::process::Command. Instead of blocking while yt-dlp does its thing, everything stays async:






