~/social/youtube-transcript-scraper

YouTube Subtitle & Transcript Scraper — JSON, SRT, VTT, LLM

Извлекайте субтитры и транскрипты YouTube из видео, Shorts, плейлистов и каналов в форматах JSON, SRT, VTT, обычный текст или чистый текст, готовый для LLM. 100+ языков, богатые метаданные, без API-ключа — а неудачные извлечения бесплатны.

медиа TypeScriptInnerTube Глобально
proooxy/youtube-transcript-scraper — характеристики
категорияsocial / медиа
языкTypeScript
стекTypeScript, InnerTube
рынкиГлобально
выводчистый JSON, готовый к RAG

ключевые возможности

Один вход обрабатывает видео, Shorts, ссылки youtu.be, плейлисты и каналы — можно смешивать в одном запуске

Пять форматов вывода — JSON (с таймкодами), SRT, VTT, обычный текст и LLM-ready (убирает [Music], [Applause] и метки говорящих)

100+ языков со списком приоритетов и переключаемым откатом на автоматические субтитры

Богатые метаданные — заголовок, канал, описание, дата публикации, число просмотров, превью, длительность и доступные языки

Пакетная обработка целых плейлистов и каналов с лимитом maxVideos и параллелизмом 1–10

Поддержка резидентных прокси плюс опциональные cookie для снижения числа блокировок при проверке на бота

Многослойное извлечение — до девяти резервных вариантов среди клиентов InnerTube, с PO-токеном yt-dlp как последним средством

Circuit breaker и обработка ошибок на уровне каждого элемента позволяют крупным пакетам продолжать работу

сценарии использования

  • ИИ/ML-команды, строящие датасеты для RAG или fine-tuning из устной речи в видео (вывод текста LLM-ready)
  • Контент-команды, превращающие транскрипты в посты блога, описания выпусков и подписи для соцсетей
  • SEO-маркетологи, извлекающие индексируемый текст видео для индексации и подбора ключевых слов
  • Редакторы и издатели, которым нужны стандартные файлы субтитров SRT/VTT
  • Исследователи, пакетно собирающие транскрипты по всему каналу или плейлисту
  • Разработчики, которым нужны структурированные субтитры с таймкодами без API-ключа YouTube

входные параметры

ПараметрТипОбязательныйОписание
urlsarrayопциональноURL YouTube или голые ID — видео, Shorts, ссылки youtu.be, плейлисты или каналы. Обязателен во время выполнения.
outputFormatstringопциональноФормат транскрипта: json, srt, vtt, text или llm (по умолчанию: json).
languagesarrayопциональноПредпочитаемые языки субтитров по приоритету, коды ISO 639-1 (по умолчанию: en).
includeAutoGeneratedbooleanопциональноОткатываться на автоматически сгенерированные субтитры, если ручные отсутствуют (по умолчанию: true).
maxVideosnumberопциональноЛимит на число обрабатываемых видео за запуск, например для плейлистов/каналов (по умолчанию: 0 = без ограничений).
maxConcurrencynumberопциональноВидео, обрабатываемые параллельно, 1–10 (по умолчанию: 3).
proxyConfigurationobjectопциональноНастройки прокси; по умолчанию Apify Residential, закрепленный за US.
youtubeCookiesstringопциональноОпциональные cookie YouTube (заголовок Cookie или cookies.txt) для снижения числа блокировок при проверке на бота.

Пример вывода

 1{
 2  "videoId": "dQw4w9WgXcQ",
 3  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
 4  "title": "Rick Astley - Never Gonna Give You Up (Official Video)",
 5  "channelName": "Rick Astley",
 6  "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
 7  "publishDate": "2009-10-25",
 8  "viewCount": 1761003712,
 9  "availableLanguages": ["en", "de-DE", "ja", "pt-BR", "es-419"],
10  "language": "en",
11  "isAutoGenerated": false,
12  "duration": 213,
13  "wordCount": 487,
14  "segmentCount": 61,
15  "text": "We're no strangers to love, you know the rules and so do I...",
16  "segments": [{ "text": "We're no strangers to love", "start": 18.64, "end": 21.88 }],
17  "error": null
18}

Цена

Оплата за событие: тарифицируется один раз за успешно извлеченный транскрипт — за неудачные видео плата никогда не взимается. Передайте целый канал или плейлист и платите только за субтитры, которые реально получите.

Советы

  • Используйте outputFormat: llm для RAG и fine-tuning — это убирает неречевые пометки, чтобы ваши эмбеддинги видели чистый текст.
  • Держите резидентный прокси включенным. YouTube агрессивно блокирует IP дата-центров; актор не просто так по умолчанию использует резидентные US.
  • Начинайте с maxConcurrency 1–3 для крупных задач и повышайте постепенно — высокий параллелизм увеличивает риск ограничения частоты запросов при парсинге крупных каналов.

частые вопросы

Нужен ли мне API-ключ YouTube или вход в аккаунт?
Нет. Актор извлекает субтитры напрямую — без ключа YouTube Data API и без входа в аккаунт. Можно опционально передать cookie, чтобы снизить число блокировок «Sign in to confirm you're not a bot» на некоторых видео.
Какие языки и типы субтитров поддерживаются?
Более 100 языков. Передайте список кодов ISO 639-1 по приоритету (по умолчанию: en); актор предпочитает субтитры, созданные вручную, и откатывается на автоматически сгенерированные, если вы не отключите includeAutoGenerated.
Тарифицируются ли видео, для которых извлечение не удалось?
Нет. Тарификация — оплата за событие по факту извлечения транскрипта, взимается только после успешного сохранения транскрипта. Видео с ошибкой появляются в выводе с полем error и не тарифицируются.
Можно ли получить чистый текст, готовый для LLM, для RAG?
Да. Установите outputFormat в значение 'llm', чтобы убрать пометки [Music]/[Applause] и метки говорящих — получится чистый текст, идеальный для эмбеддингов и fine-tuning.

похожие в ~/social

Запустите YouTube Subtitle & Transcript Scraper — JSON, SRT, VTT, LLM или закажите разработку под задачу

Начните извлекать данные на Apify за считаные минуты или закажите у меня разработку парсера на заказ и RAG-конвейера под ваш источник и схему.

запустить на Apify заказать данные