YouTube Transcript i Google Sheets med en egendefinert funksjon

Å få en YouTube-transkripsjon inn i Google Sheets tar en Apps Script-funksjon. Lim inn den en gang, og =YT_TRANSCRIPT(A2) fungerer som hvilken som helst innebygd formel: URL i en kolonne, transkripsjon i neste. Her er hele skriptet, pluss to Sheets-spesifikke gotchas som vil bite deg hvis ingen advarer deg.
Skriptet
Åpne regnearket ditt, gå til Utvidelser > Apps Script, og lim inn dette:
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;
}
Lagre, og funksjonen lever i regnearket ditt. @customfunction-taggen er hva som registrerer den med autofullføring; muteHttpExceptions holder 404 fra å eksplodere inn i en rød celle med en stack trace som ingen ba om.
For nøkkelen: forespør https://youtube2text.org/api/demo-key i nettleseren din og den gir tilbake {"success": true, "apiKey": "yt_..."} — en gratis delt nøkkel, ingen konto, begrenset til 5 videoer per måned per IP. OK for å prøve dette; få din egen til faktisk bruk.
Bruke det
- Legg video-URL-er i kolonne A — fulle lenker,
youtu.bekorte lenker, eller bare 11-tegn-id-er alle fungerer. - I B2, skriv
=YT_TRANSCRIPT(A2). - Trenger mer eller mindre tekst?
=YT_TRANSCRIPT(A2, 20000)angir taket eksplisitt. - Dra formelen ned i kolonnen og se cellene fylle seg.
Transkripsjoner kommer fra YouTubes egne undertekster — manuell når skaperen lastet dem opp, auto-generert ellers, engelsk foretrukket med fallback til hvilket som helst språk som finnes.
Hvorfor maxChars betyr mer her enn noe annet sted
En Google Sheets-celle holder maksimalt 50 000 tegn. Det er en hard plattformgrense, og APIens standard grense på 150 000 tegn seiler rett forbi den — en lang podcast-episode ville ikke klare å lande i cellen. Så i Sheets, pass alltid maxChars på 50000 eller mindre. Jeg standard-setter skriptet til 5000, som dekker oppsummeringer, nøkkelordsjekker, og mating til en AI-formel, uten å gjøre regnearket ditt til en roman.
Gjenberegnings-gotchaen
Her er den ærlige begrensningen for tilnærmingen med egendefinert funksjon: Sheets kjører på nytt egendefinerte funksjoner når det beregner på nytt — inkludert hver gang filen åpnes. Hver ny kjøring er et faktisk API-kall, så et regneark med 40 transkripsjon-formler henter stilig 40 videoer på åpning og spiser kvoten din til frokost. Fiksen er enkel: når en transkripsjon ankommer, velg cellene og lim dem inn igjen som verdier (Kopier, deretter Lim inn spesial > Bare verdier). Teksten blir; formelen, og appetitten, går.
Når en celle sier FEIL
Funksjonen returnerer lesbare koder i stedet for å krasje. ERROR: TRANSCRIPT_UNAVAILABLE betyr at videoen ikke har undertekster i det hele tatt — ingenting å hente. ERROR: RATE_LIMIT_EXCEEDED betyr at nøkkelen sin månedlige kvote er brukt opp, som på den delte demo-nøkkelen skjer raskt. ERROR: INVALID_URL betyr at cellen ikke inneholder noe som ligner en YouTube-video.
Hvor skal man ta det
Et regneark fullt av transkripsjoner er et overraskende godt forskningstool — jeg gjennomgår arbeidsflyten i innholds-forskning-posten. Og når du vokser vekk fra formler og ønsker transkripsjoner hentet automatisk når videoer publiseres, gjør n8n arbeidsflyten det hånds-fritt.
For din egen nøkkel — ingen delt kvote, intet telefon, intet kort — logg inn med Google på youtube2text.org/app/keys. Gratis dekker 5 videoer per måned; $5.99 får 50, $9.99 får 500, $19.99 er ubegrenset. Lim den inn i API_KEY og regnearket gjør resten.