Skip to content

avi12/youtube-downloader

Repository files navigation

YouTube Downloader

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

Google Chrome Microsoft Edge Opera Opera GX Brave Vivaldi Firefox

Installation

Open the Releases page and download the latest file for your browser.

Chrome / Edge / Opera / Brave / Vivaldi

Chrome blocks .crx files that don't come from the Chrome Web Store (it rejects them with CRX_REQUIRED_PROOF_MISSING), so install from the zip instead:

  1. Download youtube-downloader-*-chrome.zip and unzip it
  2. Open chrome://extensions (or edge://extensions, opera://extensions)
  3. Turn on Developer mode with the toggle in the top-right corner
  4. Click Load unpacked and select the unzipped folder

The extension checks for new releases and shows a banner in the popup when an update is ready - grab the new zip and load it the same way.

Brave and other Chromium browsers that accept sideloaded CRXs

  1. Download youtube-downloader-*-chrome.crx
  2. Open brave://extensions
  3. Turn on Developer mode
  4. Drag the .crx file onto the extensions page and confirm the installation

If your Chromium browser rejects the CRX, use the Chrome zip instructions above instead.

Firefox

  1. In Firefox, click the youtube-downloader-*-firefox.xpi link on the Releases page
  2. Confirm the install when Firefox asks

Firefox keeps the extension up to date on its own.

Tech stack

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

Architecture

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.

Contribute

pnpm install
pnpm dev            # Chrome — auto-rebuilds and reloads on every change
pnpm dev:firefox    # Firefox

CONTRIBUTING.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.

About

A browser extension for simplifying downloading YouTube videos.

Resources

Contributing

Stars

120 stars

Watchers

3 watching

Forks

Sponsor this project

  •  

Contributors