An MV3 browser extension that reverse-engineers YouTube's internal streaming infrastructure to download videos, playlists, and subscriptions - with full format control, multi-track audio, embedded subtitles, and a live download manager. Runs on Chromium and Firefox.
Built by Avi with supervised Claude Code
Open the Releases page and download the latest file for your browser.
Chrome / Edge / Opera / Brave / Vivaldi
- Download the
youtube-downloader-*-chrome.crxfile - Open
chrome://extensions(oredge://extensions,opera://extensions) - Turn on Developer mode with the toggle in the top-right corner
- Drag the downloaded
.crxfile onto the page and confirm
Firefox
- In Firefox, click the
youtube-downloader-*-firefox.xpilink on the Releases page - Confirm the install when Firefox asks
That's it - the extension stays up to date on its own.
| Package | Purpose |
|---|---|
| WXT | Extension build framework (MV3, hot-reload, sandboxed pages) |
| Svelte 5 | UI for content scripts and popup |
| @ffmpeg/core | FFmpeg compiled to WASM - muxes video, audio, subtitles, and cover art in-browser |
| @webext-core/messaging | Typed message passing between extension contexts |
| googlevideo | YouTube SABR adaptive streaming protobuf protocol |
| fflate | ZIP compression for batch downloads |
How it works — system diagram, codemap, invariants, the Chrome 4-layer fallback chain, the Firefox ANDROID_VR bypass, and cross-world progress propagation — lives in ARCHITECTURE.md.
The Firefox bypass (routing player requests through the ANDROID_VR InnerTube client to get direct CDN URLs) was reverse-engineered by reading yt-dlp's YouTube extractor — credit to that project for documenting the InnerTube client matrix.
pnpm install
pnpm dev # Chrome — auto-rebuilds and reloads on every change
pnpm dev:firefox # FirefoxCONTRIBUTING.md covers the full dev workflow: quality gates, code style, common tasks (adding a setting, tracing a download bug), and the Linux VM setup for reproducing Linux-only Chrome bugs. ARCHITECTURE.md explains how the pieces fit together.