Kako pridobiti prepis videa na YouTubu z API-jem (curl, Python, JavaScript)
Prepis katerega koli javnega videa na YouTubu pridobi z eno zahtevo HTTP. Delujoči primeri v curlu, Pythonu in JavaScriptu, izhodni formati, kode napak in stroški.

Če želiš prepis videa na YouTubu pridobiti z API-jem, pošlji zahtevo HTTP z URL-jem ali ID-jem videa in API-ključem, prepis pa preberi iz odgovora. Ta vodnik prikazuje zahtevo v curlu, Pythonu in JavaScriptu z API-jem za prepise sum.video, nato pojasni formate, napake in ceno.
Kaj API vrne
Končna točka vrne obstoječe podnapise javnega videa na YouTubu, ne glede na to, ali jih je napisal avtor ali jih je samodejno ustvaril YouTube. Zvoka ne prepisuje. Če video podnapisov nima, dobiš napako namesto ugibanja (več spodaj).
Osnove:
- Končna točka:
POST https://sum.video/api/v1/transcript(deluje tudiGET) - Overjanje: tvoj ključ v glavi
X-API-KeyaliAuthorization: Bearer <key> - Vhod:
urlalivideo_id - Neobvezen
lang(privzetoen) - Neobvezen
format:json,textalisrt
Odgovor pove dejanski jezik sledi podnapisov in ali je nastala samodejno, da veš, kakšno kakovost lahko pričakuješ.
1. korak: ustvari API-ključ
Prijavi se in ustvari ključ na nadzorni plošči API (/dashboard/api na sum.video). Imaš lahko do 5 aktivnih ključev, kar je koristno za ločevanje testnega in produkcijskega ključa. Tvoj prvi ključ pride z 10 brezplačnimi krediti, kar zadošča za 5 prepisov, zato lahko vse spodaj preizkusiš brez stroškov.
2. korak: pošlji prvo zahtevo
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"}'
Ker deluje tudi GET, lahko testiraš tudi iz skripte, ki samo sestavi URL. Ključ je bolje poslati v glavi, da ne konča v dnevnikih.
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+ ali brskalnik)
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());
}
Ključ hrani na strežniku. Ključ v kodi brskalnika lahko kopira vsak, ki odpre razvijalska orodja.
3. korak: izberi pravi format
| Format | Kaj dobiš | Najboljše za |
|---|---|---|
json |
Odseki, vsak z offset in duration v sekundah |
Časovne oznake, povezave na trenutek v videu, delitev po času |
text |
Prepis v navadnem besedilu | Pozivi, iskalni indeksi, povzetki |
srt |
Vsebina datoteke s podnapisi | Urejevalniki videa, orodja za podnapise |
Če nameravaš povezati na trenutek v videu, uporabi json in povezavo sestavi iz offset odseka. Za LLM je text krajši in preprostejši. Če kasneje želiš ročno iskati po prepisu, glej kako iskati po prepisu videa na YouTubu.
4. korak: izberi jezik
lang je privzeto en. Nastavi jezik, ki ga želiš, na primer de ali es. Odgovor pove jezik dejansko vrnjene sledi, zato ga preveri, namesto da ga predpostaviš. Video ima pogosto le eno sled podnapisov, API pa vrne dejanske podnapise, zato ne prevaja namesto tebe.
5. korak: obravnavaj napake
Že od prvega dne načrtuj te primere:
404 no_transcript: video nima podnapisov ali pa je neposredni prenos, zasebni ali odstranjen video. Ni kaj ponavljati. Preskoči ga ali uporabnika prosi za drug video.402 budget_exceeded: dosegel si mesečno omejitev kreditov, ki si jo nastavil. Glej naslednji razdelek.- Omejitev hitrosti: vsak ključ dovoljuje 60 zahtev na minuto. Delo v paketih razporedi in ob omejitvi upočasni.
- Napake na naši strani: poskusi znova čez kratek čas. Ne stanejo nič.
Preprosta zanka, ki ob strežniških napakah poskusi znova in pri 404 preskoči, pokrije večino produkcijskih potreb.
Koliko stane
Vsak prepis stane 2 kredita. Zahteve, ki ne vrnejo prepisa ali spodletijo na strani sum.video, ne stanejo nič, zato 404 nikoli ne izprazni tvojega stanja. Stanje vidiš z GET /api/v1/credits.
Krediti se prodajajo v enkratnih paketih, ki nikoli ne potečejo:
| Paket | Cena | Na prepis |
|---|---|---|
| 100 kreditov | $4.49 | $0.090 |
| 500 kreditov | $13.99 | $0.056 |
| 2,000 kreditov | $37.99 | $0.038 |
| 5,000 kreditov | $74.99 | $0.030 |
Naročniki Pro dobijo poleg tega vsak mesec 100 bonus kreditov. Za težja opravila, kot je uvoz celotnega kanala, preberi scenarij prepisi z YouTuba za aplikacijo RAG v velikem obsegu, ki zajema samodejno dopolnjevanje in proračune. Oglej si tudi cene.
Omejitve, ki jih je dobro poznati pred gradnjo
- Delujejo samo videi s podnapisi. To je glavni vzrok za
404 no_transcript. - Samodejni podnapisi lahko vsebujejo napake, zlasti pri imenih, naglasih in strokovnih izrazih.
- API vrne samo prepis. Povzetkov ne ustvarja. Če želiš povzetek, časovne oznake in klepet o prepisu, to naredi povzemalnik za YouTube, orodje za prepise pa je različica brez kode za en video.
- Uradni API YouTube Data tu ni nadomestek. Njegova metoda za prenos podnapisov zahteva dovoljenje za urejanje videa, zato je namenjena tvojim lastnim videom (Googlova dokumentacija).
Viri
Pogosto zastavljena vprašanja
Ali lahko pridobim prepise z YouTuba brez uradnega API-ja YouTube Data?
Da. API za prepise sum.video sprejme URL ali ID videa in vrne obstoječe podnapise, brez projekta v Google Cloudu. Googlova uradna metoda za prenos podnapisov zahteva dovoljenje za urejanje videa, zato deluje samo za tvoje lastne videe.
Ali API prepiše videe brez podnapisov?
Ne. Vrne obstoječe podnapise z YouTuba, ročne ali samodejne. Videi brez podnapisov, neposredni prenosi, zasebni in odstranjeni videi vrnejo 404 no_transcript, ta zahteva pa ne stane nič.
Koliko stane en prepis?
2 kredita na prepis. Paketi so od 100 kreditov za $4.49 ($0.090 na prepis) do 5,000 kreditov za $74.99 ($0.030 na prepis), krediti pa nikoli ne potečejo.
Kateri izhodni formati so na voljo?
json (odseki z offset in duration v sekundah), text in srt. V zahtevi nastavi polje format.
Kako to preizkusim brezplačno?
Tvoj prvi API-ključ pride z 10 brezplačnimi krediti, to je 5 prepisov. Naročniki Pro dobijo poleg tega vsak mesec 100 bonus kreditov.
Povezano branje
Prepisi z YouTuba za aplikacijo RAG v velikem obsegu: krediti, samodejno dopolnjevanje in proračuniRazvijalka v aplikacijo RAG uvozi 10,000 videov z YouTuba. Poglej stroške, izračun omejitve hitrosti in kako samodejno dopolnjevanje ter proračuni ohranjajo porabo predvidljivo.
Najboljši API-ji za prepise z YouTuba v primerjavi: sum.video, Supadata, Transcribr in knjižnica za PythonŠtirje načini za pridobivanje prepisov z YouTuba v kodi, primerjani po ceni, omejitvah in zanesljivosti: sum.video, Supadata, Transcribr in youtube-transcript-api.
Najnovejše objave
Prepisi z YouTuba za aplikacijo RAG v velikem obsegu: krediti, samodejno dopolnjevanje in proračuniRazvijalka v aplikacijo RAG uvozi 10,000 videov z YouTuba. Poglej stroške, izračun omejitve hitrosti in kako samodejno dopolnjevanje ter proračuni ohranjajo porabo predvidljivo.
Najboljši API-ji za prepise z YouTuba v primerjavi: sum.video, Supadata, Transcribr in knjižnica za PythonŠtirje načini za pridobivanje prepisov z YouTuba v kodi, primerjani po ceni, omejitvah in zanesljivosti: sum.video, Supadata, Transcribr in youtube-transcript-api.