youtube-transcript-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YTDLP_PATH | No | Path to the yt-dlp executable. If not set, the server falls back to Python module yt_dlp. | |
| YTDLP_PROXY | No | Proxy for all requests. | |
| TRANSCRIPTS_DIR | No | Default output folder for transcripts. | ./transcripts |
| YTDLP_COOKIES_FILE | No | Path to a cookies.txt file for authentication. | |
| YTDLP_COOKIES_FROM_BROWSER | No | Browser to pull cookies from (e.g., chrome, firefox). Needed for age-restricted videos. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| transcribe_videoA | Transcribe a YouTube video and save it as a Markdown file built for an LLM to read: front matter with the video's facts, a linked chapter index, and the text in paragraphs with timestamps. By default it does NOT return the transcript, only the file path and a summary (title, channel, duration, word count and section list), so you can then read the whole file or just the section you need. Uses the video's own language unless another one is requested. |
| list_languagesA | Show which captions a YouTube video has (manual and automatic), its own language, its duration and how many chapters it carries. Useful before transcribing when you are unsure the language you want exists. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: transcribe_video retrieves and saves a transcript, while list_languages provides metadata about available captions. No overlap or ambiguity exists.
Both tools follow a consistent verb_noun pattern: transcribe_video and list_languages. The naming is clear, predictable, and uniform.
With only two tools, the server feels slightly thin even for its narrow domain. However, the two tools cover the core workflow of checking languages and transcribing, so the count is borderline but defensible.
The server covers the essential transcript retrieval cycle well. A minor gap is that transcribe_video does not return the transcript directly, requiring a follow-up file read, but the workflow is complete and workable.