Skip to main content
Glama

youtube_transcript: GET /

hasdata_youtube_transcript_getYoutubeTranscript

Get a YouTube video's timed transcript by video ID for RAG, summaries, search, translation, or accessibility. Optionally select language or auto-generated ASR track.

Instructions

Get YouTube Video Transcript

Returns the timed transcript (subtitles) of a YouTube video by its 11-character videoId. languageCode selects the track (e.g. en, de-DE, pt-BR); type=asr requests the auto-generated speech-recognition track. Each segment in transcript[] carries startMs, endMs, snippet, and a formatted startTimeText. The response also includes availableTranscripts[] listing every track on the video (language name + code, type: asr for auto-generated, selected: true for the one returned) so callers can discover what else is available. Use to feed a video's spoken content into RAG/LLM pipelines, generate summaries or chapter outlines, build searchable archives, run translation or accessibility workflows, or analyze talking points across a creator's catalog (pair with the YouTube Channel endpoint to enumerate videos, then fetch transcripts).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
vYes11-character YouTube video ID — the value of the `v=` query parameter in a watch URL (e.g. `dQw4w9WgXcQ` for `https://www.youtube.com/watch?v=dQw4w9WgXcQ`).
typeNoSet to `asr` to fetch the YouTube auto-generated (speech-recognition) track. Omit to fetch the human-authored track for `languageCode` when one exists.
languageCodeNoBCP-47 / YouTube language code of the transcript track to return (e.g. `en`, `de`, `en-US`, `pt-BR`). Must match a track that the video actually has. When omitted, the video's default language track is returned.
Behavior4/5

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

With no annotations provided, the description bears full responsibility for behavioral transparency. It thoroughly describes the response structure: timed segments with startMs, endMs, snippet, and startTimeText, plus availableTranscripts with language details and selection status. It also explains the effect of type=asr, which goes beyond basic schema. Minor omissions like error handling or rate limits are not mentioned, but the core behavior is well disclosed.

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 longer than a minimal example but each sentence serves a purpose: the first states the core function, the middle details response structure, and the final lists concrete use cases. It is front-loaded with the purpose and structured logically. It could be trimmed slightly, but it is not wasteful and earns its length given the lack of an output schema.

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

Completeness4/5

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

For a tool with no output schema and no annotations, the description provides a remarkably complete picture: what parameters control, what the response contains, and common application contexts. It even suggests integration with another endpoint for cross-video analysis. The only missing elements are error/edge-case behavior and explicit rate-limit or authentication notes, but these are outside typical description scope for a simple GET endpoint.

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?

The input schema already provides 100% coverage with detailed descriptions for v, type, and languageCode, including format examples and behaviors when omitted. The tool description largely repeats this information (e.g., 'languageCode selects the track', 'type=asr requests auto-generated'), adding no significant meaning beyond what the schema already states. This meets the baseline 3 for high schema coverage.

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 'Get YouTube Video Transcript' and explicitly states the resource (transcript of a YouTube video by 11-character videoId). It clearly distinguishes this tool from sibling tools like channel or search by focusing purely on retrieving transcript content for a given video, so an agent can immediately understand its unique function.

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

Usage Guidelines4/5

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

The description provides explicit usage scenarios ('Use to feed a video's spoken content into RAG/LLM pipelines, generate summaries...') and even suggests pairing with the YouTube Channel endpoint to enumerate videos. However, it does not explicitly state when NOT to use this tool or name alternative siblings for exclusion, leaving slight ambiguity in choosing among the sibling tools.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/HasData/youtube-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server