agentsclimarketplace

Video context

Skill vusallyv/video-context-plugin/skills/video-context

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".From its SKILL.md

Install
npx -y skills add vusallyv/video-context-plugin --skill video-context

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

3.0 KB, as published. Nobody here has run it

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:

SourceHow it's fetched
Local file pathUsed directly.
Public URL (Loom, YouTube, Vimeo, public CDN, raw mp4)yt-dlp first, falls back to curl.
Private URL needing authcurl 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:

  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)

VarDefaultWhat
SCENE_THRESHOLD0.4Lower = more frames. Screen recordings often need 0.2.
MAX_FRAMES20Hard cap; trimmed evenly across timeline.
FRAME_WIDTH1280Downscale to save tokens.
WHISPER_MODEL/opt/homebrew/share/whisper-cpp/ggml-base.en.binwhisper-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.

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.