GuiderAv Péter Nagy

Så får du en YouTube-transkription med ett API (curl, Python, JavaScript)

Hämta transkriptionen av valfri offentlig YouTube-video med en HTTP-förfrågan. Fungerande exempel i curl, Python och JavaScript, utdataformat, felkoder och kostnad.

Sammanfatta en YouTube-video nu

Klistra in en länk och få nyckelpunkterna med klickbara tidsstämplar.

För att få en YouTube-transkription med ett API skickar du en HTTP-förfrågan med videons URL eller ID och en API-nyckel, och läser transkriptionen i svaret. Den här guiden visar förfrågan i curl, Python och JavaScript med sum.videos transkript-API och förklarar sedan format, fel och kostnad.

Vad API:et returnerar

Slutpunkten returnerar de befintliga undertexterna för en offentlig YouTube-video, antingen skrivna av skaparen eller automatiskt genererade av YouTube. Den transkriberar inte ljud. Om videon saknar undertexter får du ett fel i stället för en gissning (mer om det nedan).

Grunderna:

  • Slutpunkt: POST https://sum.video/api/v1/transcript (GET fungerar också)
  • Autentisering: din nyckel i rubriken X-API-Key, eller Authorization: Bearer <key>
  • Indata: url eller video_id
  • Valfri lang (standard en)
  • Valfri format: json, text eller srt

Svaret anger undertextspårets verkliga språk och om det är automatiskt genererat, så att du vet vilken kvalitet du kan vänta dig.

Steg 1: skapa en API-nyckel

Logga in och skapa en nyckel i API-panelen (/dashboard/api på sum.video). Du kan ha upp till 5 aktiva nycklar, vilket är bra för att hålla testnyckeln och produktionsnyckeln isär. Din första nyckel kommer med 10 gratiskrediter, nog för 5 transkriptioner, så du kan prova allt nedan utan kostnad.

Sammanfatta en YouTube-video nu

Klistra in en länk och få nyckelpunkterna med klickbara tidsstämplar.

Steg 2: gör din första förfrågan

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"}'

Eftersom GET också fungerar kan du testa från ett skript som bara bygger URL:en. Det är bättre att skicka nyckeln i rubriken, så att den inte hamnar i loggarna.

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+ eller webbläsare)

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());
}

Behåll nyckeln på servern. En nyckel i webbläsarkod kan kopieras av vem som helst som öppnar utvecklarverktygen.

Steg 3: välj rätt format

Format Vad du får Bäst för
json Segment, vart och ett med offset och duration i sekunder Tidsstämplar, länkar till ett ögonblick i videon, uppdelning efter tid
text Transkription som ren text Prompter, sökindex, sammanfattningar
srt Innehållet i en undertextfil Videoredigerare, undertextverktyg

Om du tänker länka till ett ögonblick i videon använder du json och bygger länken från segmentets offset. För en LLM är text kortare och enklare. Om du senare vill söka manuellt i en transkription, se hur du söker i en YouTube-videos transkription.

Steg 4: välj språk

lang är en som standard. Ange det språk du vill ha, till exempel de eller es. Svaret anger språket på det spår som faktiskt returnerades, så kontrollera det i stället för att anta. En video har ofta bara ett undertextspår, och API:et returnerar de verkliga undertexterna, så det översätter inte åt dig.

Steg 5: hantera fel

Planera för dessa fall från första dagen:

  • 404 no_transcript: videon saknar undertexter, eller är en livesändning, en privat eller en borttagen video. Det finns inget att försöka om. Hoppa över den eller be användaren om en annan video.
  • 402 budget_exceeded: du har nått den månatliga kreditgräns du satt. Se nästa avsnitt.
  • Hastighetsgräns: varje nyckel tillåter 60 förfrågningar per minut. Sprid ut batchjobb och sakta ner när du begränsas.
  • Fel på vår sida: försök igen efter en stund. De kostar ingenting.

En enkel loop som försöker igen vid serverfel och hoppar över vid 404 täcker de flesta produktionsbehov.

Vad det kostar

Varje transkription kostar 2 krediter. Förfrågningar som inte returnerar någon transkription eller misslyckas hos sum.video kostar ingenting, så en 404 tömmer aldrig ditt saldo. Du ser saldot med GET /api/v1/credits.

Krediter säljs i engångspaket som aldrig löper ut:

Paket Pris Per transkription
100 krediter $4.49 $0.090
500 krediter $13.99 $0.056
2,000 krediter $37.99 $0.038
5,000 krediter $74.99 $0.030

Pro-prenumeranter får dessutom 100 bonuskrediter varje månad. För tunga jobb, som att hämta in en hel kanal, läs scenariot YouTube-transkriptioner för en RAG-app i stor skala, som tar upp automatisk påfyllning och budgetar. Se även priserna.

Begränsningar att känna till innan du bygger

  • Bara videor med undertexter fungerar. Det är den främsta orsaken till 404 no_transcript.
  • Automatiska undertexter kan innehålla fel, särskilt i namn, dialekter och facktermer.
  • API:et returnerar bara transkriptionen. Det gör inga sammanfattningar. Vill du ha sammanfattning, tidsstämplar och chatt om transkriptionen gör YouTube-sammanfattaren det, och transkriptionsverktyget är kodfria varianten för en video.
  • Det officiella YouTube Data API är ingen ersättning här. Dess metod för att ladda ner undertexter kräver behörighet att redigera videon, så den är till för dina egna videor (Googles dokumentation).

Källor

Vanliga frågor och svar

Kan jag få YouTube-transkriptioner utan det officiella YouTube Data API?

Ja. sum.videos transkript-API tar videons URL eller ID och returnerar de befintliga undertexterna, utan att du behöver något Google Cloud-projekt. Googles officiella metod för att ladda ner undertexter kräver behörighet att redigera videon, så den fungerar bara för dina egna videor.

Transkriberar API:et videor utan undertexter?

Nej. Det returnerar befintliga YouTube-undertexter, manuella eller automatiskt genererade. Videor utan undertexter, livesändningar samt privata och borttagna videor returnerar 404 no_transcript, och den förfrågan kostar ingenting.

Vad kostar en transkription?

2 krediter per transkription. Paketen går från 100 krediter för $4.49 ($0.090 per transkription) till 5,000 krediter för $74.99 ($0.030 per transkription), och krediterna löper aldrig ut.

Vilka utdataformat finns?

json (segment med offset och duration i sekunder), text och srt. Ange fältet format i förfrågan.

Hur kan jag prova det gratis?

Din första API-nyckel kommer med 10 gratiskrediter, alltså 5 transkriptioner. Pro-prenumeranter får dessutom 100 bonuskrediter varje månad.

Sammanfatta en YouTube-video nu

Klistra in en länk och få nyckelpunkterna med klickbara tidsstämplar.

youtube transkript apiapi-guidepythonjavascriptcurl

Relaterad läsning

Senaste inläggen

Sammanfatta vilken YouTube-video som helst på några sekunder

Prova sum.video