Skip to main content
Glama

YouTube MCP Server

MCP-Server, der YouTube in Claude Code bringt — Videotranskripte, Suche, Metadaten, Kanalinformationen, Playlists, Kommentare, Trendvideos, Engagement-Analysen, Kapitel-Extraktion, SponsorBlock-Integration und Heatmaps der am häufigsten erneut angesehenen Stellen. Verwendet die YouTube Data API v3, youtube-transcript und SponsorBlock.

Schnellstart

Schritt 1: API-Schlüssel abrufen

  1. Gehe zu Google Cloud Console

  2. Erstelle ein Projekt (oder wähle ein vorhandenes aus)

  3. Aktiviere die YouTube Data API v3:

  4. Erstelle einen API-Schlüssel:

    • Gehe zu Anmeldedaten

    • Klicke auf Anmeldedaten erstellen > API-Schlüssel

  5. Kopiere den Schlüssel (du benötigst ihn in Schritt 3)

Schritt 2: Voraussetzungen installieren

Schritt 3: Den MCP-Server installieren

3.1 Repository klonen

git clone https://github.com/wynandw87/claude-code-youtube-mcp.git
cd claude-code-youtube-mcp

3.2 Abhängigkeiten installieren

macOS / Linux / Windows:

npm install

Hinweis: Die Abhängigkeiten werden installiert und der Server automatisch in einem Schritt erstellt.

3.3 Bei Claude Code registrieren

Wähle den Installationsbereich:

Scope

Flag

Wer kann es verwenden

Benutzer (empfohlen)

-s user

Du, in jedem Projekt

Projekt

-s project

Jeder, der dieses Repository klont

Lokal

-s local

Nur im aktuellen Verzeichnis

Ersetze YOUR_API_KEY durch deinen tatsächlichen YouTube-Data-API-Schlüssel und verwende den vollständigen Pfad zu dist/index.js.

Tipp: Führe diesen Befehl aus dem geklonten Verzeichnis aus, um den vollständigen Pfad zu erhalten:

  • macOS/Linux: echo "$(pwd)/dist/index.js"

  • Windows: echo %cd%\dist\index.js

macOS / Linux:

claude mcp add -s user youtube -e YOUTUBE_API_KEY=YOUR_API_KEY -- node /full/path/to/dist/index.js

Windows (CMD):

claude mcp add -s user youtube -e "YOUTUBE_API_KEY=YOUR_API_KEY" -- node "C:\full\path\to\dist\index.js"

Windows (PowerShell):

claude mcp add -s user youtube -e "YOUTUBE_API_KEY=YOUR_API_KEY" '--' node "C:\full\path\to\dist\index.js"

Alternative: Den npm-Helfer verwenden (wenn der API-Schlüssel in der Umgebung gesetzt ist)

export YOUTUBE_API_KEY=YOUR_API_KEY
npm run install:claude

Schritt 4: Claude Code neu starten

Schließe Claude Code und öffne es erneut, damit die Änderungen wirksam werden.

Schritt 5: Installation überprüfen

claude mcp list

Du solltest youtube mit dem Status „Connected“ aufgelistet sehen.


Related MCP server: YouTube Transcript MCP Server

Funktionen

Transkripte & Untertitel

  • Get Transcript (get_transcript) - Ruft vollständige Videotranskripte mit Zeitstempeln ab, unterstützt mehrere Sprachen

  • Search Transcript (search_transcript) - Findet, wo ein Schlüsselwort oder eine Phrase in einem Video vorkommt, mit Zeitstempeln

  • Clean Transcript (get_clean_transcript) - Transkript, bei dem Sponsoren, Intros, Outros und Füllwörter über SponsorBlock entfernt wurden

  • Extract Chapters (extract_chapters) - Extrahiert Kapitel-Zeitstempel aus Videobeschreibungen

Suche & Entdeckung

  • Search Videos (search_videos) - Vollständige YouTube-Suche mit Filtern für Datum, Dauer, Typ und Sortierreihenfolge

  • Search Within Channel (search_within_channel) - Durchsucht Videos eines bestimmten Erstellers

  • Get Trending Videos (get_trending_videos) - Aktuell trendende Videos nach Region und Kategorie

  • Get Channel Videos (get_channel_videos) - Aktuelle Uploads eines Kanals, sortiert nach Datum oder Aufrufen

Video- & Kanalinformationen

  • Video Metadata (get_video_metadata) - Titel, Beschreibung, Dauer, Aufrufe, Likes, Tags und mehr

  • Channel Info (get_channel_info) - Abonnentenanzahl, Videoanzahl, Beschreibung, Land

  • Playlist Items (get_playlist_items) - Alle Videos in einer Playlist mit Positionen und Metadaten

Analysen & Engagement

  • Calculate Engagement (calculate_engagement) - Like-Rate, Kommentarrate und Engagement-Rate aus öffentlichen Statistiken

  • Most Replayed (get_most_replayed) - Heatmap-Daten, die zeigen, welche Teile Zuschauer am häufigsten erneut ansehen

  • Video Comments (get_video_comments) - Top-Kommentare mit Like- und Antwortzahlen

Dienstprogramme

  • Parse YouTube URL (parse_youtube_url) - Extrahiert Video-/Kanal-/Playlist-IDs aus jedem YouTube-URL-Format


Verwendung

Nach der Installation kannst du Trigger-Phrasen verwenden, um YouTube-Tools aufzurufen:

Trigger

Tool

Beispiel

youtube transcript

Get Transcript

„Hole das YouTube-Transkript für dieses Video“

youtube search

Search Videos

„Suche auf YouTube nach React-Tutorials“

youtube metadata

Video Metadata

„Hole die YouTube-Metadaten für dieses Video“

youtube channel

Channel Info

„Hole die YouTube-Kanalinformationen für @ThePrimeagen“

youtube playlist

Playlist Items

„Liste die Videos in dieser YouTube-Playlist auf“

youtube comments

Video Comments

„Hole die YouTube-Kommentare für dieses Video“

youtube trending

Trending Videos

„Was ist gerade in den USA auf YouTube im Trend?“

youtube chapters

Extract Chapters

„Extrahiere die Kapitel aus diesem YouTube-Video“

youtube engagement

Calculate Engagement

„Berechne das YouTube-Engagement für dieses Video“

youtube most replayed

Most Replayed

„Zeige die am häufigsten erneut angesehenen Teile dieses YouTube-Videos“

youtube clean transcript

Clean Transcript

„Hole ein sauberes YouTube-Transkript ohne Sponsoren“

youtube search transcript

Search Transcript

„Suche im YouTube-Transkript nach ‚authentication‘“

Oder frag natürlich:

  • „Hole das Transkript dieses YouTube-Videos und fasse es zusammen“

  • „Welche Teile dieses Videos werden am häufigsten erneut angesehen?“

  • „Finde aktuelle Videos über TypeScript auf diesem Kanal“

  • „Wie viele Aufrufe und Likes hat dieses Video?“

  • „Hole die Kommentare zu diesem Video und fasse die Stimmung zusammen“

  • „Zeig mir die Kapitel für dieses Tutorial“

  • „Hole ein sauberes Transkript ohne die Sponsor-Einblendungen“

  • „Was ist gerade in Gaming auf YouTube im Trend?“


Tool-Referenz

parse_youtube_url

Parst jedes YouTube-URL-Format und extrahiert Identifikatoren. Kein API-Schlüssel erforderlich.

Parameter:

  • url (string, erforderlich) - Jede YouTube-URL oder Video-ID

Unterstützte Formate: youtube.com/watch?v=, youtu.be/, /shorts/, /embed/, /playlist?list=, /channel/, /@handle, /c/, /user/, reine Video-IDs

get_transcript

Ruft das vollständige Transkript/die vollständigen Untertitel eines YouTube-Videos ab. Kein API-Schlüssel erforderlich.

Parameter:

  • url (string, erforderlich) - YouTube-Video-URL oder Video-ID

  • lang (string, optional) - Sprachcode für Untertitel (Standard: "en")

Durchsucht das Transkript eines Videos nach einem Schlüsselwort oder einer Phrase.

Parameter:

  • url (string, erforderlich) - YouTube-Video-URL oder Video-ID

  • query (string, erforderlich) - Schlüsselwort oder Phrase, nach der gesucht werden soll

  • lang (string, optional) - Sprachcode für Untertitel (Standard: "en")

extract_chapters

Extrahiert Kapitel-Zeitstempel aus der Beschreibung eines Videos.

Parameter:

  • url (string, erforderlich) - YouTube-Video-URL oder Video-ID

get_clean_transcript

Ruft ein Transkript ab, bei dem Sponsor-Einblendungen, Intros, Outros und Füllwörter über SponsorBlock entfernt wurden.

Parameter:

  • url (string, erforderlich) - YouTube-Video-URL oder Video-ID

  • lang (string, optional) - Sprachcode für Untertitel (Standard: "en")

get_most_replayed

Ruft die Heatmap-Daten zu „Am häufigsten erneut angesehen“ ab, die zeigen, welche Teile Zuschauer am häufigsten erneut ansehen.

Parameter:

  • url (string, erforderlich) - YouTube-Video-URL oder Video-ID

Hinweis: Für verfügbare Heatmap-Daten sind etwa 50K+ Aufrufe erforderlich.

Durchsucht YouTube mit vollständiger Filterunterstützung.

Parameter:

  • query (string, erforderlich) - Suchanfrage

  • max_results (number, optional) - Anzahl der Ergebnisse, 1-50 (Standard: 10)

  • order (string, optional) - "relevance", "date", "viewCount", "rating" (Standard: "relevance")

  • duration (string, optional) - "short" (<4min), "medium" (4-20min), "long" (>20min)

  • upload_date (string, optional) - "hour", "day", "week", "month", "year"

  • type (string, optional) - "video", "channel", "playlist" (Standard: "video")

get_video_metadata

Ruft detaillierte Metadaten für ein YouTube-Video ab.

Parameter:

  • url (string, erforderlich) - YouTube-Video-URL oder Video-ID

Rückgabe: Titel, Beschreibung, Kanal, Dauer, Aufruf-/Like-/Kommentaranzahl, Tags, Kategorie, Thumbnails, Live-Status und mehr.

get_channel_info

Ruft Informationen zu einem YouTube-Kanal ab.

Parameter:

  • url (string, erforderlich) - YouTube-Kanal-URL, @handle oder Kanal-ID

Rückgabe: Titel, Beschreibung, Abonnenten-/Video-/Aufrufzahlen, Land, benutzerdefinierte URL und Thumbnail.

get_playlist_items

Ruft alle Videos in einer YouTube-Playlist ab.

Parameter:

  • url (string, erforderlich) - YouTube-Playlist-URL oder Playlist-ID

  • max_results (number, optional) - Anzahl der Einträge, 1-50 (Standard: 25)

get_channel_videos

Ruft aktuelle Videos von einem YouTube-Kanal ab.

Parameter:

  • url (string, erforderlich) - YouTube-Kanal-URL, @handle oder Kanal-ID

  • max_results (number, optional) - Anzahl der Videos, 1-50 (Standard: 25)

  • order (string, optional) - "date", "viewCount" (Standard: "date")

get_trending_videos

Ruft aktuell trendende/populäre YouTube-Videos ab.

Parameter:

  • region_code (string, optional) - ISO-3166-1-Alpha-2-Ländercode (Standard: "US")

  • category_id (string, optional) - YouTube-Kategorie-ID (z. B. "10" für Musik, "20" für Gaming, "28" für Wissenschaft & Technik)

  • max_results (number, optional) - Anzahl der Ergebnisse, 1-50 (Standard: 10)

Durchsucht einen bestimmten YouTube-Kanal nach Videos.

Parameter:

  • url (string, erforderlich) - YouTube-Kanal-URL, @handle oder Kanal-ID

  • query (string, erforderlich) - Suchanfrage

  • max_results (number, optional) - Anzahl der Ergebnisse, 1-50 (Standard: 10)

get_video_comments

Ruft Top-Level-Kommentare eines YouTube-Videos ab.

Parameter:

  • url (string, erforderlich) - YouTube-Video-URL oder Video-ID

  • max_results (number, optional) - Anzahl der Kommentare, 1-100 (Standard: 20)

  • order (string, optional) - "relevance", "time" (Standard: "relevance")

calculate_engagement

Berechnet Engagement-Kennzahlen für ein YouTube-Video.

Parameter:

  • url (string, erforderlich) - YouTube-Video-URL oder Video-ID

Rückgabe: Aufrufzahl, Like-Anzahl, Kommentaranzahl, Like-Rate, Kommentarrate und Gesamt-Engagement-Rate.

So funktioniert es

Dieser MCP-Server verbindet sich über den stdio-Transport mit Claude Code und stellt 15 Tools bereit:

Tool

Datenquelle

API-Schlüssel erforderlich?

parse_youtube_url

Lokales Parsen

Nein

get_transcript

youtube-transcript-Bibliothek

Nein

search_transcript

youtube-transcript-Bibliothek

Nein

get_clean_transcript

youtube-transcript + SponsorBlock-API

Nein

get_most_replayed

YouTube-Seite (Innertube)

Nein

extract_chapters

YouTube Data API v3

Ja

search_videos

YouTube Data API v3

Ja

get_video_metadata

YouTube Data API v3

Ja

get_channel_info

YouTube Data API v3

Ja

get_playlist_items

YouTube Data API v3

Ja

get_channel_videos

YouTube Data API v3

Ja

get_trending_videos

YouTube Data API v3

Ja

search_within_channel

YouTube Data API v3

Ja

get_video_comments

YouTube Data API v3

Ja

calculate_engagement

YouTube Data API v3

Ja

Hinweis: 5 Tools funktionieren ohne API-Schlüssel (Transkripte, SponsorBlock, Heatmaps, URL-Analyse). Die übrigen 10 erfordern einen YouTube Data API v3-Schlüssel.


Konfiguration

Umgebungsvariablen

Variable

Erforderlich

Standard

Beschreibung

YOUTUBE_API_KEY

Ja

—

YouTube Data API v3-Schlüssel

YOUTUBE_TIMEOUT

Nein

30000

API-Timeout in ms

YouTube-API-Kontingent

Die YouTube Data API v3 hat ein tägliches Kontingent von 10.000 Einheiten. Jedes Tool verbraucht eine andere Menge:

Operation

Kosten pro Aufruf

search (search_videos, search_within_channel)

100 Einheiten

videos.list (get_video_metadata, get_trending, calculate_engagement)

1 Einheit

channels.list (get_channel_info, get_channel_videos)

1 Einheit

playlists.list (get_playlist_items)

1 Einheit

playlistItems.list (get_playlist_items, get_channel_videos)

1 Einheit

commentThreads.list (get_video_comments)

1 Einheit

Tipp: Suchvorgänge sind am teuersten. Verwenden Sie get_channel_videos (1 Einheit) anstelle von search_within_channel (100 Einheiten), wenn Sie nur die neuesten Uploads benötigen.


Fehlerbehebung

API-Schlüssel korrigieren

Wenn Sie den falschen API-Schlüssel eingegeben haben, entfernen Sie den Server und installieren Sie ihn neu:

claude mcp remove youtube

Installieren Sie ihn dann mit dem Befehl aus Schritt 3.3 oben erneut (verwenden Sie denselben Scope wie bei der ursprünglichen Installation).

MCP-Server wird nicht angezeigt

Überprüfen Sie, ob der Server installiert ist:

claude mcp list

Falls er nicht aufgelistet ist, folgen Sie Schritt 3, um ihn zu installieren.

Server startet nicht

  1. Überprüfen Sie Ihren API-Schlüssel auf Gültigkeit in der Google Cloud Console

  2. Überprüfen Sie, ob die YouTube Data API aktiviert ist:

    • Gehen Sie zur API Library

    • Dort sollte „Enabled“ angezeigt werden

  3. Überprüfen Sie die Node.js-Version (erforderlich: 18+):

    node --version
  4. Stellen Sie sicher, dass der Server erstellt wurde — wenn dist/index.js fehlt, führen Sie npm install erneut aus

Verbindungsfehler

  1. Überprüfen Sie, dass dist/index.js vorhanden ist — falls nicht, führen Sie npm install aus

  2. Überprüfen Sie, dass der Pfad absolut ist in Ihrem claude mcp add-Befehl

  3. Starten Sie Claude Code neu nach Konfigurationsänderungen

Kontingent überschritten

Wenn Sie „quotaExceeded“-Fehler sehen:

  • Warten Sie bis Mitternacht Pacific Time (das Kontingent wird täglich zurückgesetzt)

  • Verwenden Sie einen anderen API-Schlüssel

  • Bevorzugen Sie kostengünstige Tools (get_video_metadata mit 1 Einheit) gegenüber Such-Tools (100 Einheiten)

Transkript nicht verfügbar

Bei einigen Videos sind Transkripte deaktiviert. Das Tool get_transcript gibt eine klare Fehlermeldung zurück. Versuchen Sie:

  • Einen anderen Sprachcode (z. B. lang: "es")

  • Automatisch erzeugte Untertitel sind möglicherweise verfügbar, auch wenn keine manuell erstellten vorhanden sind

Timeout-Fehler

Erhöhen Sie die Umgebungsvariable YOUTUBE_TIMEOUT für langsame Verbindungen:

claude mcp add -s user youtube -e YOUTUBE_API_KEY=YOUR_KEY -e YOUTUBE_TIMEOUT=60000 -- node /path/to/dist/index.js

Aktuelle Konfiguration anzeigen

claude mcp list

Mitwirken

Pull-Requests sind willkommen! Bitte halten Sie es einfach und anfängerfreundlich.

Lizenz

MIT


Erstellt für die Claude Code-Community

Related MCP Connectors

Related MCP Servers