Як атрымаць транскрыпт YouTube праз API (curl, Python, JavaScript)
Атрымай транскрыпт любога публічнага відэа YouTube адным HTTP-запытам. Працоўныя прыклады на curl, Python і JavaScript, фарматы, коды памылак і кошт.

Каб атрымаць транскрыпт YouTube праз API, адправі адзін HTTP-запыт з URL або ідэнтыфікатарам відэа і ключом API, а транскрыпт прачытай з адказу. Гэты дапаможнік паказвае запыт на curl, Python і JavaScript праз 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?
Так. API транскрыптаў sum.video прымае URL або ідэнтыфікатар відэа і вяртае існуючыя субцітры, праект 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.