Skip to main content
Glama
emit-ia

YouTube Transcript MCP Server

by emit-ia

YouTube Transcript MCP Server

An MCP (Model Context Protocol) server for extracting and processing YouTube video transcripts.

Features

  • Extract transcripts from YouTube videos

  • Channel processing - Get all videos from a YouTube channel

  • Playlist processing - Get all videos from a YouTube playlist

  • Bulk transcripts - Extract transcripts from all channel or playlist videos

  • Search within transcripts for specific content

  • Batch processing of multiple videos

  • Multiple output formats (JSON, text, SRT, VTT)

  • Context-aware search with configurable windows

Installation

npx @emit-ia/youtube-transcript-mcp

Local Development

git clone https://github.com/emit-ia/youtube-transcript-mcp.git cd youtube-transcript-mcp npm install npm run build

Usage

As MCP Server

Option 1: Via NPX

Add to your Claude Desktop configuration:

{ "mcpServers": { "youtube-transcript": { "command": "npx", "args": ["@emit-ia/youtube-transcript-mcp"] } } }

Option 2: Local Installation

Add to your Claude Desktop configuration:

{ "mcpServers": { "youtube-transcript": { "command": "node", "args": ["/path/to/youtube-transcript-mcp/build/index.js"] } } }

Available Tools

youtube_get_transcript

Extract transcript from a YouTube video.

Parameters:

  • url (required): YouTube video URL

  • language (optional): Language code (default: "en")

  • format (optional): Output format - "json", "text", "srt", "vtt" (default: "json")

youtube_search_transcript

Search for specific text within a transcript.

Parameters:

  • url (required): YouTube video URL

  • query (required): Text to search for

  • contextWindow (optional): Seconds of context (default: 30)

  • caseSensitive (optional): Case sensitive search (default: false)

  • language (optional): Language code (default: "en")

youtube_batch_transcripts

Process multiple videos simultaneously.

Parameters:

  • urls (required): Array of YouTube video URLs

  • language (optional): Language code (default: "en")

  • maxConcurrent (optional): Max concurrent requests (default: 3)

youtube_transcript_summary

Get formatted summary of transcript content.

Parameters:

  • url (required): YouTube video URL

  • summaryType (optional): "brief", "detailed", "topics", "timestamps" (default: "brief")

  • language (optional): Language code (default: "en")

youtube_get_channel_videos

Get detailed video information from a YouTube channel.

Parameters:

  • channelUrl (required): YouTube channel URL (supports @username, /c/, /channel/, /user/ formats)

  • maxVideos (optional): Maximum number of videos to retrieve (default: 50, max: 200)

youtube_get_channel_video_urls

Get just the video URLs from a YouTube channel.

Parameters:

  • channelUrl (required): YouTube channel URL

  • maxVideos (optional): Maximum number of video URLs to retrieve (default: 50, max: 200)

youtube_get_channel_transcripts

Extract transcripts from multiple videos in a YouTube channel.

Parameters:

  • channelUrl (required): YouTube channel URL

  • maxVideos (optional): Maximum number of videos to process (default: 10, max: 50)

  • maxConcurrent (optional): Max concurrent transcript requests (default: 3, max: 10)

youtube_get_playlist_info

Get information about a YouTube playlist.

Parameters:

  • playlistUrl (required): YouTube playlist URL (supports playlist?list= and watch?v=...&list= formats)

youtube_get_playlist_videos

Get detailed video information from a YouTube playlist.

Parameters:

  • playlistUrl (required): YouTube playlist URL

  • maxVideos (optional): Maximum number of videos to retrieve (default: 50, max: 200)

youtube_get_playlist_video_urls

Get just the video URLs from a YouTube playlist.

Parameters:

  • playlistUrl (required): YouTube playlist URL

  • maxVideos (optional): Maximum number of video URLs to retrieve (default: 50, max: 200)

youtube_get_playlist_transcripts

Extract transcripts from multiple videos in a YouTube playlist.

Parameters:

  • playlistUrl (required): YouTube playlist URL

  • maxVideos (optional): Maximum number of videos to process (default: 50, max: 200)

  • maxConcurrent (optional): Max concurrent transcript requests (default: 3, max: 10)

Example Usage

// Get basic transcript const transcript = await youtube_get_transcript({ url: "https://youtube.com/watch?v=dQw4w9WgXcQ", format: "json" }); // Search within transcript const searchResults = await youtube_search_transcript({ url: "https://youtube.com/watch?v=dQw4w9WgXcQ", query: "important topic", contextWindow: 30 }); // Get all videos from a channel const channelVideos = await youtube_get_channel_videos({ channelUrl: "https://youtube.com/@channelname", maxVideos: 25 }); // Get just the video URLs const videoUrls = await youtube_get_channel_video_urls({ channelUrl: "https://youtube.com/c/ChannelName", maxVideos: 50 }); // Get transcripts from channel videos const channelTranscripts = await youtube_get_channel_transcripts({ channelUrl: "https://youtube.com/@channelname", maxVideos: 10, maxConcurrent: 3 }); // Get playlist information const playlistInfo = await youtube_get_playlist_info({ playlistUrl: "https://youtube.com/playlist?list=PLrAXtmRdnEQy6nuLMHjMZOz59Mgq_SUoL" }); // Get all videos from a playlist const playlistVideos = await youtube_get_playlist_videos({ playlistUrl: "https://youtube.com/playlist?list=PLrAXtmRdnEQy6nuLMHjMZOz59Mgq_SUoL", maxVideos: 50 }); // Get transcripts from playlist videos const playlistTranscripts = await youtube_get_playlist_transcripts({ playlistUrl: "https://youtube.com/playlist?list=PLrAXtmRdnEQy6nuLMHjMZOz59Mgq_SUoL", maxVideos: 25, maxConcurrent: 3 });

Requirements

  • Node.js 18+

  • No API keys required (uses public transcript data)

Limitations

  • Only works with videos that have public transcripts

  • Rate limiting may apply for high-volume usage

  • Transcript availability depends on YouTube's availability

License

MIT

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/emit-ia/youtube-transcript-mcp'

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