YouTube MCP Server

by nattyraz

YouTube MCP Server

A Model Context Protocol (MCP) server for interacting with YouTube videos. This server provides tools for extracting video metadata, captions, and converting them to markdown format with various templates.

Features

  • Video Metadata: Fetch comprehensive video information
  • Caption Extraction: Support for auto-generated and manual captions
  • Multiple Languages: Built-in support for English and French
  • Template System: Three built-in markdown templates:
    • Basic: Simple transcript format
    • Detailed: Full metadata with timestamps
    • Search: Results highlighting with context
  • Search Functionality: Search within video captions
  • Flexible Authentication: Supports both API key and OAuth2 authentication

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • A YouTube Data API key and/or OAuth2 credentials

Installation

  1. Clone the repository:
git clone [repository-url] cd youtube-mcp
  1. Install dependencies:
npm install
  1. Build the project:
npm run build

Configuration

Create a .env file in the root directory with your YouTube credentials:

YOUTUBE_API_KEY=your_api_key YOUTUBE_CLIENT_ID=your_client_id YOUTUBE_CLIENT_SECRET=your_client_secret YOUTUBE_REFRESH_TOKEN=your_refresh_token # Optional, for OAuth2

MCP Configuration

Add the server to your MCP settings file (usually at ~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json):

{ "mcpServers": { "youtube": { "command": "node", "args": ["path/to/youtube-mcp/build/index.js"], "env": { "YOUTUBE_API_KEY": "your_api_key", "YOUTUBE_CLIENT_ID": "your_client_id", "YOUTUBE_CLIENT_SECRET": "your_client_secret" }, "disabled": false, "alwaysAllow": [] } } }

Usage

The server provides the following tools:

1. Get Video Info

use_mcp_tool youtube get_video_info { "url": "https://www.youtube.com/watch?v=VIDEO_ID" }

2. Get Captions

use_mcp_tool youtube get_captions { "url": "https://www.youtube.com/watch?v=VIDEO_ID", "language": "en" // Optional, defaults to "en" }

3. Convert to Markdown

use_mcp_tool youtube convert_to_markdown { "url": "https://www.youtube.com/watch?v=VIDEO_ID", "template_name": "detailed", // Optional, "basic", "detailed", or "search" "language": "en", // Optional "options": { // Optional "include_chapters": true, "search_term": "keyword" // Only for search template } }

4. List Templates

use_mcp_tool youtube list_templates

Dependencies

{ "dependencies": { "@modelcontextprotocol/sdk": "latest", "googleapis": "^146.0.0", "google-auth-library": "^9.0.0", "youtube-captions-scraper": "^2.0.0", "express": "^4.18.2", "open": "^9.1.0" }, "devDependencies": { "@types/node": "^20.0.0", "typescript": "^5.0.0", "tsx": "^4.0.0" } }

OAuth2 Setup

For OAuth2 authentication (required for private video access):

  1. Create a project in the Google Cloud Console
  2. Enable the YouTube Data API v3
  3. Create OAuth2 credentials (Web application type)
  4. Run the authentication script:
node src/get-api-key.js
  1. Follow the browser prompts to authorize the application
  2. Copy the refresh token to your configuration

Customizing Templates

You can add custom templates by modifying the DEFAULT_TEMPLATES array in src/index.ts. Templates follow this structure:

interface MarkdownTemplate { name: string; description: string; format: { header?: string; chapter_format?: string; caption_block: string; timestamp_format?: string; search_result_format?: string; } }

License

MIT

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request
-
security - not tested
-
license - not tested
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Enables interaction with YouTube videos by extracting metadata, captions in multiple languages, and converting content to markdown with various templates.

  1. Features
    1. Prerequisites
      1. Installation
        1. Configuration
          1. MCP Configuration
            1. Usage
              1. 1. Get Video Info
              2. 2. Get Captions
              3. 3. Convert to Markdown
              4. 4. List Templates
            2. Dependencies
              1. OAuth2 Setup
                1. Customizing Templates
                  1. License
                    1. Contributing

                      Related MCP Servers

                      • -
                        security
                        F
                        license
                        -
                        quality
                        This server allows AI language models to interact with YouTube content through a standardized interface, providing features such as video and channel information retrieval, transcript management, and playlist operations.
                        Last updated -
                        59
                        135
                        TypeScript
                        • Linux
                        • Apple
                      • A
                        security
                        F
                        license
                        A
                        quality
                        An MCP server that enables users to generate summaries of YouTube videos in multiple languages and formats through integration with DeepSRT's API.
                        Last updated -
                        1
                        33
                        JavaScript
                        • Apple
                      • -
                        security
                        F
                        license
                        -
                        quality
                        Enables extraction of transcript text from YouTube videos by providing the video URL, supporting standard, shortened, and embed URL formats.
                        Last updated -
                        1
                        JavaScript
                      • -
                        security
                        A
                        license
                        -
                        quality
                        A Model Context Protocol server that enables retrieval of transcripts from YouTube videos with language-specific support.
                        Last updated -
                        723
                        MIT License

                      View all related MCP servers

                      ID: k6x6vemnys