QuickSummarize is an open-source Chrome extension for working with YouTube videos through captions.
It opens in Chrome Side Panel as a transcript-first workspace. The extension can fetch caption data, generate summaries, answer questions about the current video, show timeline-based transcript chunks, and export subtitles through either an OpenAI-compatible API or an Anthropic-style API.
Right now the product is focused on YouTube. Support for more platforms may be added over time.
- Generate AI summaries for YouTube videos
- Chat about the current video in a transcript-first workspace
- Show timeline-based subtitle segments
- Export subtitles as SRT-formatted text files
- Support English and Chinese UI
- Work with OpenAI-compatible APIs
- Work with Anthropic-style APIs
- Platform support: YouTube only
- Browser support: Chrome / Chromium browsers with Side Panel support
- Distribution: source install only for now
I do not currently expect this project to be reliably accepted in the Chrome Web Store, so the recommended installation method is loading it in Developer Mode.
- Open a YouTube video
- Manually turn on captions in the player
- Open the extension side panel
- Use the workspace tabs to summarize, chat, inspect the timeline, or export subtitles
By default, the extension does not try to open captions for you.
There is an optional setting to auto-try opening captions, but it is disabled by default because it may look like automation behavior to YouTube.
Automatic caption opening is not recommended because it may require the extension to interact with the YouTube player, trigger extra caption requests, and behave more like automation than a normal user action. That can make subtitle retrieval less stable and may increase the risk of being flagged by platform defenses.
For the safest workflow, manually turn on captions first, confirm they are visible on the video, and then use QuickSummarize.
git clone https://github.com/EchoTide/QuickSummarize.git
cd QuickSummarizenpm installnpm run build- Open
chrome://extensions/ - Turn on
Developer modein the top-right corner
- Click
Load unpacked - Select the
extensionfolder in this repository
If you do not want to build locally, you can download a packaged archive from GitHub Releases.
- Open the repository
Releasespage - Download the latest
quicksummarize-vX.Y.Z.zip - Unzip it locally
- Open
chrome://extensions/ - Turn on
Developer mode - Click
Load unpacked - Open the unzipped folder and select the inner
extensionfolder that containsmanifest.json
The release zip contains an extension/ directory, so Chrome should be pointed to that inner folder after extraction.
This repository can publish release packages automatically.
When a tag like v0.1.0 is pushed, GitHub Actions will:
- Install dependencies
- Run tests
- Build the extension
- Package the
extensionfolder into a zip file - Attach that zip file to a GitHub Release
Example:
git tag v0.1.0
git push origin v0.1.0After loading the extension:
- Open the extension settings page
- Fill in:
ProviderAPI Base URLModelAPI KeyLanguage
- Save the configuration
Provider notes:
OpenAI-compatible: uses{baseUrl}/chat/completionsAnthropic-style: uses{baseUrl}/messageswith standard Anthropic-style SSE events
Optional:
- Enable
Automatically try to open captions (risky)only if you understand the risk of automation-like behavior
When a YouTube video is active, the side panel exposes a workspace with three modes:
Summary: generate or regenerate a readable summaryChat: ask questions about the current video through a transcript-first agent loopTimeline: inspect transcript chunks and refresh timeline output
- Open a YouTube video page
- Turn on captions manually in the YouTube player
- Confirm captions are visible on the video
- Open QuickSummarize
- Click
Summarize
- Open a YouTube video page
- Turn on captions manually in the YouTube player
- Confirm captions are visible on the video
- Open QuickSummarize
- Switch to the
Chattab - Ask a question about the video
The chat flow is transcript-first. Summary output can help with orientation, but the assistant is designed to use transcript context as the main factual source when answering.
- Open a YouTube video page
- Turn on captions manually in the YouTube player
- Open QuickSummarize
- Open the
Timelinetab, or useTimeline summaryfrom the summary panel - Refresh the timeline if needed
- Open a YouTube video page
- Turn on captions manually in the YouTube player
- Open QuickSummarize
- Click
Export SRT (.txt)
The export uses SRT content with a .txt filename.
- Some videos do not provide usable captions
- Auto-generated captions depend on YouTube availability
- Summary and chat quality depend on subtitle quality
- The extension sends subtitle text to your configured API provider
- The transcript is the main source of truth for video chat answers
npm run build
npm test
npm run test:watchQuickSummarize/
|- extension/ Chrome extension source
|- tests/ Vitest test suite
|- build.js Extension build script
Relevant current modules:
extension/sidepanel.html/extension/sidepanel.css/extension/sidepanel.js- sidepanel workspace UI and runtimeextension/lib/video-chat-agent.js- transcript-first video chat agent loopextension/lib/chat-context.js- transcript chunking and retrieval helpersextension/lib/chat-session.js- chat session state and turn compactionextension/lib/video-chat-controller.js- session synchronization around the active videoextension/lib/transcript-source.js- transcript retrieval from current YouTube state
When you use summarization, subtitle text is sent to the API endpoint you configure.
Make sure you trust that provider before using the extension.
This project is licensed under the GNU General Public License v3.0.
See LICENSE for the full text.
