YouTube-Transkript in Google Sheets mit einer benutzerdefinierten Funktion

Ein YouTube-Transkript in Google Sheets zu bekommen braucht eine Apps Script-Funktion. Füge sie einmal ein, und =YT_TRANSCRIPT(A2) funktioniert wie jede eingebaute Formel: URL in einer Spalte, Transkript in der nächsten. Hier ist das komplette Skript, plus zwei Sheets-spezifische Fallstricke, die dich beißen, wenn dir niemand warnt.
Das Skript
Öffne deine Tabelle, gehe zu Erweiterungen > Apps Script, und füge dies ein:
const API_KEY = 'yt_YOUR_KEY';
/**
* Fetches the transcript of a YouTube video.
* @param {string} url Any YouTube URL or a bare 11-char video id.
* @param {number} maxChars Optional length cap (default 5000).
* @return {string} The transcript text.
* @customfunction
*/
function YT_TRANSCRIPT(url, maxChars) {
if (!url) return '';
const endpoint = 'https://youtube2text.org/api/transcribe'
+ '?url=' + encodeURIComponent(url)
+ '&maxChars=' + (maxChars || 5000);
const response = UrlFetchApp.fetch(endpoint, {
headers: { 'x-api-key': API_KEY },
muteHttpExceptions: true
});
const body = JSON.parse(response.getContentText());
if (body.error) return 'ERROR: ' + body.error.code;
return body.result.content;
}
Speichere, und die Funktion lebt in deinem Blatt. Das @customfunction-Tag ist das, was es mit Autovervollständigung registriert; muteHttpExceptions hält einen 404 davon ab, in einer roten Zelle mit einerStackspur zu explodieren, die niemand wollte.
Für den Schlüssel: Fordere https://youtube2text.org/api/demo-key in deinem Browser an und es gibt {"success": true, "apiKey": "yt_..."} zurück — ein kostenloser gemeinsamer Schlüssel, kein Konto, begrenzt auf 5 Videos pro Monat pro IP. Gut zum Ausprobieren; hole dir deinen eigenen für echte Nutzung.
Verwendung
- Setze Video-URLs in Spalte A — vollständige Links,
youtu.beKurzlinks oder nackte 11-stellige IDs funktionieren alle. - In B2 gebe
=YT_TRANSCRIPT(A2)ein. - Brauchst du mehr oder weniger Text?
=YT_TRANSCRIPT(A2, 20000)setzt die Obergrenze explizit. - Ziehe die Formel die Spalte herunter und beobachte, wie die Zellen sich füllen.
Transkripte stammen von Youtubes eigenen Untertiteln — manuell, wenn der Ersteller sie hochgeladen hat, automatisch generiert sonst, Englisch bevorzugt mit Fallback auf welche Sprache auch immer vorhanden ist.
Warum maxChars hier wichtiger ist als überall sonst
Eine Google Sheets Zelle hält maximal 50.000 Zeichen. Das ist eine harte Plattformbeschränkung, und die Standard-Obergrenze der API von 150.000 Zeichen segelt direkt vorbei — eine lange Podcast-Episode würde nicht in der Zelle landen. Also in Sheets, immer maxChars von 50000 oder weniger übergeben. Ich standard das Skript auf 5000, was Zusammenfassungen, Keyword-Überprüfungen und die Fütterung einer KI-Formel ohne die Umwandlung deiner Tabelle in einen Roman abdeckt.
Der Neuberechnungs-Fallstrick
Hier ist die ehrliche Begrenzung des Ansatzes mit benutzerdefinierten Funktionen: Sheets führt benutzerdefinierte Funktionen jedes Mal erneut aus, wenn es neu berechnet — einschließlich jedes Mal, wenn die Datei erneut geöffnet wird. Jeder erneute Lauf ist ein echter API-Aufruf, daher ruft eine Tabelle mit 40 Transkript-Formeln beim Öffnen still 40 Videos erneut ab und frisst dein Kontingent zum Frühstück. Die Lösung ist einfach: Sobald ein Transkript ankommt, wähle die Zellen und füge sie zurück als Werte ein (Kopieren, dann Einfügen Spezial > Nur Werte). Der Text bleibt; die Formel und ihr Appetit gehen.
Wenn eine Zelle ERROR sagt
Die Funktion gibt lesbare Codes zurück statt zu fallen. ERROR: TRANSCRIPT_UNAVAILABLE bedeutet, das Video hat überhaupt keine Untertitel — nichts zu holen. ERROR: RATE_LIMIT_EXCEEDED bedeutet, das Kontingent des Schlüssels monatlich ist aufgebraucht, das beim gemeinsamen Demo-Schlüssel schnell passiert. ERROR: INVALID_URL bedeutet, die Zelle enthält nicht irgendetwas, das wie ein YouTube-Video aussieht.
Wohin man damit geht
Ein Blatt voll Transkripte ist ein überraschend gutes Recherche-Tool — ich gehe durch diesen Workflow in der Inhaltsforschungs-Beitrag. Und wenn du aus Formeln hinauswächst und willst, dass Transkripte automatisch abgerufen werden, wenn Videos veröffentlicht werden, macht der n8n-Workflow es freihändig.
Für deinen eigenen Schlüssel — kein gemeinsames Kontingent, kein Telefon, keine Karte — melde dich mit Google bei youtube2text.org/app/keys an. Kostenlos covers 5 Videos pro Monat; $5,99 bekommt 50, $9,99 bekommt 500, $19,99 ist unbegrenzt. Füge es in API_KEY ein und das Blatt macht den Rest.