GidseDeur Péter Nagy

Hoe om 'n YouTube-transkripsie met 'n API te kry (curl, Python, JavaScript)

Kry die transkripsie van enige openbare YouTube-video met een HTTP-versoek. Werkende voorbeelde in curl, Python en JavaScript, uitvoerformate, foutkodes en koste.

Som nou 'n YouTube-video op

Plak 'n skakel en kry die sleutelpunte met klikbare tydstempels.

Om 'n YouTube-transkripsie met 'n API te kry, stuur een HTTP-versoek met die video se URL of ID en 'n API-sleutel, en lees die transkripsie uit die antwoord. Hierdie gids wys die versoek in curl, Python en JavaScript met die sum.video Transcript API, en dek dan formate, foute en koste.

Wat die API terugstuur

Die eindpunt gee die bestaande onderskrifte van 'n openbare YouTube-video terug, hetsy deur die skepper geskryf of outomaties deur YouTube gegenereer. Dit transkribeer nie oudio nie. As 'n video geen onderskrifte het nie, kry jy 'n fout in plaas van 'n raaiskoot (meer hieronder).

Die basiese feite:

  • Eindpunt: POST https://sum.video/api/v1/transcript (GET werk ook)
  • Verifiëring: jou sleutel in die X-API-Key-kopstuk, of Authorization: Bearer <key>
  • Invoer: url of video_id
  • Opsionele lang (verstek en)
  • Opsionele format: json, text of srt

Die antwoord sê ook wat die ware taal van die onderskrifspoor is en of dit outomaties gegenereer is, sodat jy weet watter gehalte om te verwag.

Stap 1: Skep 'n API-sleutel

Teken in en skep 'n sleutel op die API-paneelbord (/dashboard/api op sum.video). Jy kan tot 5 aktiewe sleutels hê, handig om 'n toetssleutel van 'n produksiesleutel te skei. Jou eerste sleutel kom met 10 gratis krediete, genoeg vir 5 transkripsies, so jy kan alles hieronder sonder koste probeer.

Som nou 'n YouTube-video op

Plak 'n skakel en kry die sleutelpunte met klikbare tydstempels.

Stap 2: Maak jou eerste versoek

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 werk, kan jy toets vanuit 'n skrip wat net URL's bou. Gee die sleutel liefs in die kopstuk, sodat dit nie in logs beland nie.

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 die blaaier)

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

Hou die sleutel op 'n bediener. 'n Sleutel in blaaierkode kan deur enigiemand gekopieer word wat die ontwikkelaarnutsgoed oopmaak.

Stap 3: Kies die regte formaat

Formaat Wat jy kry Die beste vir
json Segmente, elk met offset en duration in sekondes Tydstempels, skakels na 'n oomblik, verdeling volgens tyd
text Gewone transkripsie Opdragte, soekindekse, opsommings
srt Inhoud van 'n onderskriflêer Videoredigeerders, onderskrifnutsgoed

As jy van plan is om na 'n oomblik in die video te skakel, gebruik json en bou die skakel uit die segment se offset. Om 'n LLM te voer, is text kleiner en eenvoudiger. As jy later met die hand binne 'n transkripsie wil soek, kyk hoe om binne 'n YouTube-video se transkripsie te soek.

Stap 4: Kies 'n taal

lang is by verstek en. Stel dit op die taal wat jy wil hê, byvoorbeeld de of es. Die antwoord meld die taal van die spoor wat werklik teruggestuur is, so kontroleer dit eerder as om aan te neem. 'n Video het dikwels net een onderskrifspoor, en die API gee ware onderskrifte terug, so dit vertaal nie vir jou nie.

Stap 5: Hanteer foute

Beplan van dag een vir hierdie gevalle:

  • 404 no_transcript: die video het geen onderskrifte nie, of dit is 'n regstreekse stroom, 'n private video of 'n verwyderde video. Daar is niks om weer te probeer nie. Slaan dit oor, of vra die gebruiker vir 'n ander video.
  • 402 budget_exceeded: jy het die maandelikse kredietlimiet bereik wat jy gestel het. Sien die volgende afdeling.
  • Tempolimiet: elke sleutel laat 60 versoeke per minuut toe. Versprei bondeltake en vertraag wanneer jy beperk word.
  • Mislukkings aan ons kant: probeer weer ná 'n kort vertraging. Dit kos niks nie.

'n Eenvoudige lus met 'n herpoging by bedienerfoute en oorslaan by 404 dek die meeste produksiebehoeftes.

Wat dit kos

Elke transkripsie kos 2 krediete. Versoeke wat geen transkripsie teruggee nie of aan sum.video se kant misluk, kos niks nie, so 'n 404 dreineer nooit jou saldo nie. Jy kan jou saldo met GET /api/v1/credits nagaan.

Krediete word in eenmalige pakkette verkoop wat nooit verval nie:

Pakket Prys Per transkripsie
100 krediete $4.49 $0.090
500 krediete $13.99 $0.056
2,000 krediete $37.99 $0.038
5,000 krediete $74.99 $0.030

Pro-intekenaars kry ook elke maand 100 bonuskrediete. Vir swaarder werk, soos om 'n hele kanaal in te neem, lees die scenario YouTube-transkripsies vir 'n RAG-toepassing op groot skaal, wat outomatiese aanvulling en begrotings dek. Sien ook die pryse.

Beperkings om te ken voordat jy bou

  • Slegs video's met onderskrifte werk. Dit is die hoofrede vir 404 no_transcript.
  • Outomaties gegenereerde onderskrifte kan foute bevat, veral met name, aksente en tegniese terme.
  • Die API gee net die transkripsie terug. Dit som nie op nie. As jy opsommings, tydstempels en klets bo-op 'n transkripsie wil hê, doen die YouTube-opsommer dit, en die transkripsiehulpmiddel is die kodevrye weergawe vir een video.
  • Die amptelike YouTube Data API is hier nie 'n plaasvervanger nie. Sy metode om onderskrifte af te laai vereis toestemming om die video te wysig, so dit is bedoel vir jou eie video's (Google-dokumentasie).

Bronne

Gereelde vrae

Kan ek 'n YouTube-transkripsie kry sonder die amptelike YouTube Data API?

Ja. Die sum.video Transcript API neem 'n video-URL of -ID en gee die bestaande onderskrifte terug, sonder dat 'n Google Cloud-projek nodig is. Google se eie metode om onderskrifte af te laai vereis toestemming om die video te wysig, so dit pas net vir jou eie video's.

Transkribeer die API video's wat geen onderskrifte het nie?

Nee. Dit gee bestaande YouTube-onderskrifte terug, handgemaak of outomaties gegenereer. Video's sonder onderskrifte, regstreekse strome, private video's en verwyderde video's gee 404 no_transcript terug, en daardie versoek kos niks nie.

Hoeveel kos een transkripsie?

2 krediete per transkripsie. Pakkette wissel van 100 krediete vir $4.49 ($0.090 per transkripsie) tot 5,000 krediete vir $74.99 ($0.030 per transkripsie), en krediete verval nooit.

Watter uitvoerformate is beskikbaar?

json (segmente met offset en duration in sekondes), text en srt. Stel die format-veld in die versoek.

Hoe toets ek dit gratis?

Jou eerste API-sleutel kom met 10 gratis krediete, dit is 5 transkripsies. Pro-intekenaars kry ook elke maand 100 bonuskrediete.

Som nou 'n YouTube-video op

Plak 'n skakel en kry die sleutelpunte met klikbare tydstempels.

youtube-transkripsie-apiapi-handleidingpythonjavascriptcurl

Verwante leeswerk

Nuutste plasings

Som enige YouTube-video binne sekondes op

Probeer sum.video