GidaiAutorius Péter Nagy

Kaip gauti „YouTube“ transkripciją naudojant API (curl, Python, JavaScript)

Gauk bet kurio viešo „YouTube“ vaizdo įrašo transkripciją viena HTTP užklausa. Veikiantys curl, Python ir JavaScript pavyzdžiai, išvesties formatai, klaidų kodai ir kaina.

Apibendrink „YouTube“ vaizdo įrašą dabar

Įklijuok nuorodą ir gauk esminius punktus su spustelėjamomis laiko žymomis.

Norėdamas gauti „YouTube“ transkripciją per API, išsiųsk vieną HTTP užklausą su vaizdo įrašo URL arba ID ir API raktu, o transkripciją perskaityk iš atsakymo. Šis vadovas rodo užklausą curl, Python ir JavaScript kalbomis naudojant „sum.video“ Transcript API, o tada aptaria formatus, klaidas ir kainą.

Ką grąžina API

Galinis taškas grąžina viešo „YouTube“ vaizdo įrašo esamus subtitrus, ar juos parašė kūrėjas, ar „YouTube“ sugeneravo automatiškai. Jis netranskribuoja garso. Jei vaizdo įrašas neturi subtitrų, vietoj spėjimo gausi klaidą (daugiau žemiau).

Pagrindai:

  • Galinis taškas: POST https://sum.video/api/v1/transcript (veikia ir GET)
  • Autentifikavimas: tavo raktas antraštėje X-API-Key arba Authorization: Bearer <key>
  • Įvestis: url arba video_id
  • Neprivalomas lang (numatytasis en)
  • Neprivalomas format: json, text arba srt

Atsakyme taip pat nurodoma tikroji subtitrų takelio kalba ir ar jis sugeneruotas automatiškai, taigi žinai, kokios kokybės tikėtis.

1 žingsnis: sukurk API raktą

Prisijunk ir sukurk raktą API skydelyje (/dashboard/api svetainėje „sum.video“). Gali turėti iki 5 aktyvių raktų, o tai patogu norint atskirti testavimo raktą nuo gamybinio. Pirmasis tavo raktas ateina su 10 nemokamų kreditų, to pakanka 5 transkripcijoms, todėl viską žemiau gali išbandyti be išlaidų.

Apibendrink „YouTube“ vaizdo įrašą dabar

Įklijuok nuorodą ir gauk esminius punktus su spustelėjamomis laiko žymomis.

2 žingsnis: išsiųsk pirmąją užklausą

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

Kadangi veikia ir GET, gali bandyti iš skripto, kuris tik sudaro URL. Raktą geriau perduoti antraštėje, kad jis nepatektų į žurnalus.

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+“ arba naršyklė)

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

Laikyk raktą serveryje. Naršyklės kode esantį raktą gali nukopijuoti kiekvienas, kas atidaro kūrėjo įrankius.

3 žingsnis: pasirink tinkamą formatą

Formatas Ką gauni Geriausia
json Segmentai, kiekvienas su offset ir duration sekundėmis Laiko žymoms, nuorodoms į konkretų momentą, skaidymui pagal laiką
text Paprasta transkripcija Užklausoms, paieškos indeksams, santraukoms
srt Subtitrų failo turinys Vaizdo įrašų redaktoriams, subtitrų įrankiams

Jei planuoji pateikti nuorodą į konkretų vaizdo įrašo momentą, naudok json ir nuorodą sudaryk iš segmento offset. LLM maitinti text mažesnis ir paprastesnis. Jei vėliau norėsi rankiniu būdu ieškoti transkripcijoje, žr. kaip ieškoti „YouTube“ vaizdo įrašo transkripcijoje.

4 žingsnis: pasirink kalbą

lang pagal numatymą yra en. Nustatyk norimą kalbą, pavyzdžiui, de arba es. Atsakyme nurodoma iš tikrųjų grąžinto takelio kalba, todėl ją patikrink, o ne spėk. Vaizdo įrašas dažnai turi tik vieną subtitrų takelį, o API grąžina tikrus subtitrus, taigi jų tavo vietoje neišverčia.

5 žingsnis: tvarkyk klaidas

Numatyk šiuos atvejus nuo pat pirmos dienos:

  • 404 no_transcript: vaizdo įrašas neturi subtitrų arba tai tiesioginė transliacija, privatus ar pašalintas vaizdo įrašas. Kartoti nėra ko. Praleisk jį arba paprašyk naudotojo kito vaizdo įrašo.
  • 402 budget_exceeded: pasiekei nustatytą mėnesio kreditų limitą. Žr. kitą skyrių.
  • Užklausų riba: kiekvienas raktas leidžia 60 užklausų per minutę. Paskirstyk paketinius darbus ir sulėtink, kai apribojama.
  • Gedimai mūsų pusėje: bandyk dar kartą po trumpos pauzės. Jie nieko nekainuoja.

Paprastas ciklas, kuris kartoja esant serverio klaidoms ir praleidžia esant 404, padengia daugumą gamybos poreikių.

Kiek tai kainuoja

Kiekviena transkripcija kainuoja 2 kreditus. Užklausos, kurios negrąžina transkripcijos arba nepavyksta „sum.video“ pusėje, nieko nekainuoja, todėl 404 niekada neištuština tavo likučio. Likutį gali pamatyti su GET /api/v1/credits.

Kreditai parduodami vienkartiniais paketais, kurie niekada nebesibaigia:

Paketas Kaina Už transkripciją
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

„Pro“ prenumeratoriai kas mėnesį gauna ir 100 papildomų kreditų. Sunkesniam darbui, pavyzdžiui, visam kanalui įkelti, perskaityk scenarijų „YouTube“ transkripcijos RAG programai dideliu mastu, kuriame aptariamas automatinis papildymas ir biudžetai. Taip pat žr. kainas.

Apribojimai, kuriuos verta žinoti prieš kuriant

  • Veikia tik vaizdo įrašai su subtitrais. Tai pagrindinė 404 no_transcript priežastis.
  • Automatiškai sugeneruotuose subtitruose gali būti klaidų, ypač su vardais, akcentais ir techniniais terminais.
  • API grąžina tik transkripciją. Jis nesudaro santraukų. Jei nori santraukų, laiko žymų ir pokalbio virš transkripcijos, tai daro „YouTube“ santraukų kūrėjas, o transkripcijos įrankis yra versija be kodo vienam vaizdo įrašui.
  • Oficialus „YouTube Data API“ čia nėra pakaitalas. Jo subtitrų atsisiuntimo metodas reikalauja leidimo redaguoti vaizdo įrašą, todėl skirtas tavo paties vaizdo įrašams („Google“ dokumentacija).

Šaltiniai

Dažniausiai užduodami klausimai

Ar galiu gauti „YouTube“ transkripciją be oficialaus „YouTube Data API“?

Taip. „sum.video“ Transcript API priima vaizdo įrašo URL arba ID ir grąžina esamus subtitrus, nereikalaudamas „Google Cloud“ projekto. Paties „Google“ subtitrų atsisiuntimo metodas reikalauja leidimo redaguoti vaizdo įrašą, todėl tinka tik tavo paties vaizdo įrašams.

Ar API transkribuoja vaizdo įrašus, neturinčius subtitrų?

Ne. Jis grąžina esamus „YouTube“ subtitrus, rašytus rankomis arba sugeneruotus automatiškai. Vaizdo įrašai be subtitrų, tiesioginės transliacijos, privatūs ir pašalinti vaizdo įrašai grąžina 404 no_transcript, ir ta užklausa nieko nekainuoja.

Kiek kainuoja viena transkripcija?

2 kreditai už transkripciją. Paketai prasideda nuo 100 kreditų už $4.49 ($0.090 už transkripciją) iki 5,000 kreditų už $74.99 ($0.030 už transkripciją), o kreditai niekada nebesibaigia.

Kokie išvesties formatai galimi?

json (segmentai su offset ir duration sekundėmis), text ir srt. Nustatyk lauką format užklausoje.

Kaip tai išbandyti nemokamai?

Pirmasis tavo API raktas ateina su 10 nemokamų kreditų, tai yra 5 transkripcijos. „Pro“ prenumeratoriai papildomai kas mėnesį gauna 100 papildomų kreditų.

Apibendrink „YouTube“ vaizdo įrašą dabar

Įklijuok nuorodą ir gauk esminius punktus su spustelėjamomis laiko žymomis.

youtube transkripcijos apiapi vadovaspythonjavascriptcurl

Susiję skaitiniai

Naujausi įrašai

Apibendrink bet kurį „YouTube“ vaizdo įrašą per kelias sekundes

Išbandyk sum.video