video-digest
Skill1 starsChanged 17 days agoMITView on GitHub
把一段视频变成能读的笔记——公开字幕抓进本地私有缓存,按时间戳产出 Quick / Deep / Research 三档笔记,每句都能定位回原片。适合"三十分钟的视频只想花三分钟"和"口播内容想存成可检索文字"。Turn a video into timestamped Quick / Deep / Research notes from public captions or a supplied transcript, cached privately per user. Use when the user shares a video link and wants a summary, deep notes, or a citation-ready excerpt; also when they ask whether captions are available or why transcript fetching fails.
- Installs packages
4 other projects use a version of this.
Adopted by
Most recently taken up by
- RobBrautigam/video-digesttheir own version, first seen Nov 8, 2026
- cycleuser/Skillstheir own version, first seen Oct 25, 2026
- ONEIRO-codes/video-digesttheir own version, first seen Jul 17, 2026
- legenxxx/video-digesttheir own version, first seen Jul 4, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- cycleuser/Skills★ 13same name
- legenxxx/video-digest★ 1same name
- ONEIRO-codes/video-digest★ 0same name
- RobBrautigam/video-digest★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Show its rules and text
We split this skill into the rules it gives an agent
23 rules. 0 are common, 21 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
21
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 20
Research: verify selected material claims against public primary sources.
- Distinctive: line 43
Do not invoke for:
- Distinctive: line 65
If the requested depth is ambiguous, use Quick as the content mode.
- Distinctive: line 69
Run the read-only doctor before the first URL fetch in a session:
- Very specific: line 75
Add --network only when a network diagnosis is needed.
- Distinctive: line 77
If the pinned dependency is missing, show the exact repair command:
- Distinctive: line 84
Do not install anything without explicit user approval.
- Distinctive: line 106
never invokes a shell or external executable.
- Very specific: line 115
If the user provides transcript text or a transcript file, skip YouTube fetching.
- Distinctive: line 119
Do not stop at “unsupported.” Offer the smallest viable fallback:
- Distinctive: line 121
Ask the user to paste or upload a transcript.
- Distinctive: line 122
If the user already supplied an audio/video file, use an available transcription capability only with the user's request.
- Distinctive: line 123
If neither is available, explain the exact limitation without inventing content.
- Distinctive: line 131
Keep it to one screen:
- Distinctive: line 150
Do not call a statement a verified fact merely because it appears in the video.
- Distinctive: line 154
Start from Deep, then verify only material claims that affect the conclusion.
- Distinctive: line 156
Prefer primary sources, official documentation, papers, or original datasets.
- Distinctive: line 160
Do not perform broad web research when the user only asked for a summary.
- Distinctive: line 190
Keep numbers, dates, named entities, caveats, and uncertainty.
- Distinctive: line 192
Do not attribute a claim to a speaker unless the source supports the attribution.
- Distinctive: line 193
Do not turn the summary into promotional copy unless explicitly requested.
- Distinctive: line 198
Every major point can be traced to a timestamp or labeled transcript section.
- Distinctive: line 202
No package installation, durable file write, publishing, or external state change occurs without explicit approval.
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Video Deep Reader
What It Does
Turn a YouTube video or supplied transcript into a useful reading artifact:
- Quick: decide in a minute whether the video is worth watching.
- Deep: understand the argument, evidence, structure, and important timestamps.
- Research: verify selected material claims against public primary sources.
The bundled fetch helper retrieves public metadata and subtitles; Research mode may additionally verify selected claims with public sources. The agent creates the semantic notes from these inputs.
Bundled components are deliberately separate:
fetch_video.py --doctorchecks the local dependency and optional network readiness.fetch_video.pyretrieves public metadata and subtitles into the declared temporary cache.fetch_video.py --retrieve-videoreturns timestamped excerpts from that cache by validated video ID.- The agent applies this file and
references/output-modes.mdto create the semantic notes.
When to Use
Invoke when the user:
- provides a YouTube URL or video ID and asks to summarize, analyze, or understand it;
- pastes or uploads a transcript and asks for video notes;
- asks a follow-up question about a previously fetched video;
- wants to compare several videos or decide which one deserves deeper attention;
- asks to verify important claims made in a video.
A bare YouTube URL is enough only when the message is clearly asking the assistant to process that video. Do not activate when a link is merely cited, shared as a reference, requested for playback or download, or included as one source inside an unrelated task.
Do not invoke for:
- downloading the video or audio;
- bypassing login, age, geographic, paywall, or access controls;
- summarizing a video that has neither accessible subtitles nor a user-supplied transcript;
- publishing derived content without an explicit request.
Output Language
Respond in the language of the user's current request. If unclear, ask once. Preserve quotations in their original language and add a translation only when useful.
Bundled scripts emit machine-readable JSON, status codes, and transcript text rather than a localized natural-language interface. Explain their results in the language of the user's current request.
Select the Mode
| Request signal | Mode | Default output |
| Bare link, “总结”, “讲了什么”, “值不值得看” | Quick | One-screen decision card |
| “深读”, “完整笔记”, “论证过程”, “详细整理” | Deep | Timestamped structured notes |
| “核验”, “查证”, “research”, “是真的吗” | Research | Deep notes plus selected claim verification |
| Two or more links | Batch Quick | One Quick card per video |
If the requested depth is ambiguous, use Quick as the content mode. Still follow host confirmation requirements for package installation, file creation, and every other state-changing action.
Step 1: Check the Environment
Run the read-only doctor before the first URL fetch in a session:
python3 <skill_dir>/scripts/fetch_video.py --doctorAdd --network only when a network diagnosis is needed. If a local proxy should be tested, pass its loopback port explicitly with --proxy-port; Doctor does not scan local ports. Doctor never installs packages or changes configuration.
If the pinned dependency is missing, show the exact repair command:
python3 -m venv .venv
.venv/bin/python -m pip install --require-hashes -r <skill_dir>/requirements.lockDo not install anything without explicit user approval.
Step 2: Get a Transcript
YouTube URL or video ID
Run:
python3 <skill_dir>/scripts/fetch_video.py "<youtube-url>"For a local proxy, pass only the loopback port:
python3 <skill_dir>/scripts/fetch_video.py "<youtube-url>" --proxy-port 7890The script:
- validates YouTube hosts and video IDs;
- calls the pinned
yt-dlpPython API directly; - never invokes a shell or external executable;
- accepts only a loopback proxy port and no proxy credentials;
- writes
meta.jsonandtranscript.txtto a private per-user cache under the system temporary directory; - prints the cache directory as JSON.
The cache hierarchy must be owned by the current user with 0700 directory permissions. Cache files use atomic replacement, 0600 permissions, and reject symbolic links. Temporary cache is not a durable archive. Create a user-visible note file only when the user explicitly requests one.
Supplied transcript
If the user provides transcript text or a transcript file, skip YouTube fetching. Treat it as User-provided transcript and preserve any timestamps already present.
No subtitles or failed fetch
Do not stop at “unsupported.” Offer the smallest viable fallback:
- Ask the user to paste or upload a transcript.
- If the user already supplied an audio/video file, use an available transcription capability only with the user's request.
- If neither is available, explain the exact limitation without inventing content.
Step 3: Produce the Requested Output
Follow references/output-modes.md.
Quick
Keep it to one screen:
- title, channel, duration, and source link;
- 2–3 sentence summary;
- five timestamped takeaways;
- one “worth watching if…” judgment;
- important uncertainty or missing context.
Deep
Include:
- concise overview;
- timestamped structure;
- argument map: claim → reasoning → evidence → limitation;
Video statementandAuthor opinionas separate labels;- notable quotations;
- unanswered questions and useful follow-ups.
Do not call a statement a verified fact merely because it appears in the video.
Research
Start from Deep, then verify only material claims that affect the conclusion.
- Prefer primary sources, official documentation, papers, or original datasets.
- Attach each verification result to the corresponding video timestamp.
- Label each claim
Supported,Partly supported,Contradicted, orNot verified. - State source date and scope.
- Do not perform broad web research when the user only asked for a summary.
Batch Quick
For each video provide:
- one-sentence thesis;
- three key timestamps;
- evidence quality;
- novelty;
- recommendation: Deep now / Save / Skip.
Compare videos only on common dimensions.
Follow-up Retrieval
The retrieval script accepts a video ID, never an arbitrary file path:
python3 <skill_dir>/scripts/fetch_video.py --retrieve-video <video-id> --keyword "attention"
python3 <skill_dir>/scripts/fetch_video.py --retrieve-video <video-id> --at 3:20
python3 <skill_dir>/scripts/fetch_video.py --retrieve-video <video-id> --listIt reads only transcripts created under the managed temporary cache. Quote the relevant timestamp range in the answer.
Content Integrity
- Preserve what the source actually says; remove filler, not substance.
- Separate a video's claims from external verification.
- Keep numbers, dates, named entities, caveats, and uncertainty.
- Trust visible slide text over an obvious transcription error when the user supplies frames or screenshots.
- Do not attribute a claim to a speaker unless the source supports the attribution.
- Do not turn the summary into promotional copy unless explicitly requested.
Completion Standard
- The selected mode matches the request.
- Every major point can be traced to a timestamp or labeled transcript section.
- Claims and opinions remain separate.
- Research mode includes source-backed verification and scope.
- Fetch failures produce a usable transcript fallback.
- No package installation, durable file write, publishing, or external state change occurs without explicit approval.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

