Nareshtt

YouTube MCP Server

Community Nareshtt
Updated

YouTube MCP Python

YouTube MCP Server

Distraction-free YouTube for AI assistants. Get your subscribed channels, latest videos, and transcripts without algorithm recommendations.

Features

  • No Distractions: Lists only your subscribed content
  • Direct Links: Every video has a clickable link
  • Read Mode: Get transcripts to read instead of watching
  • No OAuth: Uses browser cookies - much simpler
  • Caching: Fast responses for repeated queries

Available Tools

Tool Description
get_subscribed_channels List all your subscribed channels
get_latest_videos Get latest videos from subscriptions with direct links
get_video_transcript Get transcript of a video (read instead of watching)
search_subscribed_channels Search within your subscriptions
get_channel_videos Get videos from a specific channel
setup_youtube_auth Get authentication setup instructions

Setup

1. Install Dependencies

cd /home/naresh/Projects/youtube-mcp-python
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

2. Export YouTube Cookies

Using Chrome:

yt-dlp --cookies-from-browser chrome --cookies auth/cookies.txt

Using Firefox:

yt-dlp --cookies-from-browser firefox --cookies auth/cookies.txt

Note: You must be logged into YouTube in your browser first.

3. Add to OpenCode

Add to ~/.config/opencode/opencode.jsonc:

{
  "mcp": {
    "youtube": {
      "type": "local",
      "command": ["/home/naresh/Projects/youtube-mcp-python/.venv/bin/python", "/home/naresh/Projects/youtube-mcp-python/main.py"],
      "enabled": true
    }
  }
}

Usage Examples

Get latest videos:

Use get_latest_videos with max_results=15

Read a video transcript:

Use get_video_transcript with video_id="dQw4w9WgXcQ"

Search your subscriptions:

Use search_subscribed_channels with query="python tutorial"

Get a specific channel's videos:

Use get_channel_videos with channel_id="UCwX6rVkOq0"

Project Structure

youtube-mcp-python/
├── main.py              # Entry point
├── mcp_server.py        # MCP tool definitions
├── config.py           # Configuration
├── requirements.txt    # Dependencies
├── opencode-mcp-config.json
├── auth/
│   └── __init__.py    # Cookie validation
├── services/
│   ├── __init__.py
│   ├── subscriptions_service.py
│   ├── videos_service.py
│   ├── transcripts_service.py
│   └── search_service.py
├── utils/
│   ├── __init__.py
│   ├── ytdlp_wrapper.py
│   ├── cache.py
│   └── retry.py
└── data/
    └── cache/          # Cached data

Troubleshooting

"Cookies not found"→ Run the yt-dlp cookie export command

"401 Unauthorized"→ Re-export cookies (they expire when you log out)

"No subscriptions found"→ Make sure you're subscribed to channels on YouTube

Credits

Built with:

  • yt-dlp - YouTube extraction
  • MCP - Model Context Protocol

MCP Server · Populars

MCP Server · New