YouTube Transcript API
Один запрос, и у вас полный транскрипт. Платите только за видео, которые получаете.
Получить бесплатный API-ключБыстрый старт
- Войдите и создайте API-ключ в панели API. Вы получите 10 бесплатных кредитов (5 транскриптов).
- Передайте ключ в заголовке X-API-Key вместе со ссылкой на YouTube или ID видео.
- Купите пакет кредитов, когда нужно больше, или включите автопополнение.
curl -X POST https://sum.video/api/v1/transcript \
-H "X-API-Key: sv_live_your_key" \
-H "Content-Type: application/json" \
-d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "lang": "en"}'Запрос
POST /api/v1/transcript
url: Ссылка на YouTube (watch, youtu.be, shorts, embed или live). Используйте её или video_id.video_id: 11-символьный ID видео на YouTube.lang: Желаемый язык субтитров, например en, de или pt-BR. По умолчанию en. Если такого языка нет, возвращается исходная дорожка, а ответ сообщает её настоящий язык.format: json (сегменты с временными метками, по умолчанию), text или srt.
import requests
response = requests.post(
"https://sum.video/api/v1/transcript",
headers={"X-API-Key": "sv_live_your_key"},
json={"video_id": "dQw4w9WgXcQ", "lang": "en", "format": "text"},
timeout=120,
)
print(response.json()["text"])const response = 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({ url: "https://youtu.be/dQw4w9WgXcQ" }),
});
const { segments, credits_remaining } = await response.json();Ответ
{
"video_id": "dQw4w9WgXcQ",
"language": "en",
"is_generated": false,
"credits_used": 2,
"credits_remaining": 98,
"segments": [
{ "text": "We're no strangers to love", "offset": 18.64, "duration": 3.24 }
]
}Ошибки
| 401 | invalid_key | API-ключ отсутствует, неверен или отозван. |
| 400 | invalid_input | Не удалось распознать ссылку или ID видео. |
| 402 | insufficient_credits | На балансе меньше 2 кредитов. |
| 402 | budget_exceeded | Вы достигли установленного вами месячного лимита кредитов. |
| 404 | no_transcript | У видео нет субтитров, или оно приватное, идёт в эфире или удалено. Не списывается. |
| 429 | rate_limited | Более 60 запросов в минуту на один ключ. Подождите столько секунд, сколько указано в Retry-After. |
| 502 | upstream_error | YouTube не ответил вовремя. Не списывается, повторите позже. |
Проверить баланс
curl https://sum.video/api/v1/credits -H "X-API-Key: sv_live_your_key"Цены
Каждый транскрипт стоит 2 кредита. Кредиты не сгорают. Подписчики Pro получают 100 бонусных кредитов каждый месяц.
| Пакет | Кредиты | Транскрипты | Цена | За транскрипт |
|---|---|---|---|---|
| Starter | 100 | 50 | 4,49 $ | 0,090 $ |
| Pro | 500 | 250 | 13,99 $ | 0,056 $ |
| Scale | 2 000 | 1 000 | 37,99 $ | 0,038 $ |
| Business | 5 000 | 2 500 | 74,99 $ | 0,030 $ |
Автопополнение, бюджеты и уведомления
- Автопополнение покупает пакет с сохранённой карты, когда баланс опускается ниже выбранного вами порога.
- Месячный бюджет пополнений ограничивает, сколько может потратить автопополнение, а месячный лимит кредитов останавливает запросы при его достижении.
- Уведомления по почте сообщат, когда баланс заканчивается, когда вы достигли 80% месячного лимита или когда пополнение не удалось.
Лимиты и честное использование
60 запросов в минуту на ключ, до 5 активных ключей на аккаунт. API возвращает субтитры, которые уже есть на YouTube; аудио он не расшифровывает. Вы несёте ответственность за использование транскриптов с соблюдением прав владельцев видео и условий YouTube.
Частые вопросы
- Плачу ли я снова за то же видео?
- Да, каждый успешный запрос стоит 2 кредита, но повторные видео отдаются из нашего кэша за миллисекунды.
- Что будет, если у видео нет субтитров?
- Вы получите ошибку no_transcript, и кредиты не спишутся.
- Совместим ли он с другими API транскриптов?
- Запрос и ответ используют привычную структуру url, lang и segments, поэтому переход обычно сводится к смене базового URL и ключа.