analyze_moment
Extract frames, OCR text, and transcript snippets from a specific video time range. Merge visual and audio content into a unified, annotated timeline.
Instructions
Deep-dive analysis of a specific time range in a video.
Combines burst frame extraction + transcript filtering + OCR + annotated timeline for a focused segment of the video.
Use this when you need to understand exactly what happens between two timestamps:
What's on screen (frames + OCR text extraction)
What's being said (transcript filtered to the range)
Unified timeline merging visual and audio content
Example: analyze_moment(url, "1:30", "2:00", 10) → 10 frames + transcript + OCR for that 30s window
Supports: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (requires yt-dlp), direct video URLs (.mp4, .webm, .mov), and local video files (absolute path or file:// URI).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | End timestamp (e.g., "2:00") | |
| url | Yes | Video source: Loom share link, platform video URL (YouTube, Vimeo, TikTok, Instagram, X, Twitch, Dailymotion, Facebook), direct .mp4/.webm/.mov URL, or absolute path to a local video file | |
| from | Yes | Start timestamp (e.g., "1:30") | |
| count | No | Number of frames to extract in the range (default: 10) | |
| maxWidth | No | Width cap for returned frames, in pixels; 0 keeps the source resolution. Defaults to 800 (or MCP_FRAME_MAX_WIDTH). Raise it when the video is a screen recording whose meaning lives in small text — terminals, dashboards, IDEs. Native frames cost several times more context than the default. | |
| ocrLanguage | No | Tesseract OCR language codes (default: "eng+por"). Use "+" to combine: "eng+spa", "eng+fra+deu". |