TubeVault
Local-first YouTube archiver




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
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
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
A built-in Setup tab walks through the native host install — the part of local-first tools that usually loses people.
- 4
Versioned like a real product: changelog, screenshots in the repo, v0.3.x and counting.