AI-powered Chrome extension that summarizes any YouTube video, translates the summary into your language, and auto-generates topic chapters β straight from the transcript.
Features β’ Installation β’ How it works β’ Privacy
- π AI Summary β A faithful summary plus key takeaways for any video with subtitles.
- π Built-in Translation β The summary is written directly in your browser's language, whatever the video's original language is. No separate translation step.
- π Auto Chapters β Generates topic chapters with timestamps only when the creator didn't add any. If the video already has chapters, RecapTube defers to them.
- π― Jump to topic β Click a chapter in the panel, or a marker on the progress bar, to seek the video.
- π€ Multiple AI Providers β Anthropic Claude (Haiku/Sonnet) or OpenAI GPT (5.5 / 5.4-mini / 5.4-nano).
- πͺ In-page panel β Injected next to the video; collapsible, with a one-click regenerate.
- πΎ Smart Caching β Results cached locally per video and language for 30 days; reopening is instant and free.
- π Privacy-First β Everything local; you bring your own API key.
- π« Channel exclusions β Skip processing for channels you choose.
- Get an API key from your preferred provider:
- Anthropic Claude β console.anthropic.com (key starts with
sk-ant-) - OpenAI β platform.openai.com/api-keys (key starts with
sk-)
- Anthropic Claude β console.anthropic.com (key starts with
- Load the extension (see Development to build
dist/, or install from the Web Store when available). - Configure: click the RecapTube icon β pick provider β paste key β Save β choose model, summary length and output language.
- Open any YouTube video with subtitles and the panel appears next to it.
- Transcript extraction β A MAIN-world network interceptor reads YouTube's own
get_transcriptresponse (resilient to DOM redesigns), with DOM scraping and an AI self-heal as fallbacks. - Native-chapter detection β RecapTube checks whether the video already has creator chapters (player ticks / chapters panel).
- One AI call β The transcript is sent to your provider, which returns a summary + key points in your language and, if needed, topic chapters with timestamps.
- Render β An in-page panel shows the summary and a clickable chapter list; when chapters are AI-generated, markers are drawn on the progress bar.
- Cache β The result is cached locally as
recap_<videoId>_<lang>for 30 days.
- β Your API key is stored locally in the browser.
- β All settings and cache stay on your device.
- β No tracking, no analytics, no backend servers.
- β Only the transcript (and, rarely, a stripped page-structure snapshot for self-heal) is sent to your chosen AI provider.
See the full Privacy Policy.
- Node.js v16+
- Chrome (or a Chromium browser)
- An API key from Anthropic and/or OpenAI
npm install
npm run build # builds all bundles into dist/
npm run watch # rebuild on change
npm run generate-icons # regenerate icons + logo from the inline SVGchrome://extensions/- Enable Developer mode
- Load unpacked β select the
dist/folder (not the project root)
src/
manifest.json
content/
content-main.js # RecapManager β panel, markers, orchestration (ISOLATED world)
transcript-interceptor.js # MAIN-world network interceptor (RT_* contract)
background/
background-main.js # BackgroundService β generateRecap, cache, key handling
popup/ help/ # UI surfaces (+ welcome.html)
shared/
config.js constants.js
services/
transcript-service.js # 3-layer transcript extraction (interceptor β DOM β self-heal)
recap-service.js # AI pipeline: summary + translation + chapters
storage-service.js
providers/ # base / claude / openai
models/ repositories/ validators/ errors/ logger/
Rollup produces three IIFE bundles (content, background, popup). rollup.config.popup.js also copies manifest.json, the HTML pages, icons, the logo, and the (unbundled) transcript-interceptor.js into dist/.
// src/shared/config.js
CACHE: { MAX_AGE_DAYS: 30, KEY_PREFIX: 'recap_' }
DEFAULTS: {
SETTINGS: {
enabled: true, generateSummary: true, generateChapters: true,
showProgressMarkers: true, autoOpenPanel: true,
summaryLength: 'medium', outputLanguage: 'auto'
},
ADVANCED_SETTINGS: { aiProvider: 'claude', aiModel: 'haiku', channelWhitelist: [] }
}Models live in config.js (Claude haiku/sonnet; OpenAI gpt-5.5/gpt-5.4-mini/gpt-5.4-nano) and the popup model selector.
- "Transcript not available" β the video has no subtitles, or all extraction layers failed. RecapTube opens the transcript panel automatically to trigger it; try reloading.
- Summary in the wrong language β set Output language in the popup (
Autofollowsnavigator.language). - No AI chapters β expected when the video already has creator chapters; RecapTube won't duplicate them.
- Nothing happens β check the API key is saved, the master toggle is on, and the channel isn't excluded. Use Regenerate this video.
RecapTubeAI shares its architecture with SkipTube AI (the AI sponsor-skipper). Both can run on the same page: RecapTube uses a distinct interceptor contract (RT_* vs YSS_*) and rt-/yss- DOM prefixes so they never collide.
The interface uses a YouTube-like visual language built from functional design
tokens (color values, spacing, radii, type scale) and the Roboto font
(Apache 2.0). These are functional values, not protected by copyright; no
trademarks, logos or proprietary fonts of any platform are used. The per-product
accent (RecapTube: blue #3ea6ff) keeps it distinct.
This project is free and open source. If you find it useful, consider supporting its development β every contribution helps and is genuinely appreciated! β€οΈ
MIT β see LICENSE.