Tienes un video en YouTube y necesitas la transcripción completa ahora mismo—para poder resumirlo, indexarlo, generar subtítulos o integrarlo en tu flujo de trabajo de medios. Al final de este artículo, realizarás una única solicitud GET para obtener una transcripción estructurada (texto, duración, desplazamiento, idioma) de un video de YouTube, y la integrarás en tu código o agente de IA sin salir de tu sprint.
Qué hace esta API de Medios y cuándo usarla
La API de YouTube Sub Extractor devuelve la transcripción de texto para un video de YouTube dado. La respuesta es una lista de segmentos de subtítulos con:
- texto: el texto del subtítulo/expresión
- duración: longitud del segmento en segundos
- desplazamiento: tiempo de inicio en segundos desde el comienzo del video
- idioma: la etiqueta de idioma para el segmento
Esto es útil para búsqueda de medios, moderación de contenido, análisis de temas, creación automática de capítulos, flujos de trabajo de accesibilidad y construcción de prompts RAG que resumen o responden preguntas sobre un solo video. Debido a que la API devuelve marcas de tiempo, puedes alinear el texto de nuevo a la línea de tiempo del video para resaltar y previsualizar.
Comenzando en Zyla API Hub
Zyla API Hub alberga más de 10,000 APIs públicas con una sola cuenta, una clave API y un modelo de suscripción + cuota (no pago por llamada). La primera API generalmente ofrece una prueba de 7 días o 50 solicitudes; no hay Plan Gratuito. Consulta la página de la API para opciones de acceso y precios actuales.
Para probar esta API:
- Abre la lista para la API de YouTube Sub Extractor y comienza la prueba: Iniciar prueba de 7 días en la API de YouTube Sub Extractor.
- Haz clic en Suscribirse o Iniciar Prueba Gratuita si está disponible para obtener tu clave API.
- Usa Authorization: Bearer YOUR_API_KEY en cada llamada.
Si eres nuevo en el mercado, también puedes explorar y suscribirte a otras APIs de Entretenimiento y Medios en Zyla API Hub con la misma clave y cuenta.
Descripción general del endpoint
La API de YouTube Sub Extractor expone un endpoint que necesitas implementar para “obtener la transcripción de video” rápidamente:
-
Obtener Transcripción de Video
Método: GET
URL: https://zylalabs.com/api/5216/youtube-sub-extractor-api/6681/get-video-transcript
Parámetro de consulta requerido:- videoId (cadena): ID del video de YouTube
cURL que puedes pegar ahora mismo
Usa tu clave API en el encabezado de Autorización y llama al endpoint con el videoId requerido. Este es el ejemplo oficial:
curl -s -X GET "https://zylalabs.com/api/5216/youtube-sub-extractor-api/6681/get-video-transcript?videoId=eCBABjPcNyo" \
-H "Authorization: Bearer YOUR_API_KEY"
Cómo se ve la respuesta
Ejemplo de respuesta oficial (truncada por brevedad en una interfaz de usuario del mundo real, pero preservada aquí exactamente como se proporcionó):
{"success":true,"transcript":[{"text":"o que a gente tem no diante","duration":3.24,"offset":0,"lang":"en"},{"text":"dos nossos olhos não dá muita esperança","duration":3.24,"offset":3.24,"lang":"en"},{"text":"no futuro daqui eu vejo a polícia","duration":3.24,"offset":6.48,"lang":"en"},{"text":"atirando a dignidade de pais de família","duration":3.24,"offset":9.72,"lang":"en"},{"text":"daqui eu vejo o estado transformando pessoas","duration":3.24,"offset":12.96,"lang":"en"},{"text":"que poderiam dar bons frutos carregado em","duration":3.24,"offset":16.200000000000003,"lang":"en"},{"text":"pessoas frustradas eu não julgo entendeu monstro","duration":3.24,"offset":19.44,"lang":"en"},{"text":"não precisa ser nenhum expert title superlotado","duration":3.24,"offset":22.68,"lang":"en"},{"text":"estudado formada uma coisa pra saber que","duration":3.24,"offset":25.92,"lang":"en"},{"text":"está tudo errado para saber qual a","duration":3.24,"offset":29.160000000000004,"lang":"en"},{"text":"posição da gente isso tem que acabar","duration":3.24,"offset":32.400000000000006,"lang":"en"},{"text":"com os palestinos abete paz [Música] gino","duration":3.24,"offset":35.64,"lang":"en"},{"text":"problema queria só paz mas não viu","duration":3.24,"offset":38.88,"lang":"en"},{"text":"o veículo agora sem proteção da vida","duration":3.24,"offset":42.120000000000005,"lang":"en"},{"text":"e arrojado mas ainda era o então","duration":3.24,"offset":45.36,"lang":"en"},{"text":"ainda disparava e agora o que eu","duration":3.24,"offset":48.6,"lang":"en"},{"text":"faço me fala na maturidade na sala","duration":3.24,"offset":51.84,"lang":"en"},{"text":"tem pesadelo é época de eleição nosso","duration":3.24,"offset":55.080000000000005,"lang":"en"},{"text":"descabelo progresso sem previsão no chão torço","duration":3.24,"offset":58.32000000000001,"lang":"en"},{"text":"pro meu filho também não vira lata","duration":3.24,"offset":61.56,"lang":"en"},{"text":"é um opção tem vaca tem sempre","duration":3.24,"offset":64.80000000000001,"lang":"en"},{"text":"cid piada pode justificar nada eu entrei","duration":3.24,"offset":68.04,"lang":"en"},{"text":"político claro que foi pra vencer nelson","duration":3.24,"offset":71.28,"lang":"en"},{"text":"é um nojo esgoto exposto é alguém","duration":3.24,"offset":74.52000000000001,"lang":"en"},{"text":"é tanta injustiça em sangue nas suas","duration":3.24,"offset":77.76,"lang":"en"},{"text":"mãos por não fazer nada a troca","duration":3.24,"offset":81…
Campos que típicamente usarás:
- success: booleano que indica que la llamada funcionó
- transcript: array de segmentos; cada uno tiene:
- texto: contenido del segmento de subtítulo
- duración: longitud en segundos (flotante)
- desplazamiento: tiempo de inicio en segundos desde 0.0 (flotante)
- idioma: etiqueta de idioma para la línea
Notas prácticas:
- Los desplazamientos y duraciones son segundos (flotantes). Multiplica por 1000 si tu interfaz espera milisegundos.
- Las transcripciones para un videoId dado son típicamente estáticas. Almacena en caché por videoId para evitar llamadas repetidas en los flujos de indexación.
- Si un video no tiene subtítulos, maneja un array de transcripción vacío o faltante de manera adecuada en la lógica de tu aplicación.
Ejemplo en Python: obtener, aplanar e imprimir marcas de tiempo
Este fragmento de Python llama al mismo endpoint, verifica el éxito y formatea cada línea con tiempos de inicio y fin.
import requests
from datetime import timedelta
API_KEY = "YOUR_API_KEY"
VIDEO_ID = "eCBABjPcNyo"
url = "https://zylalabs.com/api/5216/youtube-sub-extractor-api/6681/get-video-transcript"
params = {"videoId": VIDEO_ID}
headers = {"Authorization": f"Bearer {API_KEY}"}
resp = requests.get(url, params=params, headers=headers, timeout=30)
resp.raise_for_status()
data = resp.json()
if not data.get("success"):
raise RuntimeError("La llamada a la API no tuvo éxito")
segments = data.get("transcript", [])
def fmt(ts):
return str(timedelta(seconds=float(ts)))
for seg in segments:
start = seg.get("offset", 0)
dur = seg.get("duration", 0)
end = float(start) + float(dur)
text = seg.get("text", "")
lang = seg.get("lang", "")
print(f"[{fmt(start)} - {fmt(end)}] ({lang}) {text}")
Cambia la lógica de impresión por tu caso de uso: escribe en SRT/VTT, indexa en búsqueda o alimenta en tu resumidor.
Flujos de trabajo de medios comunes que puedes implementar esta semana
- Indexación de búsqueda para una biblioteca de videos: almacena texto, desplazamiento y duración; permite a los usuarios saltar a marcas de tiempo exactas en tu reproductor.
- Creación automática de capítulos: agrupa segmentos por pausas o cambios de tema y genera capítulos clicables.
- Moderación de contenido: escanea segmentos de transcripción en busca de términos señalados con colas de revisión basadas en tiempo.
- Resumen y preguntas y respuestas: pasa fragmentos de transcripción a tu LLM con desplazamientos para que las respuestas puedan incluir enlaces profundos al video.
- Control de calidad de subtítulos: compara segmentos con tus propios archivos de subtítulos para encontrar brechas o desvíos.
Detalles que ahorran tiempo en producción
- Mapea desplazamientos/duraciones directamente a la línea de tiempo de tu reproductor. Si necesitas precisión de fotogramas, convierte segundos a fotogramas usando los FPS de tu reproductor.
- Chunking para LLMs: agrupa segmentos para mantener los prompts por debajo de los límites de tokens; preserva desplazamientos para que puedas reconstruir las marcas de tiempo de origen en las salidas.
- Normalización: las transcripciones pueden incluir puntuación o etiquetas de música. Preprocesa según sea necesario para tu flujo de búsqueda.
- Reintentos e idempotencia: debido a que el contenido de la transcripción es estable, envuelve las llamadas en un reintento con caché para evitar golpes de red duplicados durante las recargas.
Llama a esta API desde agentes de IA a través de MCP
También puedes invocar el mismo endpoint del Hub a través de agentes IDE compatibles con MCP. Apunta tu cliente MCP a la puerta de enlace MCP de Zyla y proporciona tu clave. Consulta la documentación aquí: MCP.
Esquema de implementación:
- Configura tu cliente MCP con la puerta de enlace base y tu clave API.
- Llama a la ruta URL del Hub para Obtener Transcripción de Video con videoId=eCBABjPcNyo.
- Asegúrate de que el encabezado Authorization: Bearer YOUR_API_KEY se pase correctamente.
- Analiza los mismos campos JSON (success, transcript[].text/duration/offset/lang) en el manejador de tu herramienta.
Esto permite que un agente de IA obtenga transcripciones bajo demanda y encadene el resultado en pasos de resumen o etiquetado sin salir de tu editor.
Resolución de problemas y manejo de excepciones
- Transcripción vacía: no todos los videos tienen subtítulos; maneja un array de transcripción vacío de manera adecuada.
- Matemáticas de tiempo: duración y desplazamiento son flotantes. Redondea con cuidado para la visualización y evitar errores de un segundo en las interfaces.
- Caché: dado que las transcripciones son estables, memoriza resultados por videoId. Esto mantiene tu cuota enfocada en contenido nuevo.
- Idioma: las etiquetas de idioma se devuelven por segmento. Si muestras filtros de idioma, agrega idiomas a través de segmentos primero.
Referencia rápida
- Listado de API: API de YouTube Sub Extractor
- Método: GET
- Endpoint: https://zylalabs.com/api/5216/youtube-sub-extractor-api/6681/get-video-transcript
- Parámetro de consulta requerido: videoId (cadena)
- Encabezado de autorización: Authorization: Bearer YOUR_API_KEY
Para otras integraciones de Medios que puedas necesitar a continuación, explora la categoría de Entretenimiento y Medios en Zyla API Hub. Una clave funciona en todas las APIs suscritas.
FAQ
¿Este endpoint requiere algún parámetro además de videoId?
No. El endpoint Obtener Transcripción de Video requiere solo el parámetro videoId.
¿Qué unidades de tiempo utilizan duración y desplazamiento?
Segundos como valores de punto flotante. Convierte a milisegundos o fotogramas según sea necesario para tu reproductor.
¿Qué autenticación se requiere?
Pasa tu clave con Authorization: Bearer YOUR_API_KEY en cada solicitud.
¿Cómo se maneja la facturación?
Zyla utiliza un modelo de suscripción + cuota (no pago por llamada). La primera API generalmente ofrece una prueba de 7 días o 50 solicitudes. Consulta la página de la API para opciones de acceso y precios actuales.
¿Puedo llamar a esta API desde un agente de IA?
Sí. Usa la puerta de enlace MCP e incluye tu encabezado de Autorización; consulta MCP para más detalles.
¿Listo para implementar tu integración? Comienza tu prueba, obtén una clave API y obtén transcripciones en minutos: Iniciar prueba de 7 días en la API de YouTube Sub Extractor.