Skip to main content
Glama

watch_video

Idempotent

Turn any local video or online URL into a timestamped transcript and keyframe overview, enabling summarization, Q&A, step extraction, and note-taking from video content.

Instructions

Turn a video into a timestamped transcript plus a keyframe overview so you can summarize it, answer questions about it, extract steps, commands or code, or write notes. video is an absolute path to a local video/audio file or a YouTube / Bilibili / Douyin / Xiaohongshu / TikTok / Vimeo URL. Fully offline: platform subtitles are used when they exist, otherwise local Whisper speech recognition (GPU when available, CPU otherwise); no API key. Results are cached per video, so calling again with the same video is instant. Typical time: 5–60 s for short subtitled videos, a few minutes for long videos without subtitles; the very first speech recognition downloads a model once (~480 MB on CPU, ~1.6 GB on GPU). If the reply starts with RUNNING, call watch_video again with the same video — it resumes waiting for the same job; do not change options and do not start other videos meanwhile. The reply is an English overview: metadata, chapters, the list of contact sheets (see them with get_frames), file paths, and the transcript with [mm:ss] timestamps (truncated at max_chars with a start time for get_transcript). Cite timestamps like (03:15). Not for live streams or images.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNofull = transcript + keyframes (default); transcript = no keyframes; frames = no speech recognition (platform subtitles still used)full
modelNoWhisper model used only when the video has no subtitles. auto = large-v3-turbo on an NVIDIA GPU, small on CPUauto
videoYesAbsolute path to a local video/audio file, or a video page URL (YouTube, Bilibili, Douyin, Xiaohongshu, TikTok, Vimeo, X and other yt-dlp sites)
refreshNoDiscard cached results (and any running job) for this video and process it again
languageNoSpoken language; auto detects it. Set it when you know it for better accuracyauto
max_charsNoMaximum characters of transcript included in the reply
output_dirNoAbsolute folder for the results; default $YUEYING_OUT_DIR/<name>-<id>
wait_secondsNoHow long this call may block before answering RUNNING. Keep 45 in Claude Desktop/Cursor (60 s client timeout); Claude Code/Cline may use up to 1500
cookies_from_browserNoReuse a browser login for HD or member-only Bilibili / sign-in-gated YouTube. Close Chrome first on Windows
frame_interval_secondsNoApproximate seconds between keyframes; None = automatic by duration (2–20 s). Use 2 for code/slide-heavy screencasts

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations. It discloses that the tool is fully offline, uses platform subtitles when available otherwise local Whisper, caches results per video, has specific time expectations (5–60s short subtitled, minutes for long unsubtitled), downloads a model on first run (~480MB CPU / ~1.6GB GPU), and explains the RUNNING reply behavior. It also states the reply format (English overview with metadata, chapters, contact sheets, file paths, transcript with [mm:ss] timestamps). This is rich behavioral context that annotations alone (readOnlyHint=false, idempotentHint=true, destructiveHint=false) do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized, front-loading the core purpose and then covering input types, offline behavior, caching, timing, the RUNNING protocol, reply format, and exclusions. Every sentence carries useful information. It loses a point for being somewhat long and for burying the 'Not for live streams or images' exclusion at the end, which is important routing information that could be more prominent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 10 parameters, no output schema, and no sibling differentiation in the schema, the description is remarkably complete. It covers input types, platform support, offline behavior, caching, timing, model download, the RUNNING retry protocol, reply format, timestamp citation format, and exclusions. It also references sibling tools (get_frames, get_transcript) for follow-up actions. Nothing an agent needs to call this tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining the video parameter's accepted URL platforms (YouTube, Bilibili, Douyin, Xiaohongshu, TikTok, Vimeo) and clarifying that results are cached per video, which gives meaning to the refresh parameter. It also explains the max_chars truncation behavior and its relationship to get_transcript. However, it doesn't add much detail on mode, model, language, or output_dir beyond what the schema already documents, so a 4 rather than 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Turn a video into a timestamped transcript plus a keyframe overview' and immediately lists downstream uses (summarize, answer questions, extract steps/commands/code, write notes). It also names the input types (local file or specific platforms) and explicitly excludes live streams and images, which distinguishes it from sibling tools like get_frames or get_transcript.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use context: use it to summarize, answer questions, extract steps/commands/code, or write notes. It also states when NOT to use it ('Not for live streams or images') and references sibling tools for follow-up actions ('see them with get_frames', 'start time for get_transcript'). It even provides operational guidance about the RUNNING reply and not starting other videos meanwhile.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.