Install
$ agentstack add skill-vusallyv-video-context-plugin-video-context ✓ 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 Used
- ✓ 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.
About
video-context
Claude reads images, not videos. This skill turns any video into scene-change frames + audio transcript so Claude can reason about it.
Standalone — works on any source: local file, public URL, or private URL with auth.
When to use
User shares a video and wants Claude to understand its content. Examples:
- "Analyze this video: "
- "What does this recording show? /path/to/file.mp4"
- "The bug is in this Loom: https://loom.com/share/..."
- Bug ticket (Jira/Asana/GitHub/Linear) contains a video attachment.
How to use
${CLAUDE_PLUGIN_ROOT}/skills/video-context/extract.sh
Script auto-resolves the source:
| Source | How it's fetched | |---|---| | Local file path | Used directly. | | Public URL (Loom, YouTube, Vimeo, public CDN, raw mp4) | yt-dlp first, falls back to curl. | | Private URL needing auth | curl with VIDEO_AUTH_HEADER env var. |
Private URL with auth
Set VIDEO_AUTH_HEADER to whatever the host needs:
# Bearer token
VIDEO_AUTH_HEADER="Authorization: Bearer $TOKEN" \
${CLAUDE_PLUGIN_ROOT}/skills/video-context/extract.sh "https://host.example/asset/123"
# Basic auth (e.g. Atlassian email + API token)
VIDEO_AUTH_HEADER="Authorization: Basic $(echo -n "$EMAIL:$TOKEN" | base64)" \
${CLAUDE_PLUGIN_ROOT}/skills/video-context/extract.sh "https://your-org.atlassian.net/rest/api/3/attachment/content/12345"
If user shares a private URL without a token, ask for one — or tell them to download the video and paste the local path.
After it runs
Script prints WORKDIR, frame paths, transcript path. Then:
Readeach frame — Claude sees JPEGs natively.Readthe transcript at$WORKDIR/transcript.txt.- Combine frames + transcript to answer the user.
Tuning (env vars)
| Var | Default | What | |---|---|---| | SCENE_THRESHOLD | 0.4 | Lower = more frames. Screen recordings often need 0.2. | | MAX_FRAMES | 20 | Hard cap; trimmed evenly across timeline. | | FRAME_WIDTH | 1280 | Downscale to save tokens. | | WHISPER_MODEL | /opt/homebrew/share/whisper-cpp/ggml-base.en.bin | whisper-cpp model path. |
Requirements
ffmpeg(required)yt-dlp(recommended — handles Loom/YouTube/Vimeo)whisper-cpp+ model (optional — for audio transcript)
Run /video-context:setup once for full install on macOS or Linux (apt/dnf/pacman/zypper; builds whisper-cpp from source). On macOS, extract.sh also auto-installs missing binaries via brew on first run; the whisper model (~150MB) is only fetched by setup.
Windows: install manually.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: vusallyv
- Source: vusallyv/video-context-plugin
- 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.