Skip to main content
Glama

youtube-mcp

OAuth-authentifiziertes YouTube-MCP für Kanalinhaber — bearbeiten Sie Ihre Videometadaten, antworten Sie auf Kommentare und moderieren Sie diese, verwalten Sie Playlists, fragen Sie Kanalanalysen ab und generieren Sie KI-Thumbnails über eine ComfyUI-Brücke und weisen Sie diese zu. Geht weit über die schreibgeschützten Data API v3-Wrapper hinaus, die diesen Bereich dominieren.

Teil der MCP Server Series.

GitHub Sponsors Ko-fi

Das Konzept

Die meisten existierenden YouTube-MCPs verwenden einen API-Schlüssel für die Data API v3 — Videos suchen, öffentliche Metadaten abrufen, nur lesend. Dieses hier verwendet OAuth 2.0 (Authorization Code + PKCE), sodass es tatsächlich auf Ihren Kanal schreiben kann: Videotitel/Beschreibungen/Tags aktualisieren, auf Kommentare antworten, Spam moderieren, Playlists verwalten. Außerdem greift es auf die separate YouTube Analytics API für Kanalstatistiken zu und — das Highlight-Tool — generiert ein Thumbnail über ComfyUI und überträgt es in einem einzigen MCP-Aufruf an YouTube.

Claude, use generate_and_set_thumbnail on video abc123:
  prompt: "cyberpunk hacker at keyboard, neon blue and pink, high contrast"

→ ComfyUI rendert 1280×720 → youtube-mcp ruft die Bytes ab → POST an thumbnails.set. Fertig.

Installation

# npx — no install
npx @miller-joe/youtube-mcp --help

# Docker
docker run -p 9120:9120 \
  -e YOUTUBE_CLIENT_ID=... \
  -e YOUTUBE_CLIENT_SECRET=... \
  -e YOUTUBE_TOKEN_FILE=/token/token.json \
  -v $PWD/token:/token \
  ghcr.io/miller-joe/youtube-mcp:latest

Einrichtung — Einmalig Google Cloud (~10 Min.)

  1. Google-Konto + YouTube-Kanal — verwenden Sie ein persönliches Konto, kein Workspace-Konto, das Sie möglicherweise verlieren könnten.

  2. Google Cloud-Projekt unter https://console.cloud.google.com — nennen Sie es wie Sie möchten (z. B. youtube-mcp).

  3. APIs aktivieren:

    • YouTube Data API v3

    • YouTube Analytics API

  4. OAuth-Zustimmungsbildschirm — Extern, App-Name, Support-E-Mail; fügen Sie unter Scopes hinzu:

    • youtube.upload

    • youtube.force-ssl

    • yt-analytics.readonly

  5. Bleiben Sie im Testmodus. Fügen Sie sich selbst als Testnutzer hinzu (erforderlich). Als Projekteigentümer läuft Ihr Refresh-Token nicht ab.

  6. OAuth-Client-ID erstellen: Anwendungstyp = Desktop-App. Laden Sie das JSON herunter.

  7. Interaktiven Authentifizierungsfluss ausführen:

    npx @miller-joe/youtube-mcp --auth --client-secret-file ./client_secret.json

    Ein Browser öffnet sich → Sie melden sich bei dem Google-Konto an, das mit Ihrem YouTube-Kanal verknüpft ist → gewähren Sie die angeforderten Scopes. Bei Erfolg wird ein Refresh-Token unter ~/.config/youtube-mcp/token.json gespeichert.

  8. Server starten:

    npx @miller-joe/youtube-mcp --client-secret-file ./client_secret.json

    Oder stellen Sie die Client-Anmeldeinformationen über Umgebungsvariablen bereit: YOUTUBE_CLIENT_SECRET_FILE oder YOUTUBE_CLIENT_ID + YOUTUBE_CLIENT_SECRET.

Einen MCP-Client verbinden

claude mcp add --transport http youtube http://localhost:9120/mcp

Oder verweisen Sie Ihren MCP-Gateway auf den Streamable HTTP-Endpunkt.

Konfiguration

CLI-Flag

Umgebungsvariable

Standard

Hinweise

--client-secret-file

YOUTUBE_CLIENT_SECRET_FILE

Pfad zum Google OAuth JSON

--client-id

YOUTUBE_CLIENT_ID

Alternative zur Secret-Datei

--client-secret

YOUTUBE_CLIENT_SECRET

Alternative zur Secret-Datei

--token-file

YOUTUBE_TOKEN_FILE

~/.config/youtube-mcp/token.json

Speicherort für Refresh-Token

--host

MCP_HOST

0.0.0.0

Bind-Host

--port

MCP_PORT

9120

Bind-Port

--comfyui-url

COMFYUI_URL

(nicht gesetzt — Brücke deaktiviert)

ComfyUI HTTP-URL für Brücken-Tools

COMFYUI_DEFAULT_CKPT

sd_xl_base_1.0.safetensors

Standard-Checkpoint für Brücken-Tool

Tools

Videos

  • list_my_videos — paginierte Liste der Uploads des authentifizierten Kanals

  • get_video — vollständige Details für ein Video

  • update_video_metadata — Titel / Beschreibung / Tags / Kategorie / Privatsphäre

  • delete_video — ein Video dauerhaft löschen. Erfordert confirm_video_title, um exakt mit dem aktuellen Titel übereinzustimmen, als Schutz gegen das Löschen des falschen Videos.

Untertitel

  • list_captions — Untertitelspuren eines Videos auflisten (Sprache, Name, Status, Entwurfs-Flag)

  • upload_caption — eine SRT- oder WebVTT-Untertitelspur auf ein Video hochladen

  • delete_caption — eine Untertitelspur löschen

Shorts

  • list_my_shorts — Shorts in aktuellen Uploads finden (filtert nach ≤60s Dauer)

  • get_shorts_analytics — YouTube Analytics-Abfrage, beschränkt auf Shorts (creatorContentType==SHORTS)

Playlists

  • create_playlist — eine Playlist erstellen (standardmäßig privat)

  • add_to_playlist — ein Video zu einer bestehenden Playlist hinzufügen

Kommentare

  • list_comments — Top-Level-Kommentar-Threads eines Videos

  • reply_to_comment — auf einen Top-Level-Kommentar antworten

  • moderate_comment — einen Kommentar zurückhalten / genehmigen / ablehnen

Analysen

  • query_channel_analytics — Metriken mit Datumsbereich, optionalen Dimensionen und Filtern

Brücke (wenn COMFYUI_URL konfiguriert ist)

  • generate_and_set_thumbnail — Thumbnail über ComfyUI generieren und in einem Aufruf für ein Video festlegen

Kontingent-Hinweise

Kostenloser Tarif der YouTube Data API = 10.000 Einheiten/Tag. Kosten für wichtige Vorgänge:

  • videos.list, commentThreads.list — je 1 Einheit

  • videos.update, comments.insert, thumbnails.set — je 50 Einheiten

  • videos.insert (Upload) — 1.600 Einheiten → ~6 Uploads/Tag im kostenlosen Tarif

Die meisten Creator-Ops-Workflows bleiben weit unter dem kostenlosen Limit.

Architektur

┌────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  MCP client    │────▶│  youtube-mcp     │────▶│  YouTube APIs   │
│  (Claude etc.) │◀────│  (this server)   │◀────│  (Data/Analytics)│
└────────────────┘     └────────┬─────────┘     └─────────────────┘
                                │
                                │ (bridge tools only)
                                ▼
                       ┌──────────────────┐
                       │  ComfyUI         │
                       │  (txt2img)       │
                       └──────────────────┘

OAuth-Refresh-Token werden lokal zwischengespeichert und kurz vor Ablauf aktualisiert. Das Brücken-Tool lädt Bild-Bytes intern von ComfyUI herunter — ComfyUI muss nicht öffentlich erreichbar sein.

Entwicklung

git clone https://github.com/miller-joe/youtube-mcp
cd youtube-mcp
npm install
npm run dev
npm run build
npm test

Erfordert Node 20+.

Roadmap

  • [x] Video auflisten / abrufen / Metadaten aktualisieren

  • [x] Playlist erstellen + hinzufügen

  • [x] Kommentare auflisten / antworten / moderieren

  • [x] Kanalanalysen abfragen

  • [x] ComfyUI Thumbnail-Brücke (generate_and_set_thumbnail)

  • [x] Untertitel hochladen + auflisten + löschen (upload_caption, list_captions, delete_caption)

  • [x] Video löschen mit Titel-Übereinstimmungs-Schutz

  • [x] Shorts-Ergonomie: list_my_shorts (Dauerfilter) + get_shorts_analytics (creatorContentType==SHORTS)

  • [ ] Video-Upload (video_upload) — Unterstützung für fortsetzbaren Upload

  • [ ] Reporting-API für Massenexporte historischer Daten

Lizenz

MIT © Joe Miller

Support

Wenn Ihnen dies Zeit spart, ziehen Sie eine Unterstützung der Entwicklung in Betracht:

GitHub Sponsors Ko-fi

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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/miller-joe/youtube-mcp'

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