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

Да би добио транскрипт YouTube видеа помоћу API-ја, пошаљи HTTP захтев са URL-ом или ID-ом видеа и API кључем, а транскрипт прочитај из одговора. Овај водич приказује захтев у curl-у, Python-у и JavaScript-у уз sum.video API за транскрипте, а затим објашњава формате, грешке и цену.
Шта 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-ја?
Да. sum.video API за транскрипте прима 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 транскрипти за 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 апликацију. Погледај трошак, рачуницу ограничења брзине и како аутоматско допуњавање и буџети одржавају потрошњу предвидивом.
Најбољи API-ји за YouTube транскрипте упоређени: sum.video, Supadata, Transcribr и Python библиотекаЧетири начина да добијеш YouTube транскрипте у коду, упоређена по цени, ограничењима и поузданости: sum.video, Supadata, Transcribr и youtube-transcript-api.