Skip to content
Back to skills

Video Context

BSecurity

Extract scene-change frames + audio transcript from any video so Claude can "watch" it. Use when user pastes a video URL or local video file path and asks to analyze, watch, summarize, or debug from a video. Triggers on .mp4/.mov/.webm/.mkv paths, video URLs (Loom, YouTube, raw mp4, private attachments), or phrases like "analyze this video", "watch this", "see the recording", "video shows the bug".

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 26, 2026
ai-agentsbashgitapi

Works with

  • api

Security analysis

B88/100
  • criticalSends environment variables or credentials to an external URL

Pro scans all 3 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add vusallyv/video-context-plugin --skill video-context --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Video Context?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Video Context
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/vusallyv-video-context/badge)](https://www.skillsdirectory.com/skills/vusallyv-video-context)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: video-context
description: Extract scene-change frames + audio transcript from any video so Claude can "watch" it. Use when user pastes a video URL or local video file path and asks to analyze, watch, summarize, or debug from a video. Triggers on .mp4/.mov/.webm/.mkv paths, video URLs (Loom, YouTube, raw mp4, private attachments), or phrases like "analyze this video", "watch this", "see the recording", "video shows the bug".
---

# 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: <url>"
- "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 <url-or-path>
```

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:

```bash
# 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:

1. **`Read` each frame** — Claude sees JPEGs natively.
2. **`Read` the transcript** at `$WORKDIR/transcript.txt`.
3. 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.

Files in this skill

  • SKILL.md3 KB
  • extract.sh4.9 KB
  • setup.sh4.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.