NavodilaAvtor Péter Nagy

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.

Povzemi videoposnetek YouTube zdaj

Prilepi povezavo in dobi ključne točke s klikljivimi časovnimi žigi.

Č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 tudi GET)
  • Overjanje: tvoj ključ v glavi X-API-Key ali Authorization: Bearer <key>
  • Vhod: url ali video_id
  • Neobvezen lang (privzeto en)
  • Neobvezen format: json, text ali srt

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.

Povzemi videoposnetek YouTube zdaj

Prilepi povezavo in dobi ključne točke s klikljivimi časovnimi žigi.

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.

Povzemi videoposnetek YouTube zdaj

Prilepi povezavo in dobi ključne točke s klikljivimi časovnimi žigi.

api za prepise youtubevodnik za apipythonjavascriptcurl

Povezano branje

Najnovejše objave

Povzemi kateri koli videoposnetek YouTube v nekaj sekundah

Preizkusi sum.video