YouTube Data MCP Server
by diasm3
A Model Context Protocol (MCP) server for extracting YouTube video transcripts and comments. This server provides tools to get transcripts and comments from YouTube videos for analysis and summarization.
Last updated: N/A
YouTube Data MCP Server
A Model Context Protocol (MCP) server for extracting YouTube video transcripts and comments. This server provides tools to get transcripts and comments from YouTube videos for analysis and summarization.
Features
getTranscript
: Extract subtitles/transcripts from YouTube videosgetVideoInfo
: Get basic information about a YouTube videogetReplies
: Fetch comments for YouTube videos (using SerpAPI)getCommentReplies
: Get replies to specific YouTube comments
Requirements
- Node.js 16+
- TypeScript
- SerpAPI API key (for comments functionality)
Installation(for Developer)
# Clone the repository
git clone https://github.com/diasm3/serpapi-youtube-mcp-server.git
cd youtube-data-mcp
# Install dependencies
npm install
Configuration
Create a .env
file in the root directory with your SerpAPI key:
SERPAPI_KEY=your_serpapi_key_here
You can get a SerpAPI key by signing up at SerpAPI.
Build and Run
# Build the project
npm run build
# Run the server
npm start
The server will start running and listening for commands via stdin/stdout.
Using with Claude
To use this MCP server with Claude:
- Add the server to your Claude configuration file:
{
"mcpServers": {
"youtube-data": {
"command": "npx",
"args": ["-y","youtube-data-mcp"],
"env": {
"SERPAPI_KEY": "your_serpapi_key_here"
}
}
}
}
-
Restart Claude to apply the configuration.
-
Now you can ask Claude to:
- "Get the transcript for this YouTube video: [URL]"
- "Show me the comments for this YouTube video: [URL]"
- "Get replies to specific comments"
API Tools
searchYoutube
Search for videos, channels, and playlists on YouTube.
Parameters:
query
: Search query for YouTube (required)limit
: Maximum number of results to return (optional, default: 10)gl
: Country code for search results (optional, e.g., 'us', 'kr', 'jp')hl
: Language code for search results (optional, e.g., 'en', 'ko', 'ja')sp
: Special parameter for filtering or pagination (optional)pageToken
: Token for pagination from previous response (optional)
Example (via Claude):
Search for "JavaScript tutorial" on YouTube and show me the top 5 results
getVideoInfo
Retrieve basic information about a YouTube video.
Parameters:
url
: YouTube video URL or video ID (required)
Returns:
videoId
: The video's IDtitle
: The video's titleviewCount
: Number of viewspublishDate
: Date when the video was publishedchannelName
: Name of the channel that published the videocommentCount
: Number of comments on the videocommentsNextPageToken
: Token for fetching commentscommentsSortingTokens
: Tokens for different comment sorting options
Example (via Claude):
Get information about this YouTube video: https://www.youtube.com/watch?v=dQw4w9WgXcQ
getTranscript
Extracts transcripts/subtitles from YouTube videos.
Parameters:
url
: YouTube video URL or video ID (required)lang
: Language code for transcript (optional, default: 'en')
Example (via Claude):
Please get the transcript for this YouTube video: https://www.youtube.com/watch?v=dQw4w9WgXcQ
getReplies
Retrieves comments from a YouTube video using SerpAPI.
Parameters:
url
: YouTube video URL or video ID (required for initial page, optional for pagination)limit
: Maximum number of comments to retrieve (optional, default: 100)sort
: Sort order for comments ('relevance' or 'time', optional, default: 'relevance')pageToken
: Token for pagination from previous response (optional)
Example (via Claude):
Show me comments for this YouTube video: https://www.youtube.com/watch?v=dQw4w9WgXcQ
getCommentReplies
Gets replies for a specific YouTube comment.
Parameters:
pageToken
: Reply token from a comment to get its replies (required)
This function is typically used programmatically after getting the repliesToken
from a comment.
Understanding SerpAPI Integration
This MCP server uses SerpAPI's YouTube Search API and YouTube Video API to fetch search results, comments, and other data. SerpAPI provides a way to scrape YouTube data without directly using YouTube's official API.
Key points about SerpAPI usage:
- The server uses the
youtube_video
engine with thev
parameter (YouTube video ID) - Comments are paginated using tokens returned in the API response
- Comment replies are fetched separately using their specific tokens
- API calls are limited by your SerpAPI subscription plan
Troubleshooting
- If you encounter a 400 Bad Request error, verify your SerpAPI key is valid and properly set in the .env file
- Check the server logs for detailed error messages and debugging information
- For comment-related issues, ensure SerpAPI still supports the YouTube Video API format used
License
MIT