Skip to main content
Glama

youtube-transcript-mcp

Ein MCP-Server, der einem Coding-Agenten das Lesen und Durchsuchen von YouTube-Videotranskripten ermöglicht. Kein API-Schlüssel, kein Google-Konto, keine Anmeldung nötig. Er ruft Untertitel über YouTubes öffentliche Endpunkte ab und fügt eine kleine Sache hinzu, die ein roher Transkript-Dump nicht bietet: Kapitelzusammenfassungen.

Das begann als kleines Tool für meinen eigenen Gebrauch. Ich stieß immer wieder auf Unterhaltungen, die einen YouTube-Link enthielten, und musste wissen, was das Video tatsächlich sagte. Das ständige erneute Einfügen von Transkripten kostete Zeit. So wurde daraus ein wiederverwendbarer Server, damit alles, was auf dem Model Context Protocol läuft, einfach fragen kann.

Was es tut

Vier Tools.

  • get_transcript(video_url_or_id, languages=["en"], include_timestamps=False) holt das vollständige Transkript als Klartext. Es akzeptiert eine vollständige YouTube-URL (watch?v=, youtu.be, /embed/, /shorts/, /live/) oder eine reine 11-stellige Video-ID.

  • get_video_metadata(video_url_or_id) liefert Titel, Kanalname, Kanal-URL und Thumbnail über YouTubes oEmbed-Endpunkt ohne Authentifizierung. Es gibt bewusst kein Upload-Datum und keine vollständige Beschreibung zurück, denn dafür wäre ein offizieller Data-API-Schlüssel nötig – und genau darum geht es hier: Du brauchst keinen.

  • search_transcript(video_url_or_id, query, languages=["en"]) findet die zu einem Schlüsselwort oder einer Phrase passenden Segmente, ohne Beachtung der Groß-/Kleinschreibung, jeweils mit einem [mm:ss]-Zeitstempel, damit das Modell darauf verweisen kann, wo im Video etwas gesagt wurde.

  • summarize_chapters(video_url_or_id, gap_seconds=4.0, min_chunk_seconds=45.0, languages=["en"]) teilt das Transkript an natürlichen Pausen in grobe, zeitlich abgegrenzte Blöcke und gibt diese zurück, damit ein Agent Abschnitt für Abschnitt zusammenfassen kann, statt einen einzigen riesigen Klumpen zu schlucken. Es ist eine Heuristik, nicht YouTubes echte Kapiteldaten.

Alle Tools geben einen einfachen String zurück, einschließlich Fehlern (zum Beispiel "Error: captions are disabled for this video"). Es werden keine Ausnahmen an den aufrufenden Agenten weitergegeben, und es dringen keine Stack-Traces nach außen.

Related MCP server: youtube-mcp

Was es bewusst nicht tut

  • Es funktioniert nicht bei Videos mit deaktivierten Untertiteln, privaten oder nicht verfügbaren Videos oder Live-Streams ohne Untertitel. Es sagt das, statt zu raten.

  • Es ist nicht von der YouTube Data API abhängig. Ohne einen offiziellen Schlüssel sind Upload-Daten oder vollständige Beschreibungen nicht abrufbar – das ist Absicht.

  • Es cached nicht. Zwei Aufrufe für dasselbe Video laden beide Male erneut. Für den tatsächlichen Einsatzzweck des Tools ist das in Ordnung. Falls du es jemals in großem Umfang brauchst, füge Caching hinzu.

Einrichtung

Erfordert Python 3.11+ und uv.

uv sync

Führe ihn eigenständig aus, um zu bestätigen, dass er startet:

uv run server.py

Er wartet auf MCP-stdio-Eingaben und scheint daher nichts zu tun, bis sich ein Client verbindet. Das ist normal. Beenden mit Ctrl+C.

Registrieren bei einem MCP-Client

Füge ihn zu den MCP-Einstellungen deines Clients hinzu. Der Server wird über stdio aufgerufen, die Konfiguration ist also eine Befehlszeile. Am Beispiel der Claude CLI:

claude mcp add youtube-transcript -- uv --directory /absolute/path/to/youtube-transcript-mcp run server.py

Oder in der JSON-Konfiguration:

{
  "mcpServers": {
    "youtube-transcript": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/youtube-transcript-mcp", "run", "server.py"]
    }
  }
}

Erkenntnisse, die Lehrgeld gekostet haben

  • Nur Videos mit Untertiteln (automatisch erzeugt oder manuell) funktionieren. Ein Video ohne Untertitel liefert einen klaren Fehler zurück – eine bewusste Entscheidung: Ein leeres Ergebnis wirkt wie ein stiller Fehlschlag, ein Fehler benennt das Problem.

  • Die Sprachliste ist wichtig. languages=["en"] holt die englische Untertitelspur, wenn eine vorhanden ist. Wenn ein Kanal nur in einer anderen Sprache hochlädt, übergib diesen Code.

  • Pinn mcp>=1.28.1 fest, bleib aber unter 2.0. In mcp 2.x wurde mcp.server.fastmcp umbenannt, und der Import schlägt beim Serverstart still fehl. Du willst die Version, die tatsächlich lädt.

Lizenz

MIT. Siehe LICENSE.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

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/luigimasango-dev/youtube-transcript-mcp'

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