PamācībasAutors Péter Nagy

Kā iegūt YouTube transkriptu ar API (curl, Python, JavaScript)

Iegūsti jebkura publiska YouTube video transkriptu ar vienu HTTP pieprasījumu. Darbojoši curl, Python un JavaScript piemēri, izvades formāti, kļūdu kodi un izmaksas.

Apkopot YouTube video tagad

Ielīmē saiti un iegūsti galvenos punktus ar klikšķināmiem laika zīmogiem.

Lai iegūtu YouTube transkriptu ar API, nosūti vienu HTTP pieprasījumu ar video URL vai ID un API atslēgu, bet transkriptu izlasi no atbildes. Šajā pamācībā pieprasījums parādīts curl, Python un JavaScript, izmantojot sum.video Transcript API, un pēc tam aplūkoti formāti, kļūdas un izmaksas.

Ko API atgriež

Galapunkts atgriež publiska YouTube video esošos subtitrus, vai nu autora rakstītos, vai YouTube automātiski izveidotos. Tas netranskribē audio. Ja videoklipam nav subtitru, tu saņem kļūdu, nevis minējumu (vairāk zemāk).

Pamati:

  • Galapunkts: POST https://sum.video/api/v1/transcript (darbojas arī GET)
  • Autentifikācija: tava atslēga galvenē X-API-Key vai Authorization: Bearer <key>
  • Ievade: url vai video_id
  • Neobligāts lang (noklusējums en)
  • Neobligāts format: json, text vai srt

Atbilde arī norāda subtitru ieraksta reālo valodu un to, vai tas ir izveidots automātiski, lai tu zinātu, kādu kvalitāti gaidīt.

1. solis: izveido API atslēgu

Piesakies un izveido atslēgu API informācijas panelī (/dashboard/api vietnē sum.video). Vari turēt līdz 5 aktīvām atslēgām, kas ērti, lai atdalītu testa atslēgu no ražošanas atslēgas. Tava pirmā atslēga nāk ar 10 bezmaksas kredītiem, kas pietiek 5 transkriptiem, tāpēc visu tālāk minēto vari izmēģināt bez izmaksām.

Apkopot YouTube video tagad

Ielīmē saiti un iegūsti galvenos punktus ar klikšķināmiem laika zīmogiem.

2. solis: nosūti pirmo pieprasījumu

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"}'

Tā kā darbojas arī GET, vari testēt no skripta, kas tikai veido URL. Atslēgu labāk nodot galvenē, lai tā neiekļūtu žurnālos.

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+ vai pārlūkprogramma)

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

Glabā atslēgu serverī. Pārlūkprogrammas kodā ievietotu atslēgu var nokopēt ikviens, kas atver izstrādātāja rīkus.

3. solis: izvēlies pareizo formātu

Formāts Ko tu saņem Vislabāk piemērots
json Segmenti, katrs ar offset un duration sekundēs Laika zīmogiem, saitēm uz konkrētu brīdi, dalīšanai pēc laika
text Vienkāršs transkripts Uzvednēm, meklēšanas indeksiem, kopsavilkumiem
srt Subtitru faila saturs Video redaktoriem, subtitru rīkiem

Ja plāno veidot saiti uz konkrētu video brīdi, izmanto json un saiti veido no segmenta offset. LLM barošanai text ir mazāks un vienkāršāks. Ja vēlāk gribēsi meklēt transkriptā ar roku, skaties kā meklēt YouTube video transkriptā.

4. solis: izvēlies valodu

lang pēc noklusējuma ir en. Iestati to uz vēlamo valodu, piemēram, de vai es. Atbilde ziņo par patiešām atgrieztā ieraksta valodu, tāpēc pārbaudi to, nevis pieņem. Videoklipam bieži ir tikai viens subtitru ieraksts, un API atgriež īstus subtitrus, tāpēc tas tos tavā vietā netulko.

5. solis: apstrādā kļūdas

Plāno šos gadījumus jau no pirmās dienas:

  • 404 no_transcript: videoklipam nav subtitru, vai arī tā ir tiešraide, privāts vai noņemts videoklips. Atkārtot nav ko. Izlaid to vai palūdz lietotājam citu videoklipu.
  • 402 budget_exceeded: esi sasniedzis iestatīto mēneša kredītu limitu. Skaties nākamo sadaļu.
  • Pieprasījumu ierobežojums: katra atslēga atļauj 60 pieprasījumus minūtē. Izkliedē pakešu darbus un palēnini, kad tevi ierobežo.
  • Kļūmes mūsu pusē: mēģini vēlreiz pēc īsas pauzes. Tās nemaksā neko.

Vienkāršs cikls, kas atkārto servera kļūdu gadījumā un izlaiž 404 gadījumā, aptver lielāko daļu ražošanas vajadzību.

Cik tas maksā

Katrs transkripts maksā 2 kredītus. Pieprasījumi, kas neatgriež transkriptu vai neizdodas sum.video pusē, nemaksā neko, tāpēc 404 nekad neiztukšo tavu atlikumu. Atlikumu vari apskatīt ar GET /api/v1/credits.

Kredīti tiek pārdoti vienreizējās pakās, kuru derīgums nekad nebeidzas:

Pakā Cena Par transkriptu
100 kredīti $4.49 $0.090
500 kredīti $13.99 $0.056
2,000 kredīti $37.99 $0.038
5,000 kredīti $74.99 $0.030

Pro abonenti ik mēnesi saņem arī 100 bonusa kredītus. Smagākam darbam, piemēram, veselu kanālu ielādei, izlasi scenāriju YouTube transkripti RAG lietotnei lielā mērogā, kurā aplūkota automātiskā papildināšana un budžeti. Skaties arī cenas.

Ierobežojumi, kas jāzina pirms būvēšanas

  • Darbojas tikai video ar subtitriem. Tas ir galvenais 404 no_transcript iemesls.
  • Automātiski izveidotos subtitros var būt kļūdas, īpaši vārdos, akcentos un tehniskos terminos.
  • API atgriež tikai transkriptu. Tas neveido kopsavilkumus. Ja vēlies kopsavilkumus, laika zīmogus un tērzēšanu virs transkripta, to dara YouTube kopsavilkuma veidotājs, bet transkriptu rīks ir versija bez koda vienam video.
  • Oficiālais YouTube Data API šeit nav aizstājējs. Tā subtitru lejupielādes metodei nepieciešama atļauja rediģēt video, tāpēc tā paredzēta taviem pašu video (Google dokumentācija).

Avoti

Bieži uzdotie jautājumi

Vai es varu iegūt YouTube transkriptu bez oficiālā YouTube Data API?

Jā. sum.video Transcript API pieņem video URL vai ID un atgriež esošos subtitrus, un Google Cloud projekts nav vajadzīgs. Paša Google subtitru lejupielādes metodei nepieciešama atļauja rediģēt video, tāpēc tā der tikai taviem pašu video.

Vai API transkribē video, kuriem nav subtitru?

Nē. Tas atgriež esošos YouTube subtitrus, rokām rakstītus vai automātiski izveidotus. Video bez subtitriem, tiešraides, privāti un noņemti video atgriež 404 no_transcript, un šis pieprasījums nemaksā neko.

Cik maksā viens transkripts?

2 kredīti par transkriptu. Pakas ir no 100 kredītiem par $4.49 ($0.090 par transkriptu) līdz 5,000 kredītiem par $74.99 ($0.030 par transkriptu), un kredīti nekad nebeidzas.

Kādi izvades formāti ir pieejami?

json (segmenti ar offset un duration sekundēs), text un srt. Iestati lauku format pieprasījumā.

Kā to izmēģināt bez maksas?

Tava pirmā API atslēga nāk ar 10 bezmaksas kredītiem, tas ir 5 transkripti. Pro abonenti papildus ik mēnesi saņem 100 bonusa kredītus.

Apkopot YouTube video tagad

Ielīmē saiti un iegūsti galvenos punktus ar klikšķināmiem laika zīmogiem.

youtube transkriptu apiapi pamācībapythonjavascriptcurl

Saistītā lasāmviela

Jaunākās ziņas

Apkopot jebkuru YouTube video dažu sekunžu laikā

Izmēģini sum.video