Jak získat přepis z YouTube pomocí API (curl, Python, JavaScript)
Získej přepis libovolného veřejného videa na YouTube jedním HTTP požadavkem. Funkční příklady v curl, Pythonu a JavaScriptu, formáty výstupu, chybové kódy a ceny.

Abys získal přepis z YouTube pomocí API, pošli jeden HTTP požadavek s URL nebo ID videa a klíčem API a přepis si přečti z odpovědi. Tento návod ukazuje požadavek v curl, Pythonu a JavaScriptu s API pro přepisy sum.video a pak probírá formáty, chyby a náklady.
Co API vrací
Koncový bod vrací existující titulky veřejného videa na YouTube, ať už je napsal autor, nebo je automaticky vytvořil YouTube. Zvuk nepřepisuje. Pokud video titulky nemá, dostaneš chybu místo odhadu (víc níže).
Základy:
- Koncový bod:
POST https://sum.video/api/v1/transcript(funguje iGET) - Ověření: tvůj klíč v hlavičce
X-API-KeyneboAuthorization: Bearer <key> - Vstup:
urlnebovideo_id - Volitelné
lang(výchozíen) - Volitelné
format:json,textnebosrt
Odpověď také sděluje skutečný jazyk stopy titulků a zda byla vytvořena automaticky, takže víš, jakou kvalitu čekat.
Krok 1: Vytvoř klíč API
Přihlas se a vytvoř klíč na panelu API (/dashboard/api na sum.video). Můžeš mít až 5 aktivních klíčů, což se hodí k oddělení testovacího klíče od produkčního. První klíč přichází s 10 kredity zdarma, což stačí na 5 přepisů, takže vše níže můžeš vyzkoušet bez nákladů.
Krok 2: Pošli první požadavek
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"}'
Protože funguje i GET, můžeš testovat ze skriptu, který jen skládá URL. Klíč raději předávej v hlavičce, aby se nedostal do logů.
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+ nebo prohlížeč)
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());
}
Klíč drž na serveru. Klíč v kódu pro prohlížeč může zkopírovat každý, kdo otevře nástroje pro vývojáře.
Krok 3: Vyber správný formát
| Formát | Co dostaneš | Nejlepší pro |
|---|---|---|
json |
Segmenty, každý s offset a duration v sekundách |
Časové značky, odkazy na konkrétní okamžik, dělení podle času |
text |
Prostý přepis | Prompty, vyhledávací indexy, shrnutí |
srt |
Obsah souboru s titulky | Videoeditory, nástroje pro titulky |
Pokud chceš odkazovat na okamžik ve videu, použij json a odkaz sestav z offset segmentu. Pro krmení LLM je text menší a jednodušší. Pokud později budeš chtít v přepisu hledat ručně, podívej se na jak hledat v přepisu videa na YouTube.
Krok 4: Vyber jazyk
lang je ve výchozím stavu en. Nastav jazyk, který chceš, například de nebo es. Odpověď hlásí jazyk stopy, která se skutečně vrátila, takže ho ověř místo předpokladu. Video má často jen jednu stopu titulků a API vrací skutečné titulky, takže je za tebe nepřekládá.
Krok 5: Ošetři chyby
Počítej s těmito případy od prvního dne:
404 no_transcript: video nemá titulky, nebo je to živé vysílání, soukromé video či odstraněné video. Není co opakovat. Přeskoč ho, nebo požádej uživatele o jiné video.402 budget_exceeded: dosáhl jsi měsíčního limitu kreditů, který sis nastavil. Viz další část.- Limit četnosti: každý klíč povoluje 60 požadavků za minutu. Dávkové úlohy rozlož v čase a při omezení zpomal.
- Selhání na naší straně: zkus to znovu po krátké prodlevě. Nic nestojí.
Jednoduchá smyčka s opakováním při chybách serveru a přeskakováním při 404 pokryje většinu produkčních potřeb.
Kolik to stojí
Každý přepis stojí 2 kredity. Požadavky, které nevrátí přepis nebo selžou na straně sum.video, nestojí nic, takže 404 nikdy nevyčerpá tvůj zůstatek. Zůstatek zjistíš pomocí GET /api/v1/credits.
Kredity se prodávají v jednorázových balíčcích, které nikdy nevyprší:
| Balíček | Cena | Za přepis |
|---|---|---|
| 100 kreditů | $4.49 | $0.090 |
| 500 kreditů | $13.99 | $0.056 |
| 2,000 kreditů | $37.99 | $0.038 |
| 5,000 kreditů | $74.99 | $0.030 |
Předplatitelé Pro dostávají každý měsíc také 100 bonusových kreditů. Pro těžší zátěž, například načtení celého kanálu, si přečti scénář přepisy z YouTube pro aplikaci RAG ve velkém měřítku, který pokrývá automatické dobíjení a rozpočty. Podívej se také na ceny.
Omezení, která je dobré znát před tím, než začneš stavět
- Fungují jen videa s titulky. To je hlavní důvod
404 no_transcript. - Automaticky vytvořené titulky mohou obsahovat chyby, zejména u jmen, přízvuků a odborných výrazů.
- API vrací jen přepis. Neshrnuje. Pokud chceš nad přepisem shrnutí, časové značky a chat, udělá to shrnovač YouTube a nástroj pro přepisy je verze bez kódu pro jedno video.
- Oficiální YouTube Data API tady není náhrada. Jeho metoda stahování titulků vyžaduje oprávnění upravovat video, takže je určena pro tvoje vlastní videa (dokumentace Google).
Zdroje
Často kladené otázky
Mohu získat přepis z YouTube bez oficiálního YouTube Data API?
Ano. API pro přepisy sum.video přijme URL nebo ID videa a vrátí existující titulky, bez potřeby projektu v Google Cloud. Metoda stahování titulků od Googlu vyžaduje oprávnění upravovat video, takže se hodí jen pro tvoje vlastní videa.
Přepisuje API videa bez titulků?
Ne. Vrací existující titulky z YouTube, ruční nebo automaticky vytvořené. Videa bez titulků, živá vysílání, soukromá a odstraněná videa vrací 404 no_transcript a takový požadavek nestojí nic.
Kolik stojí jeden přepis?
2 kredity za přepis. Balíčky se pohybují od 100 kreditů za $4.49 ($0.090 za přepis) do 5,000 kreditů za $74.99 ($0.030 za přepis) a kredity nikdy nevyprší.
Jaké formáty výstupu jsou k dispozici?
json (segmenty s offset a duration v sekundách), text a srt. Nastav pole format v požadavku.
Jak to vyzkouším zdarma?
První klíč API přichází s 10 kredity zdarma, což je 5 přepisů. Předplatitelé Pro navíc dostávají každý měsíc 100 bonusových kreditů.
Související články
Přepisy z YouTube pro aplikaci RAG ve velkém měřítku: kredity, automatické dobíjení a rozpočtyVývojářka načítá 10 000 videí z YouTube do aplikace RAG. Podívej se na náklady, výpočet limitu četnosti a na to, jak automatické dobíjení a rozpočty drží výdaje předvídatelné.
Nejlepší API pro přepisy z YouTube ve srovnání: sum.video, Supadata, Transcribr a knihovna pro PythonČtyři způsoby, jak získat přepisy z YouTube v kódu, srovnané podle ceny, limitů a spolehlivosti: sum.video, Supadata, Transcribr a youtube-transcript-api.
Nejnovější příspěvky
Přepisy z YouTube pro aplikaci RAG ve velkém měřítku: kredity, automatické dobíjení a rozpočtyVývojářka načítá 10 000 videí z YouTube do aplikace RAG. Podívej se na náklady, výpočet limitu četnosti a na to, jak automatické dobíjení a rozpočty drží výdaje předvídatelné.
Nejlepší API pro přepisy z YouTube ve srovnání: sum.video, Supadata, Transcribr a knihovna pro PythonČtyři způsoby, jak získat přepisy z YouTube v kódu, srovnané podle ceny, limitů a spolehlivosti: sum.video, Supadata, Transcribr a youtube-transcript-api.