Skip to main content
Back to Extensions
Chrome extension

TubeVault

Local-first YouTube archiver

View source
Chromeyt-dlpReact
TubeVault popup showing active downloads and queued work
TubeVault options - download history
TubeVault options - helper status panel
TubeVault options - setup checklist

The problem

Playlists rot. Videos go private, channels disappear, and the watch-later library you curated for years is one takedown away from gone - unless you hand your whole library to some third-party downloader site.

The build

A Chrome extension that adds archive controls directly to YouTube watch, Shorts, playlist, and channel pages, with a native-messaging helper that runs yt-dlp locally in WSL. Pick components (video, audio, metadata, thumbnails), set quality preferences, and playlists expand into per-video jobs in a visible download queue. No remote server involved.

Stack & choices

  • Chrome MV3 · ReactContent script UI on YouTube pages, popup queue, and options/history pages
  • Node.js helperNative-messaging host that drives yt-dlp in WSL
  • yt-dlpThe actual download engine - videos, thumbnails, and metadata
  • PowerShellInstaller that registers the native messaging host on Windows

Process notes

  1. 1

    The split architecture is the whole trick: the extension never downloads anything itself - it hands jobs across Chrome's native-messaging bridge to a local helper, keeping the Web Store surface clean.

  2. 2

    Playlist and channel requests expand into per-video jobs, so a 300-video playlist is a queue you can watch drain, not a black box.

  3. 3

    A built-in Setup tab walks through the native host install - the part of local-first tools that usually loses people.

  4. 4

    Versioned like a real product: changelog, screenshots in the repo, v0.3.x and counting.

Recent activity

Full log for TubeVault
  1. Shipped v0.3.80 (opens in a new tab)

    Cross-platform native-host setup (macOS/Linux), no hardcoded user

    and 2 more changes

  2. Shipped v0.3.77 (opens in a new tab)

    SponsorBlock + concurrent-fragment downloads (helper)

    and 3 more changes

  3. Shipped v0.3.56 (opens in a new tab)

  4. Shipped v0.3.51 (opens in a new tab)

  5. Shipped v0.3.50 (opens in a new tab)

    Use playlist/mix name; support YouTube Mixes

    and 4 more changes