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

За да добиеш транскрипт од 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 транскрипти, па сè подолу можеш да го пробаш без трошок.
Чекор 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 бонус кредити секој месец.
Поврзани написи
Најдобрите API за транскрипти од YouTube во споредба: sum.video, Supadata, Transcribr и библиотеката за PythonЧетири начини да добиеш транскрипти од YouTube во код, споредени според цена, ограничувања и доверливост: sum.video, Supadata, Transcribr и youtube-transcript-api.
Транскрипти од YouTube за RAG апликација во голем обем: кредити, автоматско дополнување и буџетиПрограмерка вчитува 10.000 видеа од YouTube во RAG апликација. Погледни го трошокот, ограничувањето на брзината и како автоматското дополнување и буџетите го прават трошењето предвидливо.
Најнови објави
Најдобрите API за транскрипти од YouTube во споредба: sum.video, Supadata, Transcribr и библиотеката за PythonЧетири начини да добиеш транскрипти од YouTube во код, споредени според цена, ограничувања и доверливост: sum.video, Supadata, Transcribr и youtube-transcript-api.
Транскрипти од YouTube за RAG апликација во голем обем: кредити, автоматско дополнување и буџетиПрограмерка вчитува 10.000 видеа од YouTube во RAG апликација. Погледни го трошокот, ограничувањето на брзината и како автоматското дополнување и буџетите го прават трошењето предвидливо.