# 🎬 yt-dlp-mcp
| ### 🔍 **Search & Discovery** - Search YouTube with pagination - JSON or Markdown output formats - Filter by relevance and quality ### 📊 **Metadata Extraction** - Comprehensive video information - Channel details and statistics - Upload dates, tags, categories - No content download required ### 📝 **Transcript & Subtitles** - Download subtitles in VTT format - Generate clean text transcripts - Multi-language support - Auto-generated captions | ### 🎥 **Video Downloads** - Resolution control (480p-1080p) - Video trimming support - Platform-agnostic (YouTube, Facebook, etc.) - Saved to Downloads folder ### 🎵 **Audio Extraction** - Best quality audio (M4A/MP3) - Direct audio-only downloads - Perfect for podcasts & music ### 🛡️ **Privacy & Safety** - No tracking or analytics - Direct downloads via yt-dlp - Zod schema validation - Character limits for LLM safety |
| Platform | Command |
|---|---|
| 🪟 Windows | winget install yt-dlp |
| 🍎 macOS | brew install yt-dlp |
| 🐧 Linux | pip install yt-dlp |
| Tool | Description |
|---|---|
ytdlp_search_videos |
Search YouTube with pagination and date filtering support - **Parameters**: `query`, `maxResults`, `offset`, `response_format`, `uploadDateFilter` - **Date Filter**: `hour`, `today`, `week`, `month`, `year` (optional) - **Returns**: Video list with titles, channels, durations, URLs - **Supports**: JSON and Markdown formats |
| Tool | Description |
|---|---|
ytdlp_list_subtitle_languages |
List all available subtitle languages for a video - **Parameters**: `url` - **Returns**: Available languages, formats, auto-generated status |
ytdlp_download_video_subtitles |
Download subtitles in VTT format with timestamps - **Parameters**: `url`, `language` (optional) - **Returns**: Raw VTT subtitle content |
ytdlp_download_transcript |
Generate clean plain text transcript - **Parameters**: `url`, `language` (optional) - **Returns**: Cleaned text without timestamps or formatting |
| Tool | Description |
|---|---|
ytdlp_download_video |
Download video to Downloads folder - **Parameters**: `url`, `resolution`, `startTime`, `endTime` - **Resolutions**: 480p, 720p, 1080p, best - **Supports**: Video trimming |
ytdlp_download_audio |
Extract and download audio only - **Parameters**: `url` - **Format**: Best quality M4A/MP3 |
| Tool | Description |
|---|---|
ytdlp_get_video_metadata |
Extract comprehensive video metadata in JSON - **Parameters**: `url`, `fields` (optional array) - **Returns**: Complete metadata or filtered fields - **Includes**: Views, likes, upload date, tags, formats, etc. |
ytdlp_get_video_metadata_summary |
Get human-readable metadata summary - **Parameters**: `url` - **Returns**: Formatted text with key information |
| Tool | Description |
|---|---|
ytdlp_get_video_comments |
Extract comments in flat JSON, threaded JSON, or AI-friendly Markdown - **Parameters**: `url`, `maxComments`, `sortOrder`, `view`, `responseFormat`, `maxParents`, `maxReplies`, `maxRepliesPerThread`, `maxDepth` - **Views**: `flat` (default) or `threaded` - **Formats**: `json` (default) or `markdown_tree` (`markdown_tree` requires threaded view) - **Returns**: Comment objects with `depth`, `reply_count`, `root_threads`, `reply_comments`, `orphan_comments` - **Graceful Degradation**: On platforms without parent metadata, threaded mode falls back to root-only comments |
ytdlp_get_video_comments_summary |
Get a human-readable summary of comments - **Parameters**: `url`, `maxComments`, `view` - **Views**: `flat` (linear summary) or `threaded` (grouped reply trees) - **Returns**: Readable comment digest with author badges, time, likes, and grouped replies |