Automatically logs every YouTube video you see — feed, search, channel, Shorts, watch-next sidebar — so you can find them later. 100% local, no tracking.

YouTube’s own history only records videos you clicked on. This extension logs every video that actually appeared in front of you — in the home feed, search results, on a creator’s channel, as a watch-next suggestion, or while scrolling Shorts. No more “I swear I saw a video about X last week.”
Browse YouTube normally. Click the extension icon to see the grid. Search by title or channel, filter by where the video came from, click a thumbnail to open it in a new tab.
No data leaves your device. Ever.
All history is stored locally using chrome.storage.local. The extension makes zero outbound network requests. Uninstalling removes everything.
See privacy-policy.md for details.
Until the extension is live on the Chrome Web Store, you can load it manually:
chrome://extensionssrc/injector.js runs at document_start on youtube.com and injects src/interceptor.js into the page’s own JS context.interceptor.js does two things:
window.ytInitialData on DOM-ready and on every SPA navigation, extracting video entries from the embedded renderer tree.window.fetch so continuation responses from youtubei/v1/browse, /search, /next, /reel, /player are also parsed.src/lib/parser.js walks the nested renderer tree and normalizes four shapes observed in real YouTube responses: videoRenderer, gridVideoRenderer, lockupViewModel (new watch-next shape), and shortsLockupViewModel.src/background.js dedupes by videoId, caps at 10 000, writes to chrome.storage.local.No bundler, no runtime dependencies. Plain JS. MV3. npm test runs Node’s built-in test runner against three real captured ytInitialData fixtures (search results, channel page, watch page).
YouTube’s data shape evolves. The parser handles four renderer types observed on 2026-04-17, but YouTube may introduce new shapes over time. If detection breaks on a specific page, file an issue with the page URL.
The home feed on logged-out users is lazy-loaded and may return empty on first popup. Logged-in users get immediate results.
Issues and PRs welcome.
MIT — see LICENSE.