Youtube-Transcript-API
Youtube-Transcript-Dev/Youtube-Transcript-APIAPI для массового извлечения, транскрибации и перевода контента YouTube. Поддерживает субтитры, аудиотранскрипцию (ASR), пакетную обработку до 100 видео и более 100 языков. Подходит для AI-разработчиков и data-инженеров.
Установка
npm install youtube-audio-transcript-apiREADME
Почему YouTubeTranscript.dev?
Большинство инструментов для работы с субтитрами YouTube ломаются, когда у видео нет субтитров. Наш — нет. API извлекает существующие субтитры и транскрибирует напрямую из аудио с помощью AI-распознавания речи — охватывая 100% видео на YouTube.
- ⚡ Молниеносная скорость — кэшированные транскрипты возвращаются менее чем за 2 секунды
- 🎙 Аудиотранскрипция (ASR) — нет субтитров? Транскрибируем из аудиодорожки
- 🌍 100+ языков — мультиязычная поддержка с переводом по запросу
- 📤 Несколько форматов — временны́е метки, абзацы, пословный вывод
- 📚 Пакетная обработка — до 100 видео за один запрос
- 🔔 Вебхуки — асинхронная обработка с доставкой на ваш эндпоинт
- 💰 Предсказуемые тарифы — 1 кредит за транскрипт, никаких сюрпризов
- 🔒 Готово для продакшена — SLA с аптаймом 99.9%
→ Получить бесплатный API-ключ
Обзор API V2
V2 — это упрощённая модель транскриптов, принадлежащих пользователю. Приоритет отдаётся быстрым попаданиям в кэш, согласованным ответам и отсутствию неожиданных переводов, если вы явно не запросили конкретный язык.
Как работает V2
- Проверка ваших транскриптов (0 кредитов) — если вы уже получали транскрипт, он бесплатен
- Получение субтитров (1 кредит) — если транскрипт ещё не получен
- Перевод (1 кредит за 2 500 символов) — только при явном запросе конкретного языка
- ASR-транскрипция (1 кредит за 90 секунд) — асинхронно через вебхук, для видео без субтитров
Эндпоинты
| Метод | Эндпоинт | Описание |
|---|---|---|
POST | /api/v2/transcribe | Извлечь транскрипт одного видео |
POST | /api/v2/batch | Извлечь транскрипты до 100 видео |
GET | /api/v2/jobs/{job_id} | Проверить статус ASR-задачи |
GET | /api/v2/batch/{batch_id} | Проверить статус пакетного запроса |
Стоимость в кредитах
| Метод | Стоимость | Скорость | Примечания |
|---|---|---|---|
| Нативные субтитры | 1 кредит | 5–10 секунд | Лучшее качество, точный язык |
| Перевод | 1 кредит за 2 500 символов | 5–10 секунд | Только при запросе language |
| ASR (аудио) | 1 кредит за 90 секунд | 2–20 минут | Асинхронно через вебхук |
Быстрый старт
1. Получите API-ключ
Зарегистрируйтесь на youtubetranscript.dev и получите API-ключ в Dashboard.
2. Извлечение транскрипта
curl -X POST https://youtubetranscript.dev/api/v2/transcribe \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"video": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"}'3. С параметрами
curl -X POST https://youtubetranscript.dev/api/v2/transcribe \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video": "dQw4w9WgXcQ",
"language": "es",
"format": "timestamp"
}'4. Пакетный запрос (до 100 видео)
curl -X POST https://youtubetranscript.dev/api/v2/batch \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video_ids": [
"dQw4w9WgXcQ",
"https://www.youtube.com/watch?v=VIDEO_ID_2",
"VIDEO_ID_3"
]
}'5. ASR с вебхуком (видео без субтитров)
curl -X POST https://youtubetranscript.dev/api/v2/transcribe \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video": "VIDEO_ID",
"source": "asr",
"webhook_url": "https://yoursite.com/webhook"
}'Возвращает ответ немедленно со статусом status: "processing". Результаты доставляются на вебхук по готовности.
Справочник запросов
Заголовки
| Заголовок | Обязателен | Значение |
|---|---|---|
Authorization | Да | Bearer YOUR_API_KEY |
Content-Type | Да | application/json |
Поля запроса
| Поле | Обязателен | Описание |
|---|---|---|
video | Да (одиночный) | URL YouTube или 11-символьный ID видео |
video_ids | Да (пакетный) | Массив ID или URL. До 100 за запрос |
language | Нет | Код ISO 639-1 (например, "es", "fr"). Не указывайте, чтобы получить лучший доступный вариант без перевода |
source | Нет | auto (по умолчанию), manual или asr |
format | Нет | timestamp, paragraphs или words |
webhook_url | Нет | URL для асинхронной доставки. Обязателен при source="asr" |
Поведение вебхуков
- Запросы с
webhook_urlвозвращают ответ немедленно со статусомstatus: "processing" - Пакетные запросы немедленно возвращают кэшированные результаты и ставят в очередь только отсутствующие элементы