Sådan henter du en YouTube-transskription med en API (curl, Python, JavaScript)
Hent transskriptionen af enhver offentlig YouTube-video med én HTTP-forespørgsel. Fungerende eksempler i curl, Python og JavaScript, outputformater, fejlkoder og priser.

For at hente en YouTube-transskription med en API sender du én HTTP-forespørgsel med videoens URL eller ID og en API-nøgle og læser transskriptionen i svaret. Denne guide viser forespørgslen i curl, Python og JavaScript med sum.video Transcript API og gennemgår derefter formater, fejl og pris.
Hvad API'en returnerer
Endepunktet returnerer de eksisterende undertekster til en offentlig YouTube-video, enten skrevet af skaberen eller automatisk genereret af YouTube. Det transskriberer ikke lyd. Hvis en video ikke har undertekster, får du en fejl i stedet for et gæt (mere om det nedenfor).
Det grundlæggende:
- Endepunkt:
POST https://sum.video/api/v1/transcript(GETvirker også) - Godkendelse: din nøgle i headeren
X-API-KeyellerAuthorization: Bearer <key> - Input:
urlellervideo_id - Valgfri
lang(standarden) - Valgfri
format:json,textellersrt
Svaret fortæller også det faktiske sprog på undertekstsporet, og om det er automatisk genereret, så du ved, hvilken kvalitet du kan forvente.
Trin 1: Opret en API-nøgle
Log ind og opret en nøgle i API-dashboardet (/dashboard/api på sum.video). Du kan have op til 5 aktive nøgler, hvilket er praktisk til at holde en testnøgle adskilt fra en produktionsnøgle. Din første nøgle leveres med 10 gratis kreditter, nok til 5 transskriptioner, så du kan prøve alt nedenfor uden omkostninger.
Trin 2: Send din første forespørgsel
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 også virker, kan du teste fra et script, der kun bygger URL'er. Giv hellere nøglen i headeren, så den ikke ender i logfiler.
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 browseren)
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());
}
Hold nøglen på en server. En nøgle i browserkode kan kopieres af alle, der åbner udviklerværktøjerne.
Trin 3: Vælg det rigtige format
| Format | Hvad du får | Bedst til |
|---|---|---|
json |
Segmenter, hver med offset og duration i sekunder |
Tidsstempler, links til et bestemt øjeblik, opdeling efter tid |
text |
Almindelig transskription | Prompts, søgeindeks, resuméer |
srt |
Indholdet af en undertekstfil | Videoredigeringsprogrammer, undertekstværktøjer |
Hvis du vil linke til et øjeblik i videoen, så brug json og byg linket ud fra segmentets offset. Til at fodre en LLM er text mindre og enklere. Hvis du senere vil søge manuelt i en transskription, så se sådan søger du i en YouTube-videos transskription.
Trin 4: Vælg et sprog
lang er som standard en. Sæt det til det sprog, du vil have, for eksempel de eller es. Svaret oplyser sproget på det spor, der faktisk blev returneret, så tjek det i stedet for at antage. En video har ofte kun ét undertekstspor, og API'en returnerer rigtige undertekster, så den oversætter dem ikke for dig.
Trin 5: Håndtér fejl
Planlæg for disse tilfælde fra første dag:
404 no_transcript: videoen har ingen undertekster, eller den er en livestream, en privat video eller en fjernet video. Der er intet at prøve igen. Spring den over, eller bed brugeren om en anden video.402 budget_exceeded: du har nået den månedlige kreditgrænse, du satte. Se næste afsnit.- Hastighedsgrænse: hver nøgle tillader 60 forespørgsler i minuttet. Spred batchjob ud, og sæt tempoet ned, når du bliver begrænset.
- Fejl hos os: prøv igen efter en kort pause. De koster ingenting.
En enkel løkke, der prøver igen ved serverfejl og springer over ved 404, dækker de fleste produktionsbehov.
Hvad det koster
Hver transskription koster 2 kreditter. Forespørgsler, der ikke returnerer en transskription, eller som fejler hos sum.video, koster ingenting, så en 404 dræner aldrig din saldo. Du kan se din saldo med GET /api/v1/credits.
Kreditter sælges i engangspakker, der aldrig udløber:
| Pakke | Pris | Pr. transskription |
|---|---|---|
| 100 kreditter | $4.49 | $0.090 |
| 500 kreditter | $13.99 | $0.056 |
| 2,000 kreditter | $37.99 | $0.038 |
| 5,000 kreditter | $74.99 | $0.030 |
Pro-abonnenter får også 100 bonuskreditter hver måned. Til tungere arbejde, som at indlæse en hel kanal, kan du læse scenariet YouTube-transskriptioner til en RAG-app i stor skala, der dækker automatisk optankning og budgetter. Se også priserne.
Begrænsninger, du bør kende, før du bygger
- Kun videoer med undertekster virker. Det er hovedårsagen til
404 no_transcript. - Automatisk genererede undertekster kan indeholde fejl, især med navne, accenter og fagudtryk.
- API'en returnerer kun transskriptionen. Den laver ikke resuméer. Hvis du vil have resuméer, tidsstempler og chat oven på en transskription, gør YouTube-resumeren det, og transskriptionsværktøjet er versionen uden kode til én video.
- Den officielle YouTube Data API er ikke en erstatning her. Dens metode til at hente undertekster kræver tilladelse til at redigere videoen, så den er beregnet til dine egne videoer (Googles dokumentation).
Kilder
Ofte stillede spørgsmål
Kan jeg hente en YouTube-transskription uden den officielle YouTube Data API?
Ja. sum.video Transcript API tager en videos URL eller ID og returnerer de eksisterende undertekster uden behov for et Google Cloud-projekt. Googles egen metode til at hente undertekster kræver tilladelse til at redigere videoen, så den passer kun til dine egne videoer.
Transskriberer API'en videoer, der ikke har undertekster?
Nej. Den returnerer eksisterende YouTube-undertekster, manuelle eller automatisk genererede. Videoer uden undertekster, livestreams, private og fjernede videoer returnerer 404 no_transcript, og den forespørgsel koster ingenting.
Hvad koster én transskription?
2 kreditter pr. transskription. Pakkerne går fra 100 kreditter for $4.49 ($0.090 pr. transskription) til 5,000 kreditter for $74.99 ($0.030 pr. transskription), og kreditter udløber aldrig.
Hvilke outputformater findes der?
json (segmenter med offset og duration i sekunder), text og srt. Sæt feltet format i forespørgslen.
Hvordan prøver jeg det gratis?
Din første API-nøgle leveres med 10 gratis kreditter, altså 5 transskriptioner. Pro-abonnenter får desuden 100 bonuskreditter hver måned.
Relateret læsning
YouTube-transskriptioner til en RAG-app i stor skala: kreditter, automatisk optankning og budgetterEn udvikler indlæser 10.000 YouTube-videoer i en RAG-app. Se prisen, regnestykket for hastighedsgrænsen, og hvordan automatisk optankning og budgetter holder udgifterne forudsigelige.
De bedste YouTube-transskriptions-API'er sammenlignet: sum.video, Supadata, Transcribr og Python-biblioteketFire måder at hente YouTube-transskriptioner i kode, sammenlignet på pris, grænser og pålidelighed: sum.video, Supadata, Transcribr og youtube-transcript-api.
Seneste indlæg
YouTube-transskriptioner til en RAG-app i stor skala: kreditter, automatisk optankning og budgetterEn udvikler indlæser 10.000 YouTube-videoer i en RAG-app. Se prisen, regnestykket for hastighedsgrænsen, og hvordan automatisk optankning og budgetter holder udgifterne forudsigelige.
De bedste YouTube-transskriptions-API'er sammenlignet: sum.video, Supadata, Transcribr og Python-biblioteketFire måder at hente YouTube-transskriptioner i kode, sammenlignet på pris, grænser og pålidelighed: sum.video, Supadata, Transcribr og youtube-transcript-api.