Skip to main content
Glama
artemchuikin

YouTube Transcript & Search MCP Server


🎬 Warum

Jeder, der mit einem Agenten arbeitet, hat diesen Austausch schon mindestens einmal durchgespielt.

You:   Summarize this. https://www.youtube.com/watch?v=kCc8FmEb1nY
Agent: I'm not able to watch videos. If you paste the transcript here, I'll gladly help!

Das Transkript ist genau das, was der Agent von allein nicht bekommt. Mit diesem verbundenen Server löst sich dieselbe Nachricht einfach auf.

You:   Summarize this. https://www.youtube.com/watch?v=kCc8FmEb1nY
Agent: → get_transcript(video="kCc8FmEb1nY", video_metadata=true)      1 credit

       That's "Let's build GPT: from scratch, in code, spelled out" by Andrej
       Karpathy, 1:56:20. He starts from an empty file and a bigram model,
       derives self-attention step by step, and ends with a working GPT that...

Ein einziges Video zu lesen ist selten das Ende der Arbeit. Hier zeigen wir, wie die drei Wege, YouTube-Daten einen Neuen in den Agenten, tatsächlich verglechen.

Dieser Server

Lokaler yt-dlp / Scraper MCP

Google YouTube Data API

Transkripte

✅ jedes öffentliche Video, extra Formate

⚠️ blockiert auf Rechenzentrums-IPs, bricht, wenn YouTube sein Markup ändert

❌ werden gar nicht ausgeliefert

Einrichtung

✅ eine URL und ein API-Schlüssel

❌ lokales Setup, Binaries, die am Leben gehalten werden müssen

❌ Cloud-Projekt, OAuth-Zustimmungsfragen

YouTube-Suche

✅ nativ, 1 Credit pro Seite

⚠️ 100 Quota-Einheiten pro Suche

Kanäle & Playlists

✅ 100 Videos/Seite oder 500 bloße IDs

❌ einzeln zw Video

⚠️ pro Eintrag Quota berechnet

Mengen-Transkripte

✅ 4.000 pro Hintergrundjob

RAG-fähiges Chunking

✅ 20-5.000 Zeichen, Zeitstempel auf Wortebene

Wenn sich YouTube ändert

✅ serverseitig gefixt, nichts zu aktualisteren

❌ du fumst Patches und setzt neu auf

Fehlgeschlagene Anrufe

✅ Credits erstatten sich selbst

❌ deine eigene Neuen-Logik

⚠️ Quota bleibt trotzdem verbraucht


Related MCP server: VidLens

⚡ Schnellstart

1. Einen API-Schlüssel besorgen. Registrieren dich bei transcriptout.com und erstellt im Dashboard einen Schlüssel. Neuen Konten erhalten 100 Gratis-Credits und es wird keine Kreditkarte verlangt. Schlüssel beginnen mit sk_ und werden nur einmal angezeigt.

2. Richte deinen Client jetzt den Server aus. Er spricht streamable HTTP und authentifiziert sich über ein einziges Bearer-Header.

{
  "mcpServers": {
    "transcriptout": {
      "url": "https://api.transcriptout.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

One-Click-Buttons für Cursor und VS Code findest du ganz oben auf dieser Seite. Die genauen Snippets für alle anderen liegen unter Installieren in deinem Client.

3. Ein Link einfügen.

Summarize this talk and pull the three strongest quotes.
https://www.youtube.com/watch?v=dQw4w9WgXcQ

Der Agent wählt selbst das/de das get_transcript, z beliebigen Text gelesen und antwortet daraus. Jede Antwort enthält einen X-Credits-Remaining-Header, sodass das Budget in der Sitzung sichtbar bleibt.


🧰 Die 14 Instrumente

Alles 14 Tools werden automatisch bereiterichtet, sobald du eine Verbindung herstellst. Die meisten Aufrufe kosten 1 Credit. Credits werden automatisch erstattet, wenn ein Aufruf vor dem Beispiel an YouTube scheitert (Validierungsfehler, Rate-Limits, unsere eigene Kapazität). Du zahlst also für Antworten, nicht für Fehlversuche. Ein eindeutiges „Dieses Video hat keine Untertitel“ ist eine Antwort und wird auch so abgerechnet.

1. get_transcript · 1 Anruf

Holt das Transkript des Videos eines beliebigen YouTube-Videos. format=text (Standard) liefert einfachen, lesbaren Text, der für ein Modell am günstigsten zu verarbeit selten ist, und format=json liefert zeitmarkierte Segmente.

Parameter

Typ

Standard

Beschreibung

video

string

erforderlich

YouTube-URL (kurz oder lang) oder 11-Zeichen-Video-ID

lang

string

"en"

Sprachcode des Tracks (en, de, ...)

format

string

"text"

"text" (Klartext), "json" (Segmente mit start/duration in Sekunden), "srt"/"vtt" (Untertiteldatei-Inhalt), "srv3" (rohes YouTube-XML)

kind

string

automatisch

"manual" oder "auto". Ohne Angabe siegt der manuelle Track und automatisch als Fallback.

segment

Ganzzahl

siehe unten

Max. Zeichen pro Segment. 500-1500 erzeugt RAG-taugliche Chunks.

video_metadata

bool

false

Liefert Titel dividend Bänder Dauer und Aufrufe im SELBEN Anruf, für den selben 1 Credit

Wenn segment fehlt, teilt es automatisch generierte Tracks in ~180-Zeichen-Intervalle und liefert manuelle Tracks zurück, exakt so, wie der Autor sie gesetzt hat. Setze du es immer ein, wenn du eine Größe brauchst – egal welcher Track geliefert wird.

Beispielausgabe (format=json):

{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "kind": "manual",
  "transcript": [
    { "text": "Never gonna give you up", "start": 18.0, "duration": 4.12 },
    { "text": "Never gonna let you down", "start": 22.12, "duration": 3.85 }
  ]
}

srt und vtt kommen als vollständige Untertiteldateien zurück und können direkt vom Agenten auf die Magnetscheibe geschrieben werden. srv3 ist der rohe XML-Quelltext und ist nicht mit segment kombinierbar.

2. get_video_info · 1 Anruf

Metadaten für ein Video (Titel, Kanal, Dauer, Aufrufe) plus die Liste der verfügbaren Transkript-Sprachen, OHNE die Untertitel herunterzuladen.

Parameter

Type

Standard

Beschreibung

id

string

erforderlich

YouTube-Video-ID oder URL

Credit-Hygiene: Wer das Transkript ohnehin holen will, ruft stattdessen get_transcript mit video_metadata=true auf. Das liefert beides in einem Credit: das sind hier zwei Anrufe und zwei Credits.

3. search_youtube · 1 Credit/Seite

Durchsucht YouTube nach Videos oder Kanälen. Mit next_page_token umblättern. has_more zeigt dir an, ob eine weitere Seite existiert.

Parameter

Typ

Standard

Beschreibung

q

string

*Pflicht*

Suchbegriff (an letzter Wenn Seite)

type

string

"video"

"video" oder "channel"

limit

integer

20

Ergebnisse pro Seite, 1–50

next_page_token

string

Token eins aus vorheriges Ergebnis

4. list_channel_videos · 1 Kredit/Seite

Listet Neuestes Geordnet: Kanalname die Videos. Akzeptiert einen einInstagram @handle, Kanalnamen, eine UC...-Kanal-ID oder Chin אתר:

Parameter

Typ

Standard

Beschreibung

name

string

Pflicht*

Ausseres: @handle, Kanalname, UC...-ID oder URL

limit

integer

100

Seitengröße, max. 500 mit ids_only

ids_only

bool

false

Nur (oder) video_ids[] liefern, max. 500/ Seite

next_pge_token

string

Token aus vorherigen Ergebnis

ids_only=true ist der günstige Weg, um submit_transcripts_job zu füttern.

5. search_channel_videos · 1 Kredit/ Loop

Suche in einemKanal mit nativer YouTube-Relevanzsuche. Ein Ergebnis, das das Suchwort nicht im vier Titel tragen ist, ist normal. Es wird nach Relevanz eingestuft, stringenfänger.

Parameter

Typ

Standard

Beschreibung

name

string

Pflicht

@handle, Kanalname, UC...-ID oder URL

q

string

Pflicht

Anfrage ist innerhalb des Kanals

limit

integer

30

Rechte pro Lampe, 1-100

next_page_token

string

Markierung der nächsten Seite für letzte

6. latest_channel_videos · 1 Credit

Die ~15 letzten Videos eines Kanals aus seinen RSS-Feed. Der schnellste und günstigste Weg, um zu prüfen, was ein Kanal neu veröffentlicht hat.

Parameter

Typ

Standard

Beschreibung

name

string

envi erforderlich

Zeichen @handle, Kanalname, UC...-ID oder URL

7. list_playlist_videos · 1 Kredit/Seite

Jedes Video in einer Playlist in ihrer Reihenfolge. Akzeptiert einen PL...-Playlisten-ID oder eine URL mit list=.

Parameter

Typ

Standard

Beschreibung

id

string

Pflicht*

Playlist-ID oder -URL

limit

integer

100

Seitengröße, max. 500 mit ids_only

ids_only

bool

false

Nur video_ids[] liefern: max. 500 pro Seite

next_page_token

string

Token fortsetzen

8. search_playlist_videos · 1 Credit

Finde Videos in einer Playlist durch einen Teilstrich desTitels (ungleich Schreibweise). YouTube hat keine native Playlist-Suche, daher blättert dieser den Index bis zu 500 Playlist-Einträgen. truncated=true bleibt dann bedeutet, dass laut den gefundenen Bereich noch weitere Treffer geben könnte.

Parameter

Typ

Standard

Beschreibung

id

string

erforderlich

Playlist-ID oder URL

q

string

erforderlich

Teilstring, der in Video-Titeln vorkommen muss

limit

integer

30

Maximale Treffer, 1-100

9. submit_transcripts_job · 1 Credit pro Video

Stelle für viele Videos gleichzeitig Transkripte in die Warteschlange (bis zu 4.000) und erhalte sofort eine job_id zurück. Die Arbeit läuft im Hintergrund weiter, im Tempo deines Rate Limits. Nutze dies, statt get_transcript in einer Schleife für mehr als eine Handvoll Videos aufzurufen.

Parameter

Typ

Standard

Beschreibung

videos

string[]

erforderlich

Video-IDs oder URLs, bis zu 4.000. Duplikate werden VOR der Abrechnung entfernt

lang

string

"en"

Eine Sprache für den gesamten Job

format

string

"text"

"text", "json", "srt", "vtt" oder "srv3" – eines für den gesamten Job

kind

string

automatische Erkennung

"manual" oder "auto"

segment

integer

Eine Segmentgröße für den gesamten Job

video_metadata

boolean

false

Metadaten pro Video, ohne Zusatzkosten

idempotency_key

string

Wird dieselbe Liste mit demselben Schlüssel erneut eingereicht, kommt der GL EICHE Job zurück – keine doppelte Abbuchung

Erfordert einen Benutzerschlüssel (sk_...). Credits werden beim Einreichen belastet und pro Video erstattet, wenn ein Video nicht geliefert werden konnte und der Grund bei uns liegt.

10. get_transcripts_job · kostenlos

Fortschritt eines Batch-Jobs: Status (queued/running/done/cancelled), wie viele Videos fertig sind, fehlgeschlagen und ausstehend. Ein bereits bezahlter Job kann kostenlos abgefragt werden.

11. get_transcripts_results · kostenlos

Fertige Transkripte eines Batch-Jobs, in der Reihenfolge der Einreichung, seitenweise mit next_page_token (limit 1-500, Standard 100). Die Ergebnisse erscheinen beim Abrufen, also kannst du weiterlesen, bevor der Job abgeschlossen ist. Jeder Eintrag ist genau das, was get_transcript für dieses Video zurückgibt, plus dessen Status.

12. get_transcripts_result · kostenlos

Das Ergebnis eines einzelnen Videos aus einem Batch-Job anhand seiner Video-ID, ohne den gesamten Ergebnisverbundung durchblättern. Eine 404 bedeutet, dass der Job nicht existiert oder dieses Video noch nicht fertig ist – prüfe also get_transcripts_job, bevor du Schlüsse ziehst.

Parameter

Typ

Standard

Beschreibung

job_id

string

erforderlich

Job-ID aus submit_transcripts_job

video_id

string

erforderlich

Eine der Video-IDs, mit denen der Job gestartet wurde

13. cancel_transcripts_job · kostenlos

Einen Batch-Job abbrechen. Credits werden NUR für Videos erstattet, die noch nicht begonnen wurden. Bereits abgerufene Ergebnisse bleiben in den Ergebnissen und bleiben bezahlt.

14. get_credits · kostenlos

Der verbleibende Kreditsaldo des Schlüssels, ganz ohne Parameter. Der Saldo steckt auch im X-Credits-Remaining-Header jeder Antwort, aber Header sind für das Modell unsichtbar, das heißt die Zahl, nach der ein Nutzer wirklich fragt, braucht ein Werkzeug. Praktisch auch unmittelbar vor einem großen Batch, da der Batch beim Einreichen 1 Credit pro Video berechnet.


🔌 In deinem Client installieren

Der Server ist Remote-gehostet, daher ist jede Installation unten nur ein Konfigurationseintrag und nichts weiter. Alle brauchen dieselben zwei Werte: die URL und den Bearer-Header aus Schnellstart.

Einmal einrichten, und dann eine dauerhafte Regel für deinen Client

Wenn das in deinen Regeln/Anweisungen für den Client steht, reicht es, einen YouTube-Link einzufügen – das Wort „transcript“ muss nie getippt werden:

Whenever a YouTube link or video ID appears in my message, call the
transcriptout get_transcript tool first and answer from the transcript,
whether I asked for a summary, a quote, a translation or a question.

One-Click-Installation:

MCP-Server installieren

Nach der Installation die Servereinstellungen öffnen und den Authorization-Header mit deinem Schlüssel ergänzen.

Manuelle Konfiguration (~/.cursor/mcp.json):

{
  "mcpServers": {
    "transcriptout": {
      "url": "https://api.transcriptout.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
claude mcp add --transport http transcriptout https://api.transcriptout.com/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Claudes benutzerdefinierte Connectors authentifizieren Remote-Server per OAuth, was TranscriptOut (noch) nicht bietet (nur API-Schlüssel). Verwende auf dem Desktop Claude Code (siehe oben), das API-Schlüssel-Header unterstützt. OAuth-Unterstützung steht in der Roadmap. Verfolge den Changelog.

Oder füge das zu den VS-Code-Benutzereinstellungen (settings.json) hinzu:

"mcp.servers": {
  "transcriptout": {
    "type": "http",
    "url": "https://api.transcriptout.com/mcp",
    "headers": {
      "Authorization": "Bearer YOUR_API_KEY"
    }
  }
}
  1. Erstelle einen neuen Agenten.

  2. Füge unter Actions oder Tools einen neuen MCP-Server hinzu.

  3. URL: https://api.transcriptout.com/mcp

  4. Auth-Typ: API-Key

  5. Füge deinen API-Schlüssel aus dem Dashboard ein.

Füge zu ~/.codeium/windsurf/mcp_config.json hinzu:

{
  "mcpServers": {
    "transcriptout": {
      "serverUrl": "https://api.transcriptout.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
{
  "mcpServers": {
    "transcriptout": {
      "url": "https://api.transcriptout.com/mcp",
      "type": "streamableHttp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

In Zeds settings.json:

{
  "context_servers": {
    "transcriptout": {
      "source": "remote",
      "url": "https://api.transcriptout.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
{
  "mcpServers": {
    "transcriptout": {
      "type": "streamable-http",
      "url": "https://api.transcriptout.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
amp mcp add transcriptout https://api.transcriptout.com/mcp --header "Authorization: Bearer YOUR_API_KEY"

Unter augment.advanced in der settings.json:

"augment.advanced": {
  "mcpServers": [
    {
      "name": "transcriptout",
      "url": "https://api.transcriptout.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  ]
}

In .kilocode/mcp.json:

{
  "mcpServers": {
    "transcriptout": {
      "type": "streamable-http",
      "url": "https://api.transcriptout.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Unter Einstellungen → Tools → AI Assistant → MCP:

{
  "mcpServers": {
    "transcriptout": {
      "url": "https://api.transcriptout.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

In ~/.gemini/settings.json:

{
  "mcpServers": {
    "transcriptout": {
      "httpUrl": "https://api.transcriptout.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

In ~/.qwen/settings.json:

{
  "mcpServers": {
    "transcriptout": {
      "httpUrl": "https://api.transcriptout.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
{
  "mcpServers": {
    "transcriptout": {
      "serverUrl": "https://api.transcriptout.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
{
  "mcpServers": {
    "transcriptout": {
      "url": "https://api.transcriptout.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

In mcp.json:

{
  "mcpServers": {
    "transcriptout": {
      "url": "https://api.transcriptout.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Unter Einstellungen → KI → MCP:

{
  "transcriptout": {
    "url": "https://api.transcriptout.com/mcp",
    "headers": {
      "Authorization": "Bearer YOUR_API_KEY"
    }
  }
}

Unter Einstellungen → Connectors → Erweitert:

{
  "url": "https://api.transcriptout.com/mcp",
  "headers": {
    "Authorization": "Bearer YOUR_API_KEY"
  }
}

🧩 Als Agent-Plugin installieren

Die Wurzel dieses Repositorys ist einkonformer Agent Plugins 1.0.0 -Paket, das tragbare Format, das zu ChatGPT, Codex, Cursor, GitHub Copilot, Kiro und VS Code passt. Eine Installation bringt dir den MCP-Server und eine gebündelte youtube-Fähigkeit, die deinem Agenten beibringt, wann er ein Tool nutzen soll und wie man keine Credits verschwendet.

plugin.json                # manifest
mcp.json                   # hosted MCP server, streamable-http
skills/youtube/SKILL.md    # when + how to use the 14 tools

VS Code. Befehlspalette → Chat: Plugin aus Quelle installieren, dann neue Paste:

https://github.com/artemchuikin/youtube-mcp

Oder einen lokalen Klon in settings.json registieren:

"chat.pluginLocations": { "/absolute/path/to/youtube-mcp": true }

Cursor. Customize in der Seitenleiste → das Plugin finden → Installieren. Für einen lokalen Klon:

git clone https://github.com/artemchuikin/youtube-mcp ~/.cursor/plugins/local/transcriptout

Danach Entwickler: Fenster neu laden.

ChatGPT, Codex, GitHub Copilot, Kiro, jeder andere Client. Richte den Plugin-Mechanismus deines Clients auf dieses Repository oder auf einen lokalen Klon. Der Standard Agent Plugins 1.0.0 legt das -Paketformat fest, nicht die Installation – also hat jeder Client in eigener Installationsfluss.

Es gibt keine Zugangsdaten in diesem Paket, Agent Plugins 1.0.0 verbietet eingebettete Geheimnisse. Der Server authentifiziert sich mit einem API-Schlüssel, den du in den MCP-Einstellungen deines Clients hinterlegst (siehe Schlüssel und Sicherheit). Prüfe das Paket selbst:

curl -sO https://agent-plugins.org/schemas/1.0.0/plugin.schema.json
curl -sO https://agent-plugins.org/schemas/1.0.0/mcp.schema.json
npx ajv-cli@5 validate --spec=draft2020 -s plugin.schema.json -d plugin.json
npx ajv-cli@5 validate --spec=draft2020 -s mcp.schema.json    -d mcp.json

🔑 Schlüssel und Sicherheit

  • Ein Schlüssel wird nur once bei der Erstellung angezeigt. Heb ihn in einer Umgebungsvariable auf, nicht in der Versionskontrolle.

  • Ein ausgerichteter Schlüssel verliert seine Gültigkeit in dem Moment, in dem du ihn im Dashboard widerrufen. Ein Konto hält bis zu 20 Schlüssel, gib jedem Rechner also seinen eigenen.

  • Du bleibst lieber im Chat? Ein Agent mit dem eingebauten Companion youtube-skills kann das Konto selbst für dich öffnen und den Schlüssel generation… per E-Mail und 6-Stellen-Code, ohne Browser.

  • Es gibt noch keinen OAuth-Flow. Clients, deren Connectors keinen benutzerdefinerten Header senden können (Claude Desktop und Claude Web), wie du für jetzt auf Claude Code zurückgreifen.

🐳 Lokal ausführen

Der gehostete Endpoint braucht keine Installation, aber reine-Stdio-Clients, Sandboxes und Container-Plattformen wollen manchmal einen eigenen Prozess. Das Repository hat einen an Bord: server.js ist ein vollständiger lokaler MCP-Server (offizielles SDK, stdio-Transport), dessen 14 Tools je einen HTTPS-Aufruf an die TranscriptOut-REST-API machen — die gleiche Form wie jeder SaaS-gestützte MCP-Server.

com.transcriptout/youtube-transcript-and-youtube-search
# as a container
docker build -t transcriptout-mcp https://github.com/artemchuikin/youtube-mcp.git
docker run -i -e TRANSCRIPTOUT_API_KEY=sk_your_key transcriptout-mcp

# or straight from a checkout (Node 20+)
npm install && TRANSCRIPTOUT_API_KEY=sk_your_key node server.js

Ohne key verbindet er sich weiterhin, listet alle Tools; Werkzeugaufrufe antworten mit einer klaren 401-Meldung, wo man einen erhält. Die Tool-Definitionen contain in tools.json und aktualisieren sich beim Start aus der Live-Katalog, wenn das Netzwerk es zulässt – so wird die lokale Liste nie alt.


🍳 Rezepte

Jede Aufforderung unten ist im geschriebenen Zustand ausgefüllt.

Anwendungsfall

Beispiel-Prompt

📝 Video zusammenfassen

„Fasse die Kernaussagen dieses Videos zusammen: [URL]"

🔍 Thema recherchieren

„Search YouTube after the 5 most-seen Videos über Neural Radiance Fields und zusammenfassen sich um."

🧠 Lernnotizen

„Erstelle Lernnotizen aus dieser MIT-Vorlesungs-Playlist: [PLAYLIST URL]"

⚖️ PerspektivischePortVergleiche

„Vergleiche die Argumente in diesen beiden Videos: [URL1] [URL2]"

🌐 Übersetzen

„Übersetze das Transkript dieses Videos ins Spanische: [URL]"

✍️ Inhalt neu aufbereiten

„Verwandle dieses Video in einen 1.500-Wörter-Blogpost: [URL]"

📡 Creator beobachten

„Nenne mir jeden Morgen die neuen Uploads von @kurzgesagt und sag mir, welches ich ansehen soll."

🏛️ Inhaltsdatenbank aufbauen

„Hole alle Video-IDs von @3blue1brown und stelle einen Transkript-Batch für alle zusammen."

🎯 Wettbewerbsanalyse

„Suche bei @fireship nach jedem Video über ein [Wettbewerberprodukt] und fasse schlussfolgerungen zusammen."

🧩 RAG-Ingestion

„Hole die Transkripte dieser Playlist als JSON mit segment=1000 und lade sie in den Index."

Das Hauptrezept in Langform. „Einen ganzen Kanal archivieren“ besteht aus vier Werkzeugaufrufen, ist kein Skript:

  1. list_channel_videos mit ids_only=true: bis zu 500 Video-IDs pro Seite

  2. submit_transcripts_job mit diesen IDs (bis zu 4.000, Duplikate werden vor der Abrechnung entfernt, idempotency_key macht einen erneuten Versuch kostenlos)

  3. get_transcripts_job, bis status auf done steht. Der Job passt sein Tempo selbst innerhalb deines Anfragelimits an

  4. get_transcripts_results Seite für Seite, während der Job noch läuft

Alles, was der Dienst nicht liefern kann, wird pro Video erstattet, sodass die Rechnung dem tatsächlich gelieferten Umfang entspricht.


💳 Preise und Limits

Plan

Preis

Credits

Anfragelimit

Kostenlos

$0

100 bei der Registrierung (einmalig)

200 req/min

Starter

$4,49/Monat

1.000/Monat

200 req/min

Starter Jahresabo

$45,29/Jahr (~$3,77/Monat)

1.000/Monat

200 req/min

Scale

Regler bis $198,99/Monat

bis zu 100.000/Monat

200 req/min

  • Abonnements laufen über einen Regler von 1.000 bis 100.000 Credits pro Monat in Schritten von 1.000; der Preis pro 1.000 sinkt bei größerem Volumen (10.000/Monat kostet $27,49, nicht $44,90). Der Rabatt bei Jahresabrechnung steigt mit dem Volumen von ~16 % auf ~35 %.

  • 1 Credit = 1 beantwortete Anfrage. Aufrufe, die fehlschlagen, bevor sie YouTube erreichen (Validierung, Anfragelimit, unsere Kapazität), werden automatisch erstattet. Der verbleibende Kontostand wird im X-Credits-Remaining-Header mitgeliefert.

  • Einmalige Credit-Pakete, die nie verfallen, können zusätzlich zu einem aktiven Abo erworben werden.

  • Preise ansehen · Abrechnung verwalten


🧯 Wenn eine Anfrage fehlschlägt

  • Prüfe, ob dein API-Schlüssel mit sk_ beginnt

  • Achte beim Kopieren auf zusätzliche Leerzeichen

  • Stelle sicher, dass der Schlüssel in deinem Dashboard aktiv ist

  • Widerrufene Schlüssel versagen sofort. Erstelle im Dashboard einen neuen

  • 404: Das Video hat keine Untertitel in der angeforderten Sprache/Spur oder die ID ist falsch. Das ist eine endgültige Antwort; ein erneuter Fensterversuch ändert daran nichts.

  • 410: Das Video wurde entfernt.

  • 451: Altersbeschränkter oder nur für Mitglieder zugänglicher Inhalt.

  • Beachte den Retry-After-Header. Beide Fälle werden automatisch erstattet.

  • Für Massenarbeiten nutze submit_transcripts_job: Er passt sein Tempo innerhalb deines Anfragelimits an, statt daran abzuleiten.

Jeder Fehlerbody hat die Form {"ok": false, "code": "...", "detail": "...", "request_id": "req_..."}. Verlasse dich auf den maschinenlesbaren code, nicht auf den Klartext. Gib bei der Kontaktaufnahme mit dem Support die request_id an.


🌐 Lieber normales REST?

Baust du eine App statt eines Agenten? Das gleiche Backend gibt es auch als JSON-REST-API, mit denselben fünf Transkript-Formaten und zusätzlich mit Rohdatei-Download (download=true).

MCP

REST-API

Am besten geeignet

KI-Assistenten & Agents

Apps & Backend-Dienste

Einrichtung

URL + Schlüssel hinzufügen

Integration in Code

Start

Dieses README

API-Dokumentation →

Base-URL: https://api.transcriptout.com/v1



📇 MCP Registry

Dieser Server ist im offiziellen Model Context Protocol Registry unter dem Namen veröffentlicht:

com.transcriptout/youtube-transcript-and-youtube-search

TranscriptOut ist ein unabhängiger Dienst und steht weder mit YouTube noch mit Google LLC in Verbindung, wird von diesen nicht unterstützt oder gefördert. „YouTube" ist eine Marke von Google LLC.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

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

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

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