Boson-Video
Get the point of any video without watching all of it. Paste a YouTube link or drop a video file. Every line of the summary, the transcript and the screen text carries the second it came from, and questions are answered from the video and checked against it.
- The ribbon: the whole video on one strip (scenes, chapters, most replayed). Hover to see any second's frame and words.
- Summary: sections with their frames; every sentence timed and checked (✓ ? ✗).
- Transcript: the original with English beneath, technical terms explained, on-screen text read in.
- Ask: answers that cite their moments and show the frames, with background kept apart.
- Your own AI: the same document as an MCP plugin for Claude, Cursor, Codex and more.
Built for long talks, lectures and finance videos in a language you half know (Chinese and English today).
In your own AI
One line, nothing else to install (uv runs it):
claude mcp add boson-video -- uvx boson-video mcp
Claude Desktop (claude_desktop_config.json) or Cursor (.cursor/mcp.json):
{ "mcpServers": { "boson-video": { "command": "uvx", "args": ["boson-video", "mcp"] } } }
Codex (~/.codex/config.toml):
[mcp_servers.boson-video]
command = "uvx"
args = ["boson-video", "mcp"]
Then ask your AI about any YouTube link. It opens the video, reads the transcript, looks at the frames that matter at full resolution, searches, and checks its claims, citing every moment. No keys needed. Everything runs on your computer. Details: docs/plugin.md.
Run the page
uvx boson-video web # http://127.0.0.1:8770; the first run prints your invite code
Keys make it fuller: INCEPTION_API_KEY (Mercury writes the summary, the English and the terms)
and TYPESAFE_API_KEY (Jev checks every sentence and answers questions). Without them you still get
the scenes, the transcript and search.
Tested videos
Measured, one run each unless a range is shown. Mac: M5 MacBook with Apple's transcriber. Windows: a 12-thread laptop with SenseVoice or Parakeet on the CPU. Full tables: docs/measured.md.
| Video | Length | Scene map | Words | Transcript errors¹ | Screen text | Summary ✓ |
|---|---|---|---|---|---|---|
| Money or Life 美股频道, Meta and AI (zh, talking head) | 24:53 | 1.3 s | 13.8 s (Mac) | no human captions | — | 13 / 13 |
| Money or Life 美股频道, AI drug discovery (zh, slides) | 28:24 | 1.1 s | 18.5 s (Mac) | not scored | 36 moments read | 15 / 16 |
| 程序员老王, LLM abliteration (zh, animated diagrams) | 11:35 | — | 10.0 s (Windows) | not scored | 88 moments; subtitles apart at 85 | 21–22 / 22–23 (several runs) |
| 陳永儀, TEDxTaipei (zh, talk) | 14:29 | — | 7.1 s (Mac) | 5.3% chars (Mac), 4.8% (SenseVoice) | — | 14 / 14 |
| Ken Robinson, TED (en, talk) | 20:06 | — | 9.9 s (Mac) | 10.0% words (Mac), 10.5% (Parakeet) | — | 22 / 25 |
| Sean's AI Stories, agent observability (en, screen recording) | 20:48 | 1.5 s | 13.2 s (Mac) | not scored | none: YouTube refused full resolution | 23 / 26 |
| Andrej Karpathy, Intro to LLMs (en, slides) | 59:48 | 1.6 s | 30.5 s (Mac) | only automatic captions | 19 of 20 slides right | 22 / 23 |
| Rick Astley, Never Gonna Give You Up (fast cuts) | 3:33 | 0.7 s | — | — | — | — |
¹ Against human captions (scripts/accuracy.py); about half the English errors are filler words the captions leave out.
Summary ✓: sentences confirmed against what was said (Jev and code).
Command line
uvx boson-video <link | id | file> # build a video: scenes, words, screen text, summary
uvx boson-video ask <video> "question" # the moment that answers it
uvx boson-video models # fetch the local speech models now instead of on first use
From a clone: uv sync, then uv run boson-video …; uv run pytest runs the tests (offline).
More
- docs/workflow.md: how the workflow is designed: stages, the document, the ways in
- docs/how-it-works.md: the pipeline, what YouTube allows, limits
- docs/DIRECTION.md: what we're building, milestones, decisions
- docs/timeline-format.md: the document format, for other tools
- AGENTS.md: the guide for coding agents
MIT licensed. YouTube's terms don't allow automated access for products, so everything that touches YouTube runs on your own computer.
Metadata
Release files for boson-video 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| boson_video-0.2.0.tar.gz | 611.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| boson_video-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 746.3 kB
Release files / boson_video-0.2.0.tar.gz
| Download URL | boson_video-0.2.0.tar.gz |
|---|---|
| Size | 611.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0a1470942e202b14b4d84da00384435bd78f97815fe18225737ad93fc724c2f4
|
|
BLAKE2b-256 checksum How to use checksums |
435b1431eeb87ccd5f48241af6a79b5879280e6a87ca23a350c87c3e184b8dec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / boson_video-0.2.0-py3-none-any.whl
| Download URL | boson_video-0.2.0-py3-none-any.whl |
|---|---|
| Size | 134.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b018e323243be1f51abad573bc6172b772310d87ed7c64aa29f80f63e47b7f7c
|
|
BLAKE2b-256 checksum How to use checksums |
20f7ce794f73003c28b98fdb25931bbc79c5469329cb60f565dcf616721e71df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|