Skip to main content
Glama

Transcribe Video

transcribe_video
Read-onlyIdempotent

Transcribes spoken audio from public Instagram Reels, TikTok videos, and YouTube Shorts, returning timestamped text and optional visual context shown on screen.

Instructions

Retrieves a public Instagram Reel, TikTok video, or YouTube video/Short and returns an accurate, timestamped transcript of its spoken audio — and, when visual analysis is enabled, meaningful visual information the video shows.

WHAT IT DOES

  • Downloads the video/audio behind a public URL and transcribes the spoken speech using an automatic speech recognition model.

  • Returns structured, timestamped segments plus a combined plain-text transcript, along with the detected spoken language and total duration.

  • When visual analysis is enabled server-side, also returns "visual" — a short list of meaningful visual observations (on-screen text/slides, charts, UI, important scene context) with their own timestamps. This is never a caption for every frame; it only includes what a reader would actually need to understand the video without watching it. Absent or empty "visual" does not mean nothing was shown — it means nothing met that bar (or visual analysis wasn't enabled).

WHAT IT DOES NOT DO

  • It does NOT work on private, login-gated, deleted, or otherwise inaccessible content, and it never attempts to bypass login, CAPTCHAs, or other access controls — such content returns a typed error instead.

  • It does NOT currently support any platform other than Instagram Reels, TikTok videos, and YouTube videos/Shorts (no X/Twitter, etc.), and no Instagram content types other than Reels (no photo posts, carousels, Stories, or IGTV).

  • Visual analysis, when it runs, does not describe trivial visual activity (a person moving, blinking, camera motion) — only information that materially helps understand the content.

SUPPORTED INPUT

LIMITATIONS

  • Videos are subject to a configured maximum duration and file size; longer/larger videos are rejected rather than partially processed.

  • Background music, overlapping speakers, heavy accents, or very noisy audio can reduce accuracy; when the model itself is uncertain, "low_confidence" is set to true instead of guessing at unclear speech.

  • This is a best-effort automatic transcript, not a human-verified one. Visual observations, when present, are similarly best-effort — on-screen text is preserved exactly as read, never "corrected", and a low "confidence" means treat it as uncertain rather than fact.

Use this tool when you need the words spoken in a public video from one of the supported platforms, and optionally what it visually showed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesA public video URL — Instagram Reel (e.g. "https://www.instagram.com/reel/ABC123xyz/"), TikTok (e.g. "https://www.tiktok.com/@user/video/123..."), or YouTube/Shorts (e.g. "https://www.youtube.com/shorts/ABC123xyz" or "https://youtu.be/ABC123xyz"). Must point to content that does not require login to view.
includeVideoMapNoWhether to also resolve "this"/"that"/pointing references to a specific visual entity (the Video Map). Only has an effect when the server has the Video Map enabled AND includeVisualObservation is not false — it enriches the same sampled frames, not a standalone stage. Defaults to true (matches existing behavior) — pass false to skip it.
includeVisualObservationNoWhether to also analyze visual content (on-screen text, slides, charts, meaningful scene context) alongside the spoken transcript. Only has an effect when the server has visual analysis enabled at all; otherwise silently ignored. Defaults to true (matches existing behavior) — pass false to skip it for this call even when the server supports it.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
mapNoPresent only when the Video Map (VIDEO_MAP_ENABLED) resolved at least one "this"/"that"/pointing reference to a specific visual target. Use get_video_map for the full picture including unresolved/uncertain ones.
urlYesThe canonical URL that was transcribed.
textYesThe full transcript as plain text, in order.
sourceYesThe platform the video was retrieved from.
visualNoMeaningful visual information detected in the video — on-screen text, slides, charts, UI, or scene context necessary to understand what is being discussed. Present only when visual analysis is enabled and found something worth surfacing; absent doesn't mean nothing was shown, only that nothing met the bar. This is never a caption for every frame — expect a short list of high-value observations, not a play-by-play.
languageNoBCP-47-ish language code detected in the spoken audio (e.g. "en"), if it could be determined.
segmentsYesTimestamped transcript segments, in chronological order.
video_idNoStable id for this video — pass this to search_video, find_moment, and get_video_timeline instead of re-submitting the URL.
low_confidenceYesTrue when parts of the audio were unclear, mostly music/silence, or otherwise low-confidence. When true, treat the transcript as best-effort rather than verbatim.
duration_secondsYesTotal duration of the video/audio in seconds.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds substantial behavioral context beyond annotations: it explains that visual analysis is server-side gated, that 'visual' is not a frame-by-frame caption, that low_confidence is set rather than guessing, that on-screen text is preserved exactly as read, and that longer/larger videos are rejected rather than partially processed. This is rich, honest behavioral disclosure.

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 long but well-structured with clear section headers (WHAT IT DOES, WHAT IT DOES NOT DO, SUPPORTED INPUT, LIMITATIONS). The most important information is front-loaded in the first sentence. Every section earns its place, though the length is at the upper bound of what is reasonable for a tool description.

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?

Given the tool's complexity (3 parameters, output schema, multiple supported platforms, server-side feature gating), the description is remarkably complete. It covers supported inputs, unsupported inputs, error behavior, limitations, confidence semantics, and the meaning of absent 'visual' data. The output schema exists, so return values don't need to be re-explained. Nothing an agent needs to call this 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 schema already documents all three parameters well. The description adds value by explaining the semantics of the visual output ('visual' is only meaningful observations, not every frame) and by clarifying that includeVideoMap only enriches the same sampled frames. However, the description doesn't add much beyond the schema for the url parameter, which is already thoroughly described in the schema.

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 ('Retrieves... and returns') and names the exact resources (public Instagram Reel, TikTok video, YouTube video/Short) and outputs (timestamped transcript, visual info). It clearly distinguishes itself from siblings like understand_video, search_video, and find_moment by focusing on transcription of spoken audio plus optional visual observations.

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 explicitly states when to use the tool ('when you need the words spoken in a public video... and optionally what it visually showed') and provides extensive what-it-does-not-do guidance, including unsupported platforms, private content, and unsupported URL shapes. It also names the error type (UNSUPPORTED_SOURCE) for invalid inputs, which helps an agent decide before calling.

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