@novemberde/mcp-youtube
v0.9.6
Published
YouTube downloader for MCP
Readme
YouTube MCP Server
This project connects YouTube video processing capabilities to Claude AI via the Model Context Protocol. It uses yt-dlp for downloading subtitles and ffmpeg for screenshot extraction. Users can ask Claude to summarize YouTube videos by providing the URL.
System Architecture Diagram
graph TD
A[User] --> B[Claude AI]
B --> D[mcp-youtube]
D --> E[yt-dlp Subtitles]
D --> F[ffmpeg Screenshots]
D --> G[Temporary Storage]
G --> H[Auto-Cleanup]
style A fill:#FFE4B5,stroke:#333
style B fill:#98FB98,stroke:#333
style C fill:#ADD8E6,stroke:#333
style D fill:#D0ECE7,stroke:#333
style E fill:#FFB6C1,stroke:#333
style F fill:#DDA0DD,stroke:#333
style G fill:#FFFACD,stroke:#333
style H fill:#FFD700,stroke:#333
subgraph MCP
D --> E
D --> F
D --> G
end
subgraph Temporary Storage
G --> H
endGetting Started
Prerequisites
yt-dlpandffmpeginstalled (via Homebrew, WinGet, or other package managers)- Node.js and npm installed
Installation
Install the MCP server:
npm install -g @novemberde/mcp-youtubeConfigure Claude to use the MCP server: Add the following to your
claude_desktop_config.json:{ "mcpServers": { "mcp-youtube": { "command": "npx", "args": ["@novemberde/mcp-youtube"] } } }
Available Tools
1. download_youtube_url
Downloads and extracts subtitles from a YouTube video.
Parameters:
url(required): YouTube video URL
Example:
{
"url": "https://www.youtube.com/watch?v=example"
}2. search_youtube_videos
Searches YouTube videos based on a query.
Parameters:
query(required): Search termmax_results(optional, default=10): Maximum number of results
Example:
{
"query": "how to make pizza",
"max_results": 5
}Returns:
- Video title, URL, description, duration, view count, uploader name
3. get_screenshots
Captures screenshots from specific timestamps of a YouTube video.
Parameters:
url(required): YouTube video URLtimestamps(required): Array of timestamps inHH:MM:SSformat
Example:
{
"url": "https://www.youtube.com/watch?v=example",
"timestamps": ["00:01:30", "00:05:45"]
}Returns:
- File paths to saved screenshots
Notes
- Ensure
yt-dlpandffmpegare installed globally. - The server uses temporary directories for processing, which are automatically cleaned up.
- Error handling provides descriptive messages for troubleshooting.
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin feature/your-feature) - Create a new Pull Request
License
This project is licensed under the MIT License - see the COPYING file for details.
