HandleidingenDoor Péter Nagy

Een YouTube-transcript ophalen met een API (curl, Python, JavaScript)

Haal het transcript van elke openbare YouTube-video op met één HTTP-verzoek. Werkende voorbeelden in curl, Python en JavaScript, uitvoerformaten, foutcodes en kosten.

Vat nu een YouTube-video samen

Plak een link en krijg de kernpunten met klikbare tijdstempels.

Om een YouTube-transcript met een API op te halen, stuur je één HTTP-verzoek met de video-URL of het video-ID en een API-sleutel, en lees je het transcript uit het antwoord. Deze gids toont het verzoek in curl, Python en JavaScript met de sum.video Transcript API en behandelt daarna formaten, fouten en kosten.

Wat de API teruggeeft

Het eindpunt geeft de bestaande ondertitels van een openbare YouTube-video terug, geschreven door de maker of automatisch gegenereerd door YouTube. Het transcribeert geen audio. Heeft een video geen ondertitels, dan krijg je een fout in plaats van een gok (daarover hieronder meer).

De basis:

  • Eindpunt: POST https://sum.video/api/v1/transcript (GET werkt ook)
  • Authenticatie: je sleutel in de header X-API-Key, of Authorization: Bearer <key>
  • Invoer: url of video_id
  • Optioneel lang (standaard en)
  • Optioneel format: json, text of srt

Het antwoord vertelt ook de echte taal van het ondertitelspoor en of het automatisch is gegenereerd, zodat je weet welke kwaliteit je kunt verwachten.

Stap 1: Maak een API-sleutel

Log in en maak een sleutel aan op het API-dashboard (/dashboard/api op sum.video). Je kunt tot 5 actieve sleutels hebben, handig om een testsleutel van een productiesleutel te scheiden. Je eerste sleutel wordt geleverd met 10 gratis credits, genoeg voor 5 transcripts, zodat je alles hieronder kosteloos kunt uitproberen.

Vat nu een YouTube-video samen

Plak een link en krijg de kernpunten met klikbare tijdstempels.

Stap 2: Doe je eerste verzoek

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

Omdat GET ook werkt, kun je ook testen vanuit een script dat alleen URL's opbouwt. Geef de sleutel liever in de header mee, zodat hij niet in logs terechtkomt.

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

Bewaar de sleutel op een server. Een sleutel in browsercode kan door iedereen worden gekopieerd die de ontwikkelaarstools opent.

Stap 3: Kies het juiste formaat

Formaat Wat je krijgt Het best voor
json Segmenten, elk met offset en duration in seconden Tijdstempels, deeplinks naar een moment, opdelen op tijd
text Gewoon transcript Prompts, zoekindexen, samenvattingen
srt Inhoud van een ondertitelbestand Videobewerkers, ondertiteltools

Wil je terugverwijzen naar een moment in de video, gebruik dan json en bouw de link op basis van de offset van het segment. Om een LLM te voeden is text kleiner en eenvoudiger. Wil je later met de hand in een transcript zoeken, lees dan hoe je zoekt in het transcript van een YouTube-video.

Stap 4: Kies een taal

lang staat standaard op en. Zet het op de taal die je wilt, bijvoorbeeld de of es. Het antwoord meldt de taal van het spoor dat echt is teruggegeven, dus controleer die in plaats van aan te nemen. Een video heeft vaak maar één ondertitelspoor, en de API geeft echte ondertitels terug, dus vertaalt niets voor je.

Stap 5: Ga om met fouten

Houd vanaf dag één rekening met deze gevallen:

  • 404 no_transcript: de video heeft geen ondertitels, of is een livestream, een privévideo of een verwijderde video. Er is niets om opnieuw te proberen. Sla hem over, of vraag de gebruiker om een andere video.
  • 402 budget_exceeded: je hebt de maandelijkse creditlimiet bereikt die je hebt ingesteld. Zie de volgende sectie.
  • Snelheidslimiet: elke sleutel staat 60 verzoeken per minuut toe. Spreid batchtaken en vertraag als je wordt afgeknepen.
  • Storingen aan onze kant: probeer opnieuw na een korte pauze. Ze kosten niets.

Een eenvoudige lus met een nieuwe poging bij serverfouten en overslaan bij 404 dekt de meeste productiebehoeften.

Wat het kost

Elk transcript kost 2 credits. Verzoeken die geen transcript opleveren of aan de kant van sum.video mislukken, kosten niets, dus een 404 leegt nooit je saldo. Je saldo bekijk je met GET /api/v1/credits.

Credits worden verkocht in eenmalige pakketten die nooit verlopen:

Pakket Prijs Per transcript
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-abonnees krijgen daarnaast elke maand 100 bonuscredits. Voor een zwaardere belasting, zoals het inladen van een heel kanaal, lees je het scenario YouTube-transcripts voor een RAG-app op grote schaal, dat automatisch bijladen en budgetten behandelt. Zie ook de prijzen.

Beperkingen om te kennen voordat je bouwt

  • Alleen video's met ondertitels werken. Dit is de belangrijkste reden voor 404 no_transcript.
  • Automatisch gegenereerde ondertitels kunnen fouten bevatten, vooral bij namen, accenten en vakjargon.
  • De API geeft alleen het transcript terug. Hij vat niet samen. Wil je samenvattingen, tijdstempels en chat bovenop een transcript, dan doet de YouTube-samenvatter dat, en de transcripttool is de versie zonder code voor één video.
  • De officiële YouTube Data API is hier geen vervanging. De methode om ondertitels te downloaden vereist toestemming om de video te bewerken, dus is bedoeld voor je eigen video's (Google-documentatie).

Bronnen

Veelgestelde vragen

Kan ik een YouTube-transcript ophalen zonder de officiële YouTube Data API?

Ja. De sum.video Transcript API neemt een video-URL of video-ID en geeft de bestaande ondertitels terug, zonder dat je een Google Cloud-project nodig hebt. De eigen downloadmethode voor ondertitels van Google vereist toestemming om de video te bewerken, dus is alleen geschikt voor je eigen video's.

Transcribeert de API video's zonder ondertitels?

Nee. Hij geeft bestaande YouTube-ondertitels terug, handmatig of automatisch gegenereerd. Video's zonder ondertitels, livestreams, privévideo's en verwijderde video's geven 404 no_transcript, en dat verzoek kost niets.

Hoeveel kost één transcript?

2 credits per transcript. Pakketten lopen van 100 credits voor $4.49 ($0.090 per transcript) tot 5,000 credits voor $74.99 ($0.030 per transcript), en credits verlopen nooit.

Welke uitvoerformaten zijn beschikbaar?

json (segmenten met offset en duration in seconden), text en srt. Stel het veld format in het verzoek in.

Hoe test ik het gratis?

Je eerste API-sleutel wordt geleverd met 10 gratis credits, dat zijn 5 transcripts. Pro-abonnees krijgen daarnaast elke maand 100 bonuscredits.

Vat nu een YouTube-video samen

Plak een link en krijg de kernpunten met klikbare tijdstempels.

youtube transcript apiapi-handleidingpythonjavascriptcurl

Gerelateerd

Nieuwste berichten

Vat elke YouTube-video in seconden samen

Probeer sum.video