PrůvodciAutor Péter Nagy

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.

Shrňte YouTube video hned teď

Vložte odkaz a získejte klíčové body s klikatelnými časovými značkami.

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 i GET)
  • Ověření: tvůj klíč v hlavičce X-API-Key nebo Authorization: Bearer <key>
  • Vstup: url nebo video_id
  • Volitelné lang (výchozí en)
  • Volitelné format: json, text nebo srt

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ů.

Shrňte YouTube video hned teď

Vložte odkaz a získejte klíčové body s klikatelnými časovými značkami.

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ů.

Shrňte YouTube video hned teď

Vložte odkaz a získejte klíčové body s klikatelnými časovými značkami.

api pro přepisy youtubenávod k apipythonjavascriptcurl

Související články

Nejnovější příspěvky

Shrňte jakékoli YouTube video během několika sekund

Vyzkoušejte sum.video