Skip to main content
Glama

Get a YouTube video transcript

youtube_transcript
Read-only

Returns a YouTube video's captions as JSON: timestamped segments (start, dur, text) and a joined text, plus availableLanguages, the picked language, isAutoGenerated, and the video's title, author and lengthSeconds. Pass a video id or any YouTube video URL; choose a caption language with lang. Ideal for LLM/RAG pipelines, subtitles and content analysis. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.

Input Schema

NameRequiredDescriptionDefault
langNoPreferred caption language code, e.g. 'en'. Omit for the default/first track. A prefix like 'en' matches 'en-US'.
videoYesVideo id (dQw4w9WgXcQ) or any YouTube video URL.
formatNoOutput shape: segments, text. 'segments' returns timestamps; 'text' returns only the joined plaintext. Default: segments.
proxy_countryNoProxy country the request is sent from (ISO-2, e.g. 'US', 'DE') for the watch page. Defaults to US.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / additionalProperties
      Removed value: -false
  2. Changed1 schema field changed
    • changedInput schema / properties / format / description
      Previous value: -"Output shape: text, segments. 'segments' returns timestamps; 'text' returns only the joined plaintext. Default: segments."New value: +"Output shape: segments, text. 'segments' returns timestamps; 'text' returns only the joined plaintext. Default: segments."
  3. Changed1 schema field changed
    • changedInput schema / properties / format / description
      Previous value: -"Output shape: segments, text. 'segments' returns timestamps; 'text' returns only the joined plaintext. Default: segments."New value: +"Output shape: text, segments. 'segments' returns timestamps; 'text' returns only the joined plaintext. Default: segments."
  4. Added

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuinely new behavior: the exact response shape, prefix language matching ('en' matches 'en-US'), and cost character ('Billed like an API request'). The trailing sentence about plugins billing one unit per result page is boilerplate that doesn't apply to this tool and slightly muddies the cost 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?

Front-loads the return payload, then inputs, then use cases — a sensible order with no filler in the first three sentences. The final sentence about plugin billing is irrelevant to this tool and costs it a perfect score.

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?

With no output schema, the description fully carries the return contract (segments, joined text, availableLanguages, isAutoGenerated, title/author/lengthSeconds) plus input and fallback behavior. For a four-param read-only fetch tool, an agent has everything needed to call it correctly.

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

Parameters3/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 four params including the `en`-matches-`en-US` prefix rule and the format default. The description only restates that `video` takes an id or URL and that `lang` picks a caption track, adding no syntax or edge-case meaning beyond the schema; baseline 3 applies.

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

Purpose4/5

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

Opens with a specific verb+resource ('Returns a YouTube video's captions as JSON') and enumerates the returned fields, so the agent knows exactly what it gets. It does not, however, differentiate itself from the sibling youtube_search (e.g., 'use youtube_search first to find a video id'), so routing still requires inference.

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

Usage Guidelines3/5

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

Usage context is implied through the 'Ideal for LLM/RAG pipelines, subtitles and content analysis' sentence and the note that `video` accepts an id or URL, but there is no explicit when-to-use-this-vs-youtube_search guidance or stated prerequisite that a video id must be obtained first. The `lang` omission behavior ('Omit for the default/first track') is the only concrete calling rule.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources