Install any skill in seconds. Free to start, no credit card required.
Get Started Free →jordanrendric/video-perception
Use when the user mentions a video file (.mp4, .mov, .avi, .mkv, .webm), a YouTube URL, asks to watch/analyze/review a video, or references video content in conversation
Passed 10 of 15 test cases with the skill, and 5 of 15 without it.
and 5 more in the full report
8 fixed6 passed either way6 still failing2 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
A newer attempt on gemini-3.8-flash on 10/20/2026 did not produce a publishable comparison (not comparable). The snapshot above is the previously measured run.
One of 8 test cases the skill fixed. Same model, same prompt, with and without the skill.
During analysis of `/sports/match.mp4`, I detected a rapid scene transition and high motion peak between 04:10 and 04:15. What elevated frame rate range should be targeted specifically around this motion peak?
| Checked | Without skill | With skill |
|---|---|---|
| Sets fps to a value between 1 and 3 around motion peaks | Missed | Passed |
The instructions your model reads when the skill loads.
You have access to video understanding tools via the claude-video-vision MCP server.
video_analyze — Analyze video structure with ffmpeg filters (scene changes, silence, motion, etc.). Use this BEFORE extracting frames to plan your strategy.video_watch — Extract frames + process audio from a video. Supports variable FPS/resolution per segment.video_detail — Drill into specific segments. Separates extraction from viewing — extract many frames, view few at a time.video_info — Get video metadata without processing.video_configure — Change settings (backend, resolution, enable_index, etc.).video_setup — Check/install dependencies.IMPORTANT: You MUST follow these steps in order. Do NOT skip step 2.
Always start with video_info to get duration, resolution, and audio presence.
If the user gives a YouTube URL, pass the URL directly as path.
The MCP server downloads it with yt-dlp, prefers YouTube subtitles/auto-captions
for transcription, and falls back to the configured audio backend only when
captions are missing, empty, or suspiciously incomplete.
REQUIRED for videos > 30s: Call video_analyze BEFORE extracting any frames.
This is NOT optional — it gives you structural data to make smart extraction decisions.
Select filters relevant to the user's question:
| User intent | Filters to select |
|---|---|
| "What happens in this video?" | scene_changes, silence, transcription |
| "Find the scene transitions" | scene_changes, black_intervals |
| "Are there frozen/stuck parts?" | freeze, blur |
| "Is this a talking head or action?" | motion |
| "When does the music start?" | silence, loudness |
| "Analyze the lighting" | exposure |
| "Summarize this lecture" | transcription, scene_changes, silence |
| General / unclear intent | scene_changes, silence, transcription |
Always include transcription: true when the video has audio — the transcription
tells you WHERE to look visually.
test cases passed, vs 5 / 15 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.