¿Qué hace este workflow?
Este workflow de n8n obtiene automáticamente la transcripción completa de cualquier vídeo de YouTube usando la YouTube Transcript API. Funciona como un sub-workflow reutilizable que puedes llamar desde otros automatismos, pasándole un youtubeVideoId y recibiendo el texto completo del vídeo.
El workflow incluye:
- Control de errores automático que diferencia entre fallos técnicos y transcripciones no disponibles
- Verificación de existencia de transcripción antes de procesarla
- Transformación a texto plano mediante JavaScript para facilitar su reutilización
- Respuesta estructurada lista para integrar en pipelines de IA o análisis de contenido
Casos de uso y beneficios
Este workflow es especialmente útil cuando necesitas transcribir vídeos públicos de terceros que no están en tu canal. A diferencia de la YouTube Data API oficial (que requiere autenticación OAuth y solo funciona con tu contenido), este enfoque permite acceder a cualquier vídeo público.
Casos de uso principales:
- Creación de contenido: Genera automáticamente resúmenes, artículos o posts de blog a partir de vídeos relevantes de tu sector
- Análisis competitivo: Extrae y analiza el contenido de vídeos de competidores para detectar tendencias y temas
- Investigación y documentación: Convierte webinars, tutoriales o conferencias en documentos de texto estructurados
- Pipelines de IA: Alimenta modelos de lenguaje (ChatGPT, Claude) con transcripciones para generar insights automáticos
- SEO y marketing: Reutiliza contenido de vídeo para crear múltiples formatos (threads, newsletters, infografías)
Beneficio clave: Al exponerlo como sub-workflow, centralizas la lógica de obtención de transcripciones y la reutilizas en múltiples automatismos sin duplicar código ni configuraciones.
Requisitos previos
- Cuenta en YouTube Transcript API: Regístrate en youtube-transcript.io para obtener tu API key
- Credenciales configuradas en n8n: Crea una credencial tipo
Header Authcon tu API key de YouTube Transcript API - Nodos n8n requeridos:
- When Executed by Another Workflow (trigger)
- HTTP Request
- Switch
- Code (JavaScript)
- Stop and Error
- Versión mínima de n8n: 1.0.0 (todos los nodos son nativos)
- Conocimiento básico: Uso de expresiones n8n (
$json) y llamadas entre workflows
⚠️ Importante: Si necesitas transcribir vídeos de tu propio canal, es más recomendable usar la YouTube Data API oficial (requiere OAuth) para gestionar captions de forma soportada por Google.
Cómo configurar el workflow paso a paso
Paso 1: Configura el trigger para sub-workflow
Añade el nodo When Executed by Another Workflow como primer nodo:
- Define un parámetro de entrada llamado
youtubeVideoId(tipo: String) - Este nodo permite que cualquier otro workflow de n8n ejecute este flujo pasándole el ID del vídeo
- La respuesta del workflow será la transcripción procesada que podrás usar en el workflow padre
Paso 2: Configura la petición HTTP a YouTube Transcript API
Añade un nodo HTTP Request con la siguiente configuración:
- Method:
POST - URL:
https://www.youtube-transcript.io/api/transcripts - Authentication:
Generic Credential Type→Header Auth - Credential: Selecciona la credencial creada con tu API key
- Send Headers: Activar
- Header:
Content-Type - Value:
application/json
- Header:
- Send Body: Activar
- Body Content Type:
JSON - Specify Body:
Using JSON - JSON:
{ "ids": [ "{{ $json.youtubeVideoId }}" ] }
- Body Content Type:
- Options → Response: Activa
Include Response Headers and Statuspara gestionar errores manualmente
Paso 3: Implementa control de errores con Switch
Añade un nodo Switch que evalúa la respuesta de la API con tres condiciones:
- Condición 1 – Error desconocido:
- Si
{{ $json.statusMessage }}es diferente de"OK" - Redirige a nodo «Transcript Failed» (Stop and Error)
- Si
- Condición 2 – Transcripción existe:
- Si
{{ $json.statusMessage }}es"OK" - Y
{{ $json?.data?.parseJson?.()[0]?.text }}contiene texto - Continúa al nodo de procesamiento
- Si
- Condición 3 – Transcripción no existe:
- Si
statusMessagees"OK"pero no hay texto - Redirige a «Transcription does not exist» (Stop and Error)
- Si
Paso 4: Añade nodos de gestión de errores
Crea dos nodos Stop and Error conectados a las salidas del Switch:
- Nodo «Transcript Failed»:
- Error Message:
"Unknown error" - Se ejecuta cuando la API devuelve códigos de error (5xx, 4xx)
- Error Message:
- Nodo «Transcription does not exist»:
- Error Message:
"Transcription not available for this video" - Se ejecuta cuando el vídeo no tiene subtítulos/transcripción
- Error Message:
Paso 5: Transforma la respuesta con JavaScript
Añade un nodo Code (JavaScript) que procesa la transcripción:
// Función auxiliar para convertir track a texto
function trackToText(track) {
return track.map(item => item.text).join(' ');
}
// Parsear respuesta de la API
const data = typeof $input.item.json.data === 'string'
? JSON.parse($input.item.json.data)
: $input.item.json.data;
// Extraer primer resultado y primer track
const firstResult = data[0];
const firstTrack = firstResult.tracks[0];
// Generar texto completo
const transcript = trackToText(firstTrack);
// Devolver objeto estructurado
return {
id: firstResult.id,
transcript: transcript
};
Este código:
- Convierte el campo
dataen objeto si viene como string - Extrae el primer track de transcripción del array de resultados
- Concatena todos los fragmentos de texto en un string único
- Devuelve un objeto con
idytranscriptlistos para usar
Notas técnicas importantes
Límites y consideraciones:
- Límites de la API: YouTube Transcript API tiene límites de rate limiting según tu plan. Consulta la documentación oficial para evitar errores 429 (Too Many Requests)
- Vídeos sin transcripción: No todos los vídeos tienen subtítulos automáticos o manuales. El workflow detecta esto y devuelve un error controlado
- Idioma de la transcripción: La API devuelve la transcripción en el idioma configurado por defecto del vídeo. No puedes especificar idioma en esta versión básica
- Tamaño de respuesta: Vídeos muy largos (>2h) pueden generar transcripciones de 50-100KB. Asegúrate de que tu instancia n8n maneja bien estos volúmenes
Troubleshooting común:
- Error 401 Unauthorized: Verifica que tu API key esté correctamente configurada en las credenciales de n8n
- Error 503 Service Unavailable: La API externa está caída temporalmente. Implementa reintentos con nodo «Wait» entre intentos
- Texto vacío o null: El vídeo puede tener subtítulos desactivados o ser privado
Mejoras y personalizaciones
Variaciones recomendadas del workflow:
- Añadir selección de idioma: Modifica el body JSON para incluir
"lang": "es"si la API lo soporta, permitiendo obtener transcripciones en español específicamente - Cache de transcripciones: Guarda las transcripciones en Google Sheets o base de datos para evitar llamadas repetidas a la misma URL
- Integración con IA: Conecta la salida directamente a un nodo de OpenAI o Claude para generar automáticamente resúmenes, bullets points o artículos
- Batch processing: Modifica el trigger para aceptar arrays de vídeo IDs y procesar múltiples transcripciones en paralelo usando Split In Batches
- Formato con timestamps: En lugar de concatenar solo el texto, mantén los timestamps de cada fragmento para referencias temporales precisas
Migración a YouTube Data API oficial:
Si trabajas con vídeos de tu canal, considera reemplazar el nodo HTTP Request por nodos nativos de YouTube de n8n:
- Usar
captions.listpara obtener IDs de pistas de subtítulos - Descargar la pista específica con
captions.download - Procesar el formato SRT/VTT con Code node para extraer solo el texto
Esto te da mayor control, elimina dependencias externas y funciona dentro del ecosistema oficial de Google.
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.
Recuerda que si te suscribes gratuitamente tendrás acceso a todos los workflows y además podrás disfrutar de todo el resto de contenido de joelcantero.com.

