Supports audio-only playback using ffplay and media processing capabilities for YouTube video content.
Powers AI-driven video analysis features including automated summarization, chapter generation, keyword extraction, topic detection, and highlight generation for YouTube content.
Enables playback of YouTube videos through VLC media player as an alternative to browser-based playback.
Provides comprehensive YouTube video analysis, playback control, data retrieval (video info, playlists, channels, search), transcript management with translation, and AI-powered content processing including summaries, chapters, keywords, topics, and highlights.
YT-NINJA š„·
A comprehensive YouTube MCP (Model Context Protocol) server that provides AI-powered video analysis, playback control, transcript management, and advanced content processing capabilities.
Features
š¬ Video Playback
Play videos in browser or VLC player
Audio-only playback with ffplay
Video segment playback with timestamp control
Active playback session management
š Data Retrieval
Get detailed video information (title, views, likes, duration, etc.)
Fetch playlist details with all videos
Retrieve channel information and statistics
Search YouTube videos and music
Download video thumbnails in multiple qualities
š Transcript Management
Get official video transcripts
AI-powered transcript generation (when official unavailable)
Translate transcripts to any language
Format transcripts with or without timestamps
š¤ AI-Powered Analysis
Generate video summaries with key points
Auto-generate chapter markers
Extract relevant keywords with relevance scores
Detect topics and categories
Create AI-powered video highlights
Installation
Prerequisites
Node.js >= 18.0.0
npm >= 9.0.0
Google Gemini API key (required for AI features)
Optional: VLC Media Player (for VLC playback)
Optional: FFmpeg (for audio playback and processing)
Setup
Clone the repository:
Install dependencies:
Configure environment variables:
Edit .env and add your configuration:
Build the project:
Configuration
Environment Variables
Variable | Required | Default | Description |
| Yes | - | Google Generative AI API key for AI features |
| No |
| Directory for downloaded files |
| No |
| Temporary files directory |
| No |
| Maximum concurrent downloads |
| No |
| Logging level (error, warn, info, debug) |
Getting a Gemini API Key
Visit Google AI Studio
Sign in with your Google account
Click "Create API Key"
Copy the key and add it to your
.envfile
MCP Configuration
Add to your MCP settings file (mcp.json):
Available Tools
Playback Tools
play_youtube_video
Play a YouTube video in browser or VLC player.
Parameters:
url(string, required): YouTube video URLplayer(string, optional): Player type -browserorvlc(default:browser)
Example:
Data Retrieval Tools
get_video_info
Get comprehensive information about a YouTube video.
Parameters:
url(string, required): YouTube video URL
Returns: Video title, description, channel, views, likes, duration, tags, thumbnail, etc.
get_playlist_info
Get information about a YouTube playlist.
Parameters:
url(string, required): YouTube playlist URL
Returns: Playlist title, description, video count, total duration, list of videos
get_channel_info
Get information about a YouTube channel.
Parameters:
channelId(string, required): Channel ID or URL
Returns: Channel name, description, subscriber count, total views, video count
search_youtube
Search for videos on YouTube.
Parameters:
query(string, required): Search querymaxResults(number, optional): Maximum results (1-50, default: 10)
Returns: Array of search results with video details
search_music
Search specifically for music on YouTube.
Parameters:
query(string, required): Music search querymaxResults(number, optional): Maximum results (1-50, default: 10)
Returns: Array of music search results
download_thumbnail
Download a video thumbnail image.
Parameters:
url(string, required): YouTube video URLoutputPath(string, optional): Output file pathquality(string, optional): Quality -maxres,high,medium,default(default:maxres)
Transcript Tools
get_transcript
Get the transcript/subtitles of a video.
Parameters:
url(string, required): YouTube video URLlanguage(string, optional): Language code (e.g., 'en', 'es', 'fr')
Returns: Transcript text, language, timestamps, source type
translate_transcript
Translate a video transcript to another language.
Parameters:
url(string, required): YouTube video URLtargetLanguage(string, required): Target language code
Returns: Translated transcript with original timestamps
AI Analysis Tools
summarize_video
Generate an AI-powered summary of a video.
Parameters:
url(string, required): YouTube video URLmaxWords(number, optional): Maximum words in summary (default: 200)
Returns: Summary text, key points, word count
generate_chapters
Auto-generate chapter markers for a video.
Parameters:
url(string, required): YouTube video URL
Returns: Array of chapters with timestamps, titles, and descriptions
get_keywords
Extract relevant keywords from a video.
Parameters:
url(string, required): YouTube video URLcount(number, optional): Number of keywords (default: 15)
Returns: Array of keywords with relevance scores and frequency
detect_topics
Detect topics and categories in a video.
Parameters:
url(string, required): YouTube video URL
Returns: Array of topics with confidence scores and categories
generate_video_highlights
Generate AI-powered video highlights.
Parameters:
url(string, required): YouTube video URLcount(number, optional): Number of highlights (5-10, default: 7)
Returns: Array of highlight moments with timestamps, descriptions, reasons, and scores
Usage Examples
Using with\
AI
Once configured as an MCP server, you can use YT-NINJA through natural language:
Programmatic Usage
Development
Scripts
npm run dev- Run in development mode with hot reloadnpm run build- Build for productionnpm start- Start the production servernpm run lint- Lint codenpm run format- Format code with Prettiernpm run type-check- Check TypeScript types
Project Structure
Error Handling
YT-NINJA provides detailed error messages with suggestions: