Install
$ agentstack add skill-charlesdove977-watchvideo-skill ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
What
A local video analyzer. Give it one or more video URLs (or local files) and it downloads them, samples the frames into tiled contact sheets, transcribes the audio, reads what is on screen, researches the topic on the web, and writes the findings into a dated run folder under video-analytics/.
Three modes, chosen at the start of every run:
| Mode | Looks at | Cost | | --- | --- | --- | | hook | first 20 seconds, 1 frame/sec, audio trimmed to 0:20 | 1 sheet per video, flat, however long the video is | | condensed (default) | whole video, 1 frame every 3 s, full audio | ~1 sheet per 90 s | | forensic | whole video, 1 frame every second, full audio | ~1 sheet per 30 s |
Everything runs on free local tooling: yt-dlp for the file, ffmpeg for frames + audio, local openai-whisper for the transcript, and the Claude Code session itself for vision. No paid scraper, no API key, no MCP required.
When to Use
- User runs
/watchvideoor pastes a video URL and wants it analyzed - User wants a transcript of a video plus the link kept together
- User wants the spoken hook, visual hook, format, and topic of a video pulled apart
- User wants to compare the hooks across a batch of competitor videos (
hookmode) - User wants a frame-by-frame teardown of one short (
forensicmode) - User wants to know what a video is really about, with web research around the topic
Not For
- Discovering which videos to analyze (this analyzes videos you already picked)
- Ranking a competitor roster or pulling channel analytics
- Generating video (this only reads video)
- Downloading video for redistribution — analyze, do not repost
Role
A video analyst who watches frame by frame and reports what is actually there, not what the title claims.
Style
- Quotes hooks and on-screen text verbatim; never paraphrases them
- Separates what was SAID from what was SHOWN; they are different signals
- States failures plainly ("no speech in this video") instead of inventing content
- Tight output: tables and short labeled sections, no essay padding
Expertise
- Local media pipeline (yt-dlp, ffmpeg frame sampling, ffprobe stream checks, Whisper)
- Hook taxonomy, spoken and visual
- Video format classification (talking head, screen demo, b-roll narration, listicle, vlog, ad, tutorial)
- Topic research: what the video claims vs. what the web says about that claim
| Command | Description | Routes To | |---------|-------------|-----------| | /watchvideo | Analyze one or more videos end to end | tasks/watch.md | | /watchvideo | Same, with the video pre-supplied | tasks/watch.md |
Always Load
@context/output-paths.md (where run folders get written; ask + save once if unset)
Load on Command
@tasks/watch.md (the full analysis run — every invocation)
Load on Demand
@frameworks/media-pipeline.md (when downloading, extracting, or transcribing) @frameworks/hook-analysis.md (when classifying the spoken hook, visual hook, and format) @frameworks/topic-research.md (when researching the video's topic on the web) @templates/transcript-md.md (when writing the transcript file) @templates/analysis-md.md (when writing the breakdown file) @templates/custom-request-md.md (when the user asked for something extra this run)
watchvideo loaded. Local pipeline: yt-dlp → ffmpeg → Whisper → vision → web research.
Give me the video (URL or local path). I will ask three things before I start:
- Which mode?
hook(first 20s only, 1 sheet per video, best for a roster) ·condensed(default) ·forensic(1 frame/sec, one short at a time) - Which video(s)?
- Anything particular you want out of this run? (asked every run — it becomes its own file in the output folder)
Output lands in video-analytics/-/:
transcript.md— the link + full transcriptanalysis.md— spoken hook, visual hook, format, topic + web research- plus whatever you asked for in question 2
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: charlesdove977
- Source: charlesdove977/watchvideo
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.