Extraer transcripciones de YouTube con n8n sin API

8 minutos
Cómo obtener la transcripción de un vídeo con YouTube Data API y n8n

¿Qué hace este workflow?

Este workflow extrae automáticamente la transcripción autogenerada de cualquier video de YouTube utilizando la API interna de YouTube. Solo necesitas proporcionar la URL del video y el workflow se encarga de obtener el texto completo de la transcripción, decodificar las entidades HTML y entregarte un texto limpio y procesado listo para usar en análisis, documentación o sistemas de IA.

  • Extrae transcripciones autogeneradas (ASR) sin necesidad de seleccionar idioma
  • Obtiene automáticamente la API Key de YouTube desde el HTML de la página
  • Procesa y limpia el texto decodificando entidades HTML (' → ‘, & → &)
  • Devuelve el transcript completo, el conteo de palabras y los timestamps originales
  • Incluye manejo robusto de errores y validación en cada paso

Casos de uso y beneficios

Este workflow es especialmente útil para creadores de contenido, investigadores y profesionales de IA que necesitan procesar grandes volúmenes de contenido de video. Automatiza completamente la extracción de transcripciones, ahorrándote horas de trabajo manual y permitiéndote enfocarte en el análisis y la creación de valor.

  • Generación de contenido: Convierte videos en artículos de blog, resúmenes o newsletters
  • Investigación de mercado: Analiza videos de competidores para identificar estrategias y temas
  • Bases de datos de conocimiento: Crea repositorios vectorizados (RAG) para chatbots inteligentes
  • SEO y etiquetado: Extrae keywords, hashtags y descripciones para optimización
  • Accesibilidad: Genera subtítulos o textos para personas con discapacidad auditiva
  • Educación: Procesa clases y tutoriales en video para crear material de estudio

Requisitos previos

  • n8n instalado: Versión 1.0 o superior (recomendado 1.1+)
  • Nodos necesarios: Execute Workflow Trigger, HTTP Request, Code, XML, Sticky Note, Stop and Error
  • Sin credenciales externas: No requiere API keys de terceros ni autenticación
  • Videos compatibles: El video debe tener transcripción autogenerada activa (kind: ‘asr’)
  • Conocimientos básicos: Familiaridad con la interfaz de n8n y la ejecución de workflows

Cómo configurar el workflow paso a paso

Paso 1: Importar el workflow en n8n

Descarga el archivo JSON desde el final de este artículo. Luego, en tu instancia de n8n, dirígete a Workflows → Import from File y selecciona el archivo descargado. El workflow se importará con todos los nodos preconfigurados.

Paso 2: Configurar el nodo de entrada (Execute Workflow Trigger)

El primer nodo acepta un input llamado youtubeVideoUrl. Este parámetro debe contener la URL completa del video de YouTube (ejemplo: https://www.youtube.com/watch?v=pAOOfeKYaSQ). Puedes ejecutar este workflow desde otro workflow o manualmente proporcionando la URL en la configuración de ejecución.

Paso 3: Validar la extracción de API Key y Video ID

El nodo «Fetch: YouTube Page HTML» realiza una petición GET a la página del video para obtener el código HTML. A continuación, el nodo «Extract: API Key & Video ID» utiliza expresiones regulares para extraer dos elementos críticos: INNERTUBE_API_KEY y el videoId. Si este paso falla, verifica que la URL sea válida y que YouTube no haya cambiado la estructura de su HTML.

Paso 4: Obtener metadatos de caption tracks

El nodo «API: Get Video Metadata» envía una petición POST a la API interna de YouTube (youtubei/v1/player) con el API Key y videoId extraídos. Esta llamada devuelve un JSON con todos los captionTracks disponibles, que incluyen subtítulos manuales y autogenerados.

Paso 5: Detectar transcripción autogenerada (ASR)

El nodo «Extract: Auto-Generated Transcript URL» busca automáticamente el primer caption track con kind: 'asr' (Automatic Speech Recognition). Si no se encuentra ninguna transcripción autogenerada, el workflow se detendrá con un error descriptivo mediante el nodo «Stop and Error», indicando que el video no tiene transcripción automática disponible.

Paso 6: Descargar y parsear el XML de transcripción

Una vez obtenida la baseUrl del transcript, el nodo «Fetch: Transcript XML» descarga el contenido en formato XML. El nodo «Parse: XML to JSON» convierte este XML a JSON para facilitar su procesamiento en el siguiente paso.

Paso 7: Procesar y limpiar el texto final

El nodo final «Transform: Process Transcript» ejecuta un código JavaScript personalizado que realiza tres tareas principales: (1) Decodifica entidades HTML comunes como ', &, ", etc., (2) Concatena todos los fragmentos de texto en un único string limpio, y (3) Calcula el número total de palabras. El resultado incluye fullTranscript, wordCount y el array original con timestamps.

Notas técnicas importantes

Limitaciones de videos: Este workflow solo funciona con videos que tienen transcripción autogenerada activada. Videos muy cortos (menos de 1 minuto), sin audio, o con copyright restrictivo pueden no tener transcripciones disponibles. Si el workflow falla, verifica que el video tenga subtítulos autogenerados activos en YouTube.

Consideraciones de rendimiento: Videos largos (más de 2 horas) pueden generar transcripciones de más de 100,000 caracteres. Asegúrate de que tu instancia de n8n tenga suficiente memoria RAM y que los timeouts estén configurados adecuadamente (especialmente en el nodo HTTP Request, que tiene maxTries: 3 y waitBetweenTries: 2000ms).

Troubleshooting común: Si el nodo «Extract: API Key & Video ID» falla, YouTube puede haber modificado su estructura HTML. En ese caso, actualiza las expresiones regulares en el código JavaScript. Si la API devuelve errores 403 o 429, puede haber límites de rate limiting: espera unos minutos antes de reintentar.

Mejoras y personalizaciones

Este workflow es una base sólida que puedes extender fácilmente. Algunas ideas de mejora incluyen: (1) Conectar el output a una base de datos Airtable o Notion para almacenar transcripciones automáticamente, (2) Añadir un nodo de IA (OpenAI, Claude) para resumir o traducir el transcript, (3) Vectorizar el texto con embeddings y almacenarlo en Pinecone/Qdrant para sistemas RAG, (4) Integrar con Slack o Email para notificar cuando una transcripción esté lista, o (5) Crear un sistema de procesamiento batch que extraiga transcripciones de múltiples videos desde una playlist de YouTube.

Descargar gratis este workflow

Importa este workflow directamente en tu instancia de n8n. Descarga el archivo JSON y luego ve a Workflows → Import from File.