Skip to main content
Glama

YouTube MCP Server

by kevinwatt

yt-dlp-mcp

An MCP server implementation that integrates with yt-dlp, providing video and audio content download capabilities (e.g. YouTube, Facebook, Tiktok, etc.) for LLMs.

Features

  • Video Metadata: Extract comprehensive video information without downloading content
  • Subtitles: Download subtitles in SRT format for LLMs to read
  • Video Download: Save videos to your Downloads folder with resolution control
  • Audio Download: Save audios to your Downloads folder
  • Video Search: Search for videos on YouTube using keywords
  • Privacy-Focused: Direct download without tracking
  • MCP Integration: Works with Dive and other MCP-compatible LLMs

Installation

Prerequisites

Install yt-dlp based on your operating system:

# Windows winget install yt-dlp # macOS brew install yt-dlp # Linux pip install yt-dlp

With Dive Desktop

  1. Click "+ Add MCP Server" in Dive Desktop
  2. Copy and paste this configuration:
{ "mcpServers": { "yt-dlp": { "command": "npx", "args": [ "-y", "@kevinwatt/yt-dlp-mcp" ] } } }
  1. Click "Save" to install the MCP server

Tool Documentation

  • search_videos
    • Search for videos on YouTube using keywords
    • Inputs:
      • query (string, required): Search keywords or phrase
      • maxResults (number, optional): Maximum number of results to return (1-50, default: 10)
  • list_subtitle_languages
    • List all available subtitle languages and their formats for a video (including auto-generated captions)
    • Inputs:
      • url (string, required): URL of the video
  • download_video_subtitles
    • Download video subtitles in any available format. Supports both regular and auto-generated subtitles
    • Inputs:
      • url (string, required): URL of the video
      • language (string, optional): Language code (e.g., 'en', 'zh-Hant', 'ja'). Defaults to 'en'
  • download_video
    • Download video to user's Downloads folder
    • Inputs:
      • url (string, required): URL of the video
      • resolution (string, optional): Video resolution ('480p', '720p', '1080p', 'best'). Defaults to '720p'
      • startTime (string, optional): Start time for trimming (format: HH) - e.g., '00:01:30' or '00:01:30.500'
      • endTime (string, optional): End time for trimming (format: HH) - e.g., '00:02:45' or '00:02:45.500'
  • download_audio
    • Download audio in best available quality (usually m4a/mp3 format) to user's Downloads folder
    • Inputs:
      • url (string, required): URL of the video
  • download_transcript
    • Download and clean video subtitles to produce a plain text transcript without timestamps or formatting
    • Inputs:
      • url (string, required): URL of the video
      • language (string, optional): Language code (e.g., 'en', 'zh-Hant', 'ja'). Defaults to 'en'
  • get_video_metadata
    • Extract comprehensive video metadata without downloading the content
    • Returns detailed information including title, description, channel, timestamps, view counts, and more
    • Inputs:
      • url (string, required): URL of the video
      • fields (array, optional): Specific metadata fields to extract (e.g., ['id', 'title', 'description', 'channel']). If not provided, returns all available metadata
  • get_video_metadata_summary
    • Get a human-readable summary of key video metadata
    • Returns formatted text with title, channel, duration, views, upload date, and description preview
    • Inputs:
      • url (string, required): URL of the video

Usage Examples

Ask your LLM to:

"Search for Python tutorial videos" "Find JavaScript courses and show me the top 5 results" "Search for machine learning tutorials with 15 results" "List available subtitles for this video: https://youtube.com/watch?v=..." "Download a video from facebook: https://facebook.com/..." "Download Chinese subtitles from this video: https://youtube.com/watch?v=..." "Download this video in 1080p: https://youtube.com/watch?v=..." "Download audio from this YouTube video: https://youtube.com/watch?v=..." "Get a clean transcript of this video: https://youtube.com/watch?v=..." "Download Spanish transcript from this video: https://youtube.com/watch?v=..." "Get metadata for this video: https://youtube.com/watch?v=..." "Show me the title, description, and channel info for this video: https://youtube.com/watch?v=..." "Get a summary of this video's metadata: https://youtube.com/watch?v=..." "Extract just the id, title, and view count from this video: https://youtube.com/watch?v=..."

Manual Start

If needed, start the server manually:

npx @kevinwatt/yt-dlp-mcp

Requirements

  • Node.js 20+
  • yt-dlp in system PATH
  • MCP-compatible LLM service

Documentation

License

MIT

Author

Dewei Yen

-
security - not tested
A
license - permissive license
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

Connects 'yt-dlp' with LLMs via the Model Context Protocol, allowing users to download YouTube content and integrate it with Dive and other MCP-compatible LLMs.

  1. Features
    1. Installation
      1. Prerequisites
      2. With Dive Desktop
    2. Tool Documentation
      1. Usage Examples
        1. Manual Start
          1. Requirements
            1. Documentation
              1. License
                1. Author

                  Related MCP Servers

                  • A
                    security
                    A
                    license
                    A
                    quality
                    Uses yt-dlp to download subtitles from YouTube and connects it to claude.ai via Model Context Protocol.
                    Last updated -
                    1
                    798
                    420
                    JavaScript
                    MIT License
                    • Apple
                  • -
                    security
                    F
                    license
                    -
                    quality
                    An MCP server that enables LLMs to search YouTube, retrieve video information, and access video transcripts through standardized tools.
                    Last updated -
                    TypeScript
                  • A
                    security
                    A
                    license
                    A
                    quality
                    Model Context Protocol server for YDB databases that enables AI-powered database operations and natural language interactions with YDB instances from any LLM that supports MCP.
                    Last updated -
                    5
                    21
                    Python
                    Apache 2.0
                    • Linux
                    • Apple
                  • A
                    security
                    A
                    license
                    A
                    quality
                    A Model Context Protocol server that provides unified access to multiple LLM APIs including ChatGPT, Claude, and DeepSeek, allowing users to call different LLMs from MCP-compatible clients and combine their responses.
                    Last updated -
                    7
                    537
                    1
                    TypeScript
                    MIT License

                  View all related MCP servers

                  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/kevinwatt/yt-dlp-mcp'

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