ВодичиОд Péter Nagy

Како да добиеш транскрипт од YouTube со API (curl, Python, JavaScript)

Добиј транскрипт од кое било јавно видео на YouTube со едно HTTP барање. Работни примери во curl, Python и JavaScript, формати на излез, кодови за грешки и трошоци.

Сумирај YouTube видео сега

Залепи линк и добиј ги клучните точки со кликабилни временски ознаки.

За да добиеш транскрипт од YouTube со API, испрати едно HTTP барање со URL или ID на видеото и API клуч, а транскриптот прочитај го од одговорот. Овој водич го покажува барањето во curl, Python и JavaScript со Transcript API на sum.video, а потоа ги разгледува форматите, грешките и трошоците.

Што враќа API

Крајната точка ги враќа постоечките титлови на јавно видео на YouTube, без разлика дали ги напишал создавачот или YouTube ги создал автоматски. Не го транскрибира звукот. Ако видеото нема титлови, добиваш грешка наместо претпоставка (повеќе подолу).

Основите:

  • Крајна точка: POST https://sum.video/api/v1/transcript (работи и GET)
  • Автентикација: твојот клуч во заглавието X-API-Key или Authorization: Bearer <key>
  • Влез: url или video_id
  • Незадолжителен lang (стандардно en)
  • Незадолжителен format: json, text или srt

Одговорот го кажува и вистинскиот јазик на титл-патеката и дали е создадена автоматски, па знаеш каков квалитет да очекуваш.

Чекор 1: Создај API клуч

Најави се и создај клуч во API таблата (/dashboard/api на sum.video). Можеш да имаш до 5 активни клучеви, што е практично за одвојување на тестен од производен клуч. Твојот прв клуч доаѓа со 10 бесплатни кредити, доволни за 5 транскрипти, па сè подолу можеш да го пробаш без трошок.

Сумирај YouTube видео сега

Залепи линк и добиј ги клучните точки со кликабилни временски ознаки.

Чекор 2: Испрати го првото барање

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

Бидејќи работи и GET, можеш да тестираш од скрипта што само составува URL-а. Подобро е клучот да го пратиш во заглавие за да не заврши во дневниците.

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+ или прелистувач)

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

Чувај го клучот на сервер. Клуч во кодот на прелистувачот може да го копира секој што ќе ги отвори алатките за програмери.

Чекор 3: Избери го вистинскиот формат

Формат Што добиваш Најдобро за
json Сегменти, секој со offset и duration во секунди Временски ознаки, врски до одреден момент, делење според време
text Обичен транскрипт Промпти, индекси за пребарување, резимеа
srt Содржина на датотека со титлови Уредувачи на видео, алатки за титлови

Ако планираш да поврзуваш до момент во видеото, користи json и врската состави ја од offset на сегментот. За хранење на LLM, text е помал и поедноставен. Ако подоцна сакаш рачно да бараш во транскрипт, види како да пребаруваш во транскриптот на видео од YouTube.

Чекор 4: Избери јазик

lang е стандардно en. Постави го на јазикот што го сакаш, на пример de или es. Одговорот го кажува јазикот на патеката што навистина е вратена, па провери го наместо да претпоставуваш. Видеото често има само една титл-патека, а API враќа вистински титлови, па не ги преведува за тебе.

Чекор 5: Справи се со грешките

Планирај ги овие случаи од првиот ден:

  • 404 no_transcript: видеото нема титлови или е пренос во живо, приватно или отстрането видео. Нема што да се повтори. Прескокни го или побарај друго видео од корисникот.
  • 402 budget_exceeded: го достигна месечниот лимит на кредити што го постави. Види го следниот дел.
  • Ограничување на брзината: секој клуч дозволува 60 барања во минута. Распредели ги групните работи и забави кога ќе те ограничат.
  • Дефекти од наша страна: обиди се повторно по кратка пауза. Не чинат ништо.

Едноставна јамка што повторува при грешки на серверот и прескокнува при 404 ги покрива повеќето производни потреби.

Колку чини

Секој транскрипт чини 2 кредити. Барањата што не враќаат транскрипт или не успеваат од страна на sum.video не чинат ништо, па 404 никогаш не ти го празни салдото. Салдото можеш да го видиш со GET /api/v1/credits.

Кредитите се продаваат во еднократни пакети што никогаш не истекуваат:

Пакет Цена По транскрипт
100 кредити $4.49 $0.090
500 кредити $13.99 $0.056
2,000 кредити $37.99 $0.038
5,000 кредити $74.99 $0.030

Претплатниците на Pro добиваат и 100 бонус кредити секој месец. За потешки задачи, како вчитување на цел канал, прочитај го сценариото транскрипти од YouTube за RAG апликација во голем обем, што го опфаќа автоматското дополнување и буџетите. Види ги и цените.

Ограничувања што треба да ги знаеш пред да градиш

  • Работат само видеа со титлови. Тоа е главната причина за 404 no_transcript.
  • Автоматски создадените титлови може да содржат грешки, особено кај имиња, акценти и технички термини.
  • API го враќа само транскриптот. Не прави резиме. Ако сакаш резимеа, временски ознаки и разговор врз транскрипт, тоа го прави резимерот за YouTube, а алатката за транскрипти е верзија без код за едно видео.
  • Официјалниот YouTube Data API тука не е замена. Неговиот метод за преземање титлови бара дозвола за уредување на видеото, па е наменет за твоите сопствени видеа (документација на Google).

Извори

Често поставувани прашања

Можам ли да добијам транскрипт од YouTube без официјалниот YouTube Data API?

Да. Transcript API на sum.video прима URL или ID на видео и ги враќа постоечките титлови, без потреба од проект на Google Cloud. Методот на самиот Google за преземање титлови бара дозвола за уредување на видеото, па е погоден само за твоите сопствени видеа.

Дали API транскрибира видеа што немаат титлови?

Не. Ги враќа постоечките титлови од YouTube, рачно напишани или автоматски создадени. Видеа без титлови, преноси во живо, приватни и отстранети видеа враќаат 404 no_transcript, а тоа барање не чини ништо.

Колку чини еден транскрипт?

2 кредити по транскрипт. Пакетите одат од 100 кредити за $4.49 ($0.090 по транскрипт) до 5,000 кредити за $74.99 ($0.030 по транскрипт), а кредитите никогаш не истекуваат.

Кои формати на излез се достапни?

json (сегменти со offset и duration во секунди), text и srt. Постави го полето format во барањето.

Како да го пробам бесплатно?

Твојот прв API клуч доаѓа со 10 бесплатни кредити, односно 5 транскрипти. Претплатниците на Pro дополнително добиваат 100 бонус кредити секој месец.

Сумирај YouTube видео сега

Залепи линк и добиј ги клучните точки со кликабилни временски ознаки.

youtube транскрипт apiводич за apipythonjavascriptcurl

Поврзани написи

Најнови објави

Сумирај кое било YouTube видео за секунди

Пробај sum.video