yt-dlv
A vibe-coded, feature-rich command-line audio/video downloader
A Rust rewrite of yt-dlp for downloading YouTube videos, with a built-in JavaScript engine to decrypt stream URLs so no external Node.js or runtime installation is needed.
yt-dlv is a command-line tool for downloading videos and audio from YouTube, written from scratch in Rust. It is the author's personal reimplementation of yt-dlp, a well-known Python downloader, with a focus on learning and architectural exploration. The author describes it as an honest work-in-progress rather than a finished product, though the core pipeline works end-to-end for ordinary YouTube downloads.
The most technically distinctive aspect is how it handles YouTube's stream protection. YouTube encrypts its video URLs using JavaScript code that must be run before a download can start. Most downloaders call an external JavaScript runtime for this step. yt-dlv instead compiles a small JavaScript engine called QuickJS directly into the binary, so no external Node.js, Deno, or similar runtime needs to be installed. If YouTube's defenses grow complex enough to need a full external runtime, the design allows swapping one in through a pluggable interface.
From a user's perspective, the tool supports the same format-selection syntax as yt-dlp: you can list available formats, pick video and audio streams by quality or codec, merge them with ffmpeg, extract audio only, download playlists, and save subtitles, thumbnails, and description files. You can also route downloads through a proxy or load authentication cookies from a browser profile to reduce the chance of being blocked.
There is a known limitation: YouTube increasingly requires "proof of origin" from datacenter IP addresses and blocks them even when signatures are valid. This is the same problem yt-dlp faces, and resolving it requires additional attestation work the author is tracking in the issue tracker.
Building the tool requires Rust, a C compiler, and optionally ffmpeg for merging streams. The code is released into the public domain under the Unlicense. It is not affiliated with yt-dlp or YouTube, and the README notes that users are responsible for complying with YouTube's terms of service.
Where it fits
- Download YouTube videos or playlists from the command line without installing Node.js or any JavaScript runtime.
- Extract audio-only from YouTube videos by selecting audio streams and skipping video tracks.
- Route downloads through a proxy or load browser cookies to reduce the chance of being blocked by YouTube.