MCP server for retrieving YouTube video transcripts for Claude Code
npm install @fabriqa.ai/youtube-transcript-mcp

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.
npm package: @fabriqa.ai/youtube-transcript-mcp
Author: Cengiz Han
- 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
``bash`
npm install -g @fabriqa.ai/youtube-transcript-mcp
After installation, the server will be available globally. You can configure it by running:
`bash`The package will be installed in your global node_modules
Typically: /usr/local/lib/node_modules/@fabriqa.ai/youtube-transcript-mcp
1. Clone this repository:
`bash`
git clone https://github.com/hancengiz/youtube-transcript-mcp.git
cd youtube-transcript-mcp
2. Install dependencies:
`bash`
npm install
#### Option 1: Using Claude Code CLI (Easiest)
Recommended: Machine-Wide Installation
`bash`Add the MCP server for all projects (machine-wide)
claude mcp add --scope user youtube-transcript npx @fabriqa.ai/youtube-transcript-mcp@latest
Understanding Scope Options:
Claude Code supports three configuration scopes for MCP servers:
- --scope user (Recommended) - Machine-wide
- Available in ALL projects and directories
- Configured once, works everywhere
- Perfect for tools you use regularly across different projects
- --scope local (Default) - Project-specific
- Only available in the current directory and subdirectories
- Useful for project-specific MCP servers
- Each project must configure separately
- --scope project - Explicit project
- For specific project configurations
Example usage:
`bashMachine-wide (recommended for youtube-transcript)
claude mcp add --scope user youtube-transcript npx @fabriqa.ai/youtube-transcript-mcp@latest
#### Option 2: Manual Configuration
Add to your
~/.claude.json:`json
{
"mcpServers": {
"youtube-transcript": {
"command": "npx",
"args": [
"@fabriqa.ai/youtube-transcript-mcp@latest"
]
}
}
}
`This uses
npx to automatically run the globally installed package without needing to specify paths.$3
After installing via npm, you can use the included configuration script to automatically update your
~/.claude.json:`bash
npx @fabriqa.ai/youtube-transcript-mcp/update-config.js
`Or if installed from source:
`bash
node update-config.js
`This will automatically add the MCP server using
npx, making it available machine-wide across all your projects.$3
For Claude Desktop, edit
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):`json
{
"mcpServers": {
"youtube-transcript": {
"command": "npx",
"args": [
"@fabriqa.ai/youtube-transcript-mcp@latest"
]
}
}
}
`Usage
Once configured, restart Claude Code. The following tools will be available:
$3
Retrieve the transcript of a YouTube video.
Parameters:
-
url (required): YouTube video URL or video ID
- lang (optional): Language code for transcript (e.g., 'en', 'es', 'fr'). Default: video's default language
- include_timestamps (optional): Include timestamps in output. Default: trueSupported URL formats:
-
https://www.youtube.com/watch?v=VIDEO_ID
- https://youtu.be/VIDEO_ID
- https://m.youtube.com/watch?v=VIDEO_ID
- VIDEO_ID (just the 11-character video ID)Example:
`
Can you get the transcript from https://www.youtube.com/watch?v=LCEmiRjPEtQ?
``
Get the transcript from this video without timestamps: https://youtu.be/LCEmiRjPEtQ
``
Summarize the key learnings from this Andrej Karpathy talk: https://www.youtube.com/watch?v=LCEmiRjPEtQ
`$3
Check what transcript languages are available for a video.
Parameters:
-
url (required): YouTube video URL or video IDExample:
`
What transcript languages are available for https://www.youtube.com/watch?v=LCEmiRjPEtQ?
`Example Workflow
Here's how you might use this MCP server with Claude Code:
1. Extract a transcript to summarize a video:
`
Give me the key learnings from this Andrej Karpathy talk: https://www.youtube.com/watch?v=LCEmiRjPEtQ
`2. Analyze specific topics in a video:
`
Get the transcript from https://www.youtube.com/watch?v=LCEmiRjPEtQ and extract all mentions of "LLM" and "agents"
`3. Get transcripts in different languages:
`
What transcript languages are available for https://www.youtube.com/watch?v=LCEmiRjPEtQ?
`4. Extract quotes without timestamps (for long videos):
`
Get the transcript without timestamps from this video: https://www.youtube.com/watch?v=LCEmiRjPEtQ
`
Note: This 60-minute video generates ~19k tokens without timestamps vs ~30k with timestamps.5. 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.
$3
Instead of this (fills your context with 20k+ tokens):
`
Get the transcript and analyze this video: [URL]
`Do this (only ~2k tokens in your context):
`
Use sub-agent to analyze this video: [URL]
`$3
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
$3
📖 Complete Claude Code Sub-Agent Guide
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 accessLimitations
$3
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:
`
Error: MCP tool "get-transcript" response (30131 tokens) exceeds
maximum allowed tokens (25000). Please use pagination, filtering,
or limit parameters to reduce the response size.
`Solutions:
1. Disable timestamps (recommended for long videos):
`
Get the transcript without timestamps from https://www.youtube.com/watch?v=VIDEO_ID
`
This typically reduces response size by 20-30%, making most videos fit within the limit.2. Request shorter videos (under 60 minutes usually work with timestamps)
3. 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
$3
1. Verify the path in your configuration file is correct
2. Ensure Node.js is installed and in your PATH
3. Check that dependencies are installed:
npm install
4. Restart Claude Code completely
5. Check Claude Code logs for any error messages$3
- 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
$3
- Use the
get-transcript-languages tool to check available languages
- Common language codes: 'en', 'es', 'fr', 'de', 'ja', 'ko', 'pt', 'ru', 'zh', etc.
- Not all videos have transcripts in all languages$3
- 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:
1. Edit
index.js to add new tools or modify existing ones
2. Update the ListToolsRequestSchema handler to register new tools
3. Add corresponding handlers in the CallToolRequestSchema handler
4. Test your changes with npm test
5. Restart the server (restart Claude Code) to test changesTesting
Run the test suite:
`bash
npm test
``This will validate:
- JSON schema compliance for Claude API
- Tool registration and listing
- Transcript fetching functionality
- Error handling
- URL parsing
MIT
Created by Cengiz Han
Feel free to submit issues or pull requests to improve this MCP server.