~/social/youtube-transcript-scraper

Scraper de subtítulos y transcripciones de YouTube — JSON, SRT, VTT, LLM

Extrae subtítulos y transcripciones de YouTube de vídeos, Shorts, listas de reproducción y canales en JSON, SRT, VTT, texto plano o texto limpio listo para LLM. Más de 100 idiomas, metadatos completos, sin clave API — y las extracciones fallidas son gratis.

medios TypeScriptInnerTube Global
proooxy/youtube-transcript-scraper — spec
categoríasocial / medios
lenguajeTypeScript
stackTypeScript, InnerTube
mercadosGlobal
salidaJSON limpio y listo para RAG

características clave

Un único input gestiona vídeos, Shorts, enlaces youtu.be, listas de reproducción y canales — combinados en una sola ejecución

Cinco formatos de salida — JSON (con marcas de tiempo), SRT, VTT, texto plano y listo para LLM (elimina [Music], [Applause] y etiquetas de interlocutor)

Más de 100 idiomas con una lista de idiomas por orden de prioridad y respaldo de subtítulos automáticos configurable

Metadatos completos — título, canal, descripción, fecha de publicación, número de visualizaciones, miniatura, duración e idiomas disponibles

Procesa en lote listas de reproducción y canales completos con un límite maxVideos y concurrencia de 1 a 10

Soporte de proxy residencial más cookies opcionales para reducir los bloqueos por verificación anti-bot

Extracción multicapa — hasta nueve mecanismos de respaldo entre clientes de InnerTube, con un último recurso de PO-token vía yt-dlp

El circuit breaker y el manejo de errores por elemento mantienen en marcha los lotes grandes

casos de uso

  • Equipos de IA/ML que construyen datasets de RAG o fine-tuning a partir de vídeo hablado (salida de texto lista para LLM)
  • Equipos de contenido que reutilizan transcripciones en entradas de blog, notas de programa y descripciones para redes sociales
  • Profesionales de SEO que extraen texto de vídeo indexable para indexación e investigación de palabras clave
  • Editores y publicadores que necesitan archivos de subtítulos estándar SRT/VTT
  • Investigadores que recopilan transcripciones en lote de un canal o lista de reproducción completos
  • Desarrolladores que necesitan subtítulos estructurados y con marcas de tiempo sin una clave de la API de YouTube

parámetros de entrada

ParámetroTipoObligatorioDescripción
urlsarrayopcionalURLs de YouTube o IDs sueltos — vídeos, Shorts, enlaces youtu.be, listas de reproducción o canales. Obligatorio en tiempo de ejecución.
outputFormatstringopcionalFormato de la transcripción: json, srt, vtt, text o llm (por defecto: json).
languagesarrayopcionalIdiomas de subtítulos preferidos por orden de prioridad, códigos ISO 639-1 (por defecto: en).
includeAutoGeneratedbooleanopcionalRecurre a subtítulos autogenerados cuando no existen subtítulos manuales (por defecto: true).
maxVideosnumberopcionalLímite de vídeos procesados por ejecución, por ejemplo para listas de reproducción/canales (por defecto: 0 = sin límite).
maxConcurrencynumberopcionalVídeos procesados en paralelo, de 1 a 10 (por defecto: 3).
proxyConfigurationobjectopcionalConfiguración de proxy; por defecto usa Apify Residential fijado a US.
youtubeCookiesstringopcionalCookies opcionales de YouTube (cabecera Cookie o cookies.txt) para reducir los bloqueos por verificación anti-bot.

Ejemplo de salida

 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}

Precios

Pago por evento: se cobra una vez por cada transcripción extraída con éxito — los vídeos fallidos nunca se cobran. Introduce un canal o lista de reproducción completos y paga solo por los subtítulos que realmente obtengas.

Consejos

  • Usa outputFormat: llm para RAG y fine-tuning — elimina las anotaciones que no son habla, de modo que tus embeddings reciben una prosa limpia.
  • Mantén activado un proxy residencial. YouTube bloquea agresivamente las IPs de centro de datos; el actor usa residencial de US por defecto, y no es casualidad.
  • Empieza con maxConcurrency entre 1 y 3 para trabajos grandes y auméntalo gradualmente — una concurrencia alta incrementa el riesgo de límite de tasa en extracciones de canales grandes.

faq

¿Necesito una clave de la API de YouTube o iniciar sesión?
No. El actor extrae los subtítulos directamente — sin clave de la YouTube Data API y sin login. Se puede proporcionar opcionalmente un input de cookies para reducir los bloqueos de 'Sign in to confirm you're not a bot' en algunos vídeos.
¿Qué idiomas y tipos de subtítulos son compatibles?
Más de 100 idiomas. Proporciona una lista de códigos ISO 639-1 por orden de prioridad (por defecto: en); el actor prefiere los subtítulos creados manualmente y recurre a los autogenerados a menos que desactives includeAutoGenerated.
¿Se me cobra por los vídeos que fallan al extraer?
No. La facturación es de pago por evento sobre un único evento de transcripción extraída, cobrado solo después de guardar con éxito una transcripción. Los vídeos fallidos aparecen en la salida con un campo error y no se cobran.
¿Puedo obtener texto limpio y listo para LLM para RAG?
Sí. Establece outputFormat en 'llm' para eliminar las anotaciones [Music]/[Applause] y las etiquetas de interlocutor, generando una prosa limpia ideal para embeddings y fine-tuning.

relacionado en ~/social

Ejecuta Scraper de subtítulos y transcripciones de YouTube — JSON, SRT, VTT, LLM, o consigue un desarrollo a medida

Empieza a extraer datos en Apify en minutos, o contrátame para construir un scraper a medida y un pipeline de datos RAG para tu fuente y esquema exactos.

ejecutar en Apify obtener datos a medida