
Browser extensionDrawing 30 of 43
Square
Downloader
YouTube stopped serving HD video as one file, so a normal downloader has nothing left to grab. This one copies the bytes as the player decodes them, then puts the file back together with ffmpeg. It all runs in the browser with no server involved.
- StatusReleased, version 1.4.3, 2026
- Based onTriangle Downloader, GPL-3.0
- Built withVanilla JS, Manifest V3, ffmpeg.wasm
- InstallLoaded unpacked, no Chrome Web Store listing
Sheet 02 of 09/Why
Free and open source
The extension this is modeled on isn't open source and puts the good video qualities behind a paywall, so I kept this one easy to check. It uses three permissions, only runs on YouTube, and has no server code at all.

Sheet 03 of 09/Capture
How it captures video
There's no file to catch anymore, so it hooks the player's appendBuffer call and copies every byte that goes past. It gets the rest by nudging a paused player forward, over and over.
Sheet 04 of 09/Codec
Lying about codecs
It also lies to YouTube about which codecs the browser can play, so YouTube sends VP9 instead of AV1, which the bundled ffmpeg can't process.
Sheet 05 of 09/Interface
The part I built
The capture engine came with the fork. I built the bar and everything else here, including the quality list, which pulls real sizes straight off the player's own format table.




Sheet 06 of 09/Failure
When ffmpeg fails
The merge step doesn't trust ffmpeg to work the first time, so it keeps a couple of fallback ways to make the file and tries them in order before it gives up.
Sheet 07 of 09/Credit
Who wrote what
The capture engine is the hard part, and it's Triangle Downloader's. Everything you see and click is what I added on top of it.
Sheet 08 of 09/Limits
What it can't do
It needs an ad blocker running, and no version of it will get around that. Without one, YouTube splices ads into the stream and the capture chokes on them.
Sheet 09 of 09/Source