YouTube-Transkript per API abrufen (curl, Python, JavaScript)
Hol dir das Transkript jedes öffentlichen YouTube-Videos mit einer HTTP-Anfrage. Funktionierende Beispiele in curl, Python und JavaScript, Formate, Fehlercodes und Kosten.

Um ein YouTube-Transkript per API abzurufen, schickst du eine HTTP-Anfrage mit der Video-URL oder -ID und einem API-Schlüssel und liest das Transkript aus der Antwort. Diese Anleitung zeigt die Anfrage in curl, Python und JavaScript mit der sum.video Transcript API und behandelt dann Formate, Fehler und Kosten.
Was die API zurückgibt
Der Endpunkt liefert die vorhandenen Untertitel eines öffentlichen YouTube-Videos, entweder vom Urheber geschrieben oder von YouTube automatisch erzeugt. Er transkribiert keine Audiodaten. Hat ein Video keine Untertitel, bekommst du einen Fehler statt einer Vermutung (mehr dazu unten).
Die Grundlagen:
- Endpunkt:
POST https://sum.video/api/v1/transcript(GETfunktioniert auch) - Authentifizierung: dein Schlüssel im Header
X-API-KeyoderAuthorization: Bearer <key> - Eingabe:
urlodervideo_id - Optional
lang(Standarden) - Optional
format:json,textodersrt
Die Antwort nennt außerdem die tatsächliche Sprache der Untertitelspur und ob sie automatisch erzeugt wurde, sodass du die zu erwartende Qualität einschätzen kannst.
Schritt 1: API-Schlüssel erstellen
Melde dich an und erstelle einen Schlüssel im API-Dashboard (/dashboard/api auf sum.video). Du kannst bis zu 5 aktive Schlüssel haben, praktisch, um einen Test- von einem Produktionsschlüssel zu trennen. Dein erster Schlüssel kommt mit 10 kostenlosen Credits, genug für 5 Transkripte, damit du alles Folgende ohne Kosten testen kannst.
Schritt 2: Die erste Anfrage senden
curl
curl -X POST https://sum.video/api/v1/transcript \
-H "X-API-Key: $SUMVIDEO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "lang": "en", "format": "text"}'
Da GET ebenfalls funktioniert, kannst du auch aus einem Skript testen, das nur URLs baut. Gib den Schlüssel lieber im Header an, damit er nicht in Logs landet.
Python
import os
import requests
resp = requests.post(
"https://sum.video/api/v1/transcript",
headers={"X-API-Key": os.environ["SUMVIDEO_API_KEY"]},
json={"video_id": "dQw4w9WgXcQ", "lang": "en", "format": "text"},
timeout=30,
)
if resp.status_code == 404:
print("No captions for this video")
else:
resp.raise_for_status()
print(resp.text)
JavaScript (Node 18+ oder Browser)
const resp = await fetch("https://sum.video/api/v1/transcript", {
method: "POST",
headers: {
"X-API-Key": process.env.SUMVIDEO_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
video_id: "dQw4w9WgXcQ",
lang: "en",
format: "text",
}),
});
if (resp.status === 404) {
console.log("No captions for this video");
} else if (!resp.ok) {
throw new Error(`Request failed: ${resp.status}`);
} else {
console.log(await resp.text());
}
Halte den Schlüssel auf einem Server. Ein Schlüssel im Browsercode lässt sich von jedem kopieren, der die Entwicklertools öffnet.
Schritt 3: Das richtige Format wählen
| Format | Was du bekommst | Am besten für |
|---|---|---|
json |
Segmente, jeweils mit offset und duration in Sekunden |
Zeitstempel, Direktlinks zu einer Stelle, Aufteilung nach Zeit |
text |
Reines Transkript | Prompts, Suchindizes, Zusammenfassungen |
srt |
Inhalt einer Untertiteldatei | Videoeditoren, Untertitel-Tools |
Wenn du auf eine Stelle im Video verlinken willst, nimm json und baue den Link aus dem offset des Segments. Zum Füttern eines LLM ist text kleiner und einfacher. Wenn du später von Hand in einem Transkript suchen willst, lies wie du im Transkript eines YouTube-Videos suchst.
Schritt 4: Eine Sprache wählen
lang ist standardmäßig en. Setze die gewünschte Sprache, zum Beispiel de oder es. Die Antwort nennt die Sprache der tatsächlich gelieferten Spur, prüfe sie also, statt sie anzunehmen. Ein Video hat oft nur eine Untertitelspur, und die API liefert echte Untertitel, sie übersetzt also nicht für dich.
Schritt 5: Fehler behandeln
Plane diese Fälle von Anfang an ein:
404 no_transcript: Das Video hat keine Untertitel oder ist ein Livestream, ein privates oder ein entferntes Video. Es gibt nichts zu wiederholen. Überspringe es oder bitte den Nutzer um ein anderes Video.402 budget_exceeded: Du hast das von dir eingestellte monatliche Credit-Limit erreicht. Siehe nächster Abschnitt.- Ratenlimit: Jeder Schlüssel erlaubt 60 Anfragen pro Minute. Verteile Stapelaufgaben und geh zurück, wenn du gedrosselt wirst.
- Fehler auf unserer Seite: Wiederhole mit kurzer Verzögerung. Sie kosten nichts.
Eine einfache Schleife mit Wiederholung bei Serverfehlern und Überspringen bei 404 deckt die meisten Produktionsfälle ab.
Was es kostet
Jedes Transkript kostet 2 Credits. Anfragen, die kein Transkript liefern oder auf Seiten von sum.video scheitern, kosten nichts, ein 404 leert also nie dein Guthaben. Dein Guthaben siehst du mit GET /api/v1/credits.
Credits werden in einmaligen Paketen verkauft, die nie verfallen:
| Paket | Preis | Pro Transkript |
|---|---|---|
| 100 Credits | $4.49 | $0.090 |
| 500 Credits | $13.99 | $0.056 |
| 2,000 Credits | $37.99 | $0.038 |
| 5,000 Credits | $74.99 | $0.030 |
Pro-Abonnenten bekommen außerdem jeden Monat 100 Bonus-Credits. Für größere Lasten, etwa das Einlesen eines ganzen Kanals, lies das Szenario YouTube-Transkripte für eine RAG-App im großen Maßstab, das automatisches Aufladen und Budgets behandelt. Siehe auch die Preise.
Grenzen, die du vor dem Bauen kennen solltest
- Nur Videos mit Untertiteln funktionieren. Das ist der Hauptgrund für
404 no_transcript. - Automatisch erzeugte Untertitel können Fehler enthalten, besonders bei Namen, Akzenten und Fachbegriffen.
- Die API liefert nur das Transkript. Sie fasst nicht zusammen. Wenn du Zusammenfassungen, Zeitstempel und Chat auf einem Transkript willst, übernimmt das der YouTube-Zusammenfasser, und das Transkript-Tool ist die Variante ohne Code für ein einzelnes Video.
- Die offizielle YouTube Data API ist hier kein Ersatz. Ihre Methode zum Herunterladen von Untertiteln verlangt die Berechtigung, das Video zu bearbeiten, und ist daher für deine eigenen Videos gedacht (Google-Dokumentation).
Quellen
Häufig gestellte Fragen
Kann ich ein YouTube-Transkript ohne die offizielle YouTube Data API abrufen?
Ja. Die sum.video Transcript API nimmt eine Video-URL oder -ID und liefert die vorhandenen Untertitel, ohne dass ein Google-Cloud-Projekt nötig ist. Googles eigene Methode zum Herunterladen von Untertiteln verlangt die Berechtigung, das Video zu bearbeiten, und eignet sich daher nur für deine eigenen Videos.
Transkribiert die API Videos ohne Untertitel?
Nein. Sie liefert vorhandene YouTube-Untertitel, manuell erstellte oder automatisch erzeugte. Videos ohne Untertitel, Livestreams, private und entfernte Videos liefern 404 no_transcript, und diese Anfrage kostet nichts.
Wie viel kostet ein Transkript?
2 Credits pro Transkript. Die Pakete reichen von 100 Credits für $4.49 ($0.090 pro Transkript) bis 5,000 Credits für $74.99 ($0.030 pro Transkript), und Credits verfallen nie.
Welche Ausgabeformate gibt es?
json (Segmente mit offset und duration in Sekunden), text und srt. Lege das Feld format in der Anfrage fest.
Wie teste ich es kostenlos?
Dein erster API-Schlüssel kommt mit 10 kostenlosen Credits, das sind 5 Transkripte. Pro-Abonnenten bekommen außerdem jeden Monat 100 Bonus-Credits.
Passend dazu
YouTube-Transkripte für eine RAG-App im großen Maßstab: Credits, automatisches Aufladen und BudgetsEin Entwickler lädt 10.000 YouTube-Videos in eine RAG-App. Die Kosten, die Rechnung zum Ratenlimit und wie automatisches Aufladen und Budgets die Ausgaben berechenbar halten.
Die besten YouTube-Transkript-APIs im Vergleich: sum.video, Supadata, Transcribr und die Python-BibliothekVier Wege, YouTube-Transkripte per Code zu holen, verglichen nach Preis, Limits und Zuverlässigkeit: sum.video, Supadata, Transcribr und youtube-transcript-api.
Erstelle eine persönliche Wissensdatenbank aus YouTube-VideosVerwandle die YouTube-Videos, aus denen du lernst, in eine durchsuchbare Bibliothek von Zusammenfassungen und gespeicherten Punkten, mit einer wöchentlichen Zusammenfassung, damit du eine Idee Monate später wiederfindest.
Neueste Beiträge
YouTube-Transkripte für eine RAG-App im großen Maßstab: Credits, automatisches Aufladen und BudgetsEin Entwickler lädt 10.000 YouTube-Videos in eine RAG-App. Die Kosten, die Rechnung zum Ratenlimit und wie automatisches Aufladen und Budgets die Ausgaben berechenbar halten.
Die besten YouTube-Transkript-APIs im Vergleich: sum.video, Supadata, Transcribr und die Python-BibliothekVier Wege, YouTube-Transkripte per Code zu holen, verglichen nach Preis, Limits und Zuverlässigkeit: sum.video, Supadata, Transcribr und youtube-transcript-api.
Erstelle eine persönliche Wissensdatenbank aus YouTube-VideosVerwandle die YouTube-Videos, aus denen du lernst, in eine durchsuchbare Bibliothek von Zusammenfassungen und gespeicherten Punkten, mit einer wöchentlichen Zusammenfassung, damit du eine Idee Monate später wiederfindest.