Retrieves transcripts from YouTube videos, supporting multiple URL formats, timestamp inclusion/exclusion, language selection, and transcript language availability checking.
YouTube Transcript MCP Server
A Model Context Protocol (MCP) server that retrieves transcripts from YouTube videos for Claude Code. This server allows you to easily extract video transcripts without manually downloading or copying content, making it perfect for analyzing video content, summarizing talks, or extracting information from educational videos.
blog article about this mcp server One More Piece Built: Adding YouTube Analysis to My Learning Iron Man Suit
npm package: @fabriqa.ai/youtube-transcript-mcp
Author: Cengiz Han
Features
Get Video Transcripts: Extract full transcripts from any YouTube video with available captions
Multiple URL Formats: Support for all common YouTube URL formats (youtube.com, youtu.be, etc.)
Timestamp Support: Include or exclude timestamps in transcript output
Language Selection: Request transcripts in specific languages when available
Error Handling: Graceful handling of videos without transcripts or invalid URLs
Efficient Context Usage: Get only the transcript without loading unnecessary video metadata
Installation
Option A: Install from npm (Recommended)
After installation, the server will be available globally. You can configure it by running:
Option B: Install from source
Clone this repository:
Install dependencies:
Configuration
If installed via npm (Recommended):
Option 1: Using Claude Code CLI (Easiest)
Recommended: Machine-Wide Installation
Understanding Scope Options:
Claude Code supports three configuration scopes for MCP servers:
--scope user(Recommended) - Machine-wideAvailable in ALL projects and directories
Configured once, works everywhere
Perfect for tools you use regularly across different projects
--scope local(Default) - Project-specificOnly available in the current directory and subdirectories
Useful for project-specific MCP servers
Each project must configure separately
--scope project- Explicit projectFor specific project configurations
Example usage:
Option 2: Manual Configuration
Add to your ~/.claude.json:
This uses npx to automatically run the globally installed package without needing to specify paths.
Quick Setup Script (Optional):
After installing via npm, you can use the included configuration script to automatically update your ~/.claude.json:
Or if installed from source:
This will automatically add the MCP server using npx, making it available machine-wide across all your projects.
Manual Configuration:
For Claude Desktop, edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Usage
Once configured, restart Claude Code. The following tools will be available:
1. get-transcript
Retrieve the transcript of a YouTube video.
Parameters:
url(required): YouTube video URL or video IDlang(optional): Language code for transcript (e.g., 'en', 'es', 'fr'). Default: video's default languageinclude_timestamps(optional): Include timestamps in output. Default: true
Supported URL formats:
https://www.youtube.com/watch?v=VIDEO_IDhttps://youtu.be/VIDEO_IDhttps://m.youtube.com/watch?v=VIDEO_IDVIDEO_ID(just the 11-character video ID)
Example:
2. get-transcript-languages
Check what transcript languages are available for a video.
Parameters:
url(required): YouTube video URL or video ID
Example:
Example Workflow
Here's how you might use this MCP server with Claude Code:
Extract a transcript to summarize a video:
Give me the key learnings from this Andrej Karpathy talk: https://www.youtube.com/watch?v=LCEmiRjPEtQAnalyze specific topics in a video:
Get the transcript from https://www.youtube.com/watch?v=LCEmiRjPEtQ and extract all mentions of "LLM" and "agents"Get transcripts in different languages:
What transcript languages are available for https://www.youtube.com/watch?v=LCEmiRjPEtQ?Extract quotes without timestamps (for long videos):
Get the transcript without timestamps from this video: https://www.youtube.com/watch?v=LCEmiRjPEtQNote: This 60-minute video generates ~19k tokens without timestamps vs ~30k with timestamps.
Research and content creation:
Get 3 key quotes from Andrej Karpathy about partial autonomy apps from https://www.youtube.com/watch?v=LCEmiRjPEtQ
Advanced: Using Claude Code Sub-Agents for Context Efficiency
Save 90% of your context when analyzing videos!
Claude Code supports specialized sub-agents that can analyze YouTube videos in an isolated context, returning only the insights to your main conversation. This means you can analyze many videos without filling up your context window with large transcripts.
Quick Example
Instead of this (fills your context with 20k+ tokens):
Do this (only ~2k tokens in your context):
The youtube-transcript-analyzer Agent
This specialized agent:
✅ Fetches transcripts in its own isolated context
✅ Analyzes the content thoroughly
✅ Returns ONLY the analysis to you
✅ Lets you analyze 10+ videos in one session
✅ Keeps your context clean and focused
Learn More
📖
The guide includes:
How sub-agents save context (with examples)
Complete setup instructions for the youtube-transcript-analyzer agent
Configuration files you can copy directly
Real-world usage examples and workflows
Advanced tips for analyzing multiple videos efficiently
Perfect for: Researchers, content creators, students, and anyone analyzing multiple videos in one session.
Use Cases
Content Summarization: Extract key learnings from hour-long technical talks (e.g., Andrej Karpathy's "Software in the Era of AI")
Research: Analyze conference talks, academic lectures, and educational content without watching
Content Creation: Get accurate quotes and references from video content for blog posts or articles
Learning & Education: Quickly review lecture content, extract main concepts and examples
Accessibility: Convert video content to searchable, readable text format
Interview Analysis: Extract quotes and insights from podcast interviews and panel discussions
Technical Documentation: Pull code examples and technical explanations from tutorial videos
Benefits
Time Saving: Get video content without watching the entire video
Context Efficiency: Extract only the text content you need
Flexible Format: Choose whether to include timestamps
Multi-language: Access transcripts in different languages when available
Easy Integration: Simple URL-based interface for Claude Code
Technical Details
Built with the @modelcontextprotocol/sdk
Uses a custom-built YouTube transcript library (
yt-lib/)Zero external dependencies for transcript fetching (uses native fetch API)
Runs as a local Node.js process communicating via stdio
Supports all YouTube videos with available transcripts/captions
Direct integration with YouTube's Innertube API for reliable transcript access
Limitations
MCP Protocol Token Limit
The MCP (Model Context Protocol) infrastructure has a 25,000 token response limit to protect Claude's context window and prevent performance issues. This limit is imposed by the MCP protocol layer, not by YouTube or this tool.
What this means:
Very long video transcripts (typically 60+ minutes) with timestamps enabled may exceed this limit
The transcript fetches successfully from YouTube, but MCP blocks the response if it's too large
Symptoms:
Solutions:
Disable timestamps (recommended for long videos):
Get the transcript without timestamps from https://www.youtube.com/watch?v=VIDEO_IDThis typically reduces response size by 20-30%, making most videos fit within the limit.
Request shorter videos (under 60 minutes usually work with timestamps)
Process in chunks: For very long videos, you may need to work with the transcript data programmatically rather than through the MCP tool
Real-world example (Andrej Karpathy's talk):
https://www.youtube.com/watch?v=LCEmiRjPEtQ (60-minute technical talk)
With timestamps: ~30,000 tokens ❌ (exceeds 25k limit)
Without timestamps: ~19,000 tokens ✅ (works perfectly)
Workaround: Simply ask "Get the transcript without timestamps" for long videos.
Troubleshooting
Server not appearing in Claude Code
Verify the path in your configuration file is correct
Ensure Node.js is installed and in your PATH
Check that dependencies are installed:
npm installRestart Claude Code completely
Check Claude Code logs for any error messages
"No transcript available" errors
Not all YouTube videos have transcripts
Some videos only have auto-generated captions in certain languages
Private or restricted videos cannot be accessed
Try checking if the video has captions enabled on YouTube
Language not found
Use the
get-transcript-languagestool to check available languagesCommon language codes: 'en', 'es', 'fr', 'de', 'ja', 'ko', 'pt', 'ru', 'zh', etc.
Not all videos have transcripts in all languages
Invalid URL errors
Ensure you're using a valid YouTube URL format
Video IDs should be exactly 11 characters
Make sure the video exists and is publicly accessible
Development
To modify or extend the server:
Edit
index.jsto add new tools or modify existing onesUpdate the
ListToolsRequestSchemahandler to register new toolsAdd corresponding handlers in the
CallToolRequestSchemahandlerTest your changes with
npm testRestart the server (restart Claude Code) to test changes
Testing
Run the test suite:
This will validate:
JSON schema compliance for Claude API
Tool registration and listing
Transcript fetching functionality
Error handling
URL parsing
License
MIT
Author
Created by Cengiz Han
Contributing
Feel free to submit issues or pull requests to improve this MCP server.