Tienes una función que enviar esta semana: convertir un video de YouTube en un archivo de audio que tu aplicación pueda descargar, transmitir o procesar. Al final de este artículo, podrás llamar a la API de Youtube a Audio desde Zyla API Hub para resolver un video de YouTube en una URL de descarga MP3 o activar un flujo de descarga desde una URL de YouTube, luego integrar el audio resultante en tu canal de trabajo.
Lo que proporciona la API de Youtube a Audio
La API de Youtube a Audio expone dos simples endpoints GET que convierten un video de YouTube en audio. Un endpoint acepta un ID de video de YouTube y devuelve un enlace MP3 listo para descargar más metadatos útiles (título, duración, tamaño del archivo). El otro acepta una URL completa de YouTube y devuelve una URL de descarga que puedes obtener para obtener el audio.
Los consumidores típicos incluyen:
- Herramientas de recorte de podcasts que convierten videos largos en momentos destacados de audio.
- Servicios de transcripción y análisis de voz que necesitan un MP3 antes de enviar audio a un motor de conversión de voz a texto.
- Constructores de bases de conocimiento que indexan contenido hablado de YouTube.
- Agentes de automatización de contenido o IA que convierten por lotes listas de reproducción de videos en audio para procesamiento posterior.
Comenzando en Zyla API Hub
Para usar los endpoints, abre la lista de la API en Zyla API Hub, suscríbete y obtén tu clave API. La autenticación es un solo encabezado HTTP en cada solicitud: Authorization: Bearer YOUR_API_KEY. Zyla utiliza un modelo de suscripción + cuota (no pago por llamada). La primera API en tu cuenta ofrece una prueba de 7 días o 50 solicitudes; consulta la página de la API para las opciones de acceso y precios actuales. Comienza aquí:
Comienza la prueba de 7 días en la API de Youtube a Audio
Endpoints que usarás
Base: Todas las llamadas se realizan directamente a las URL de Zyla API Hub que se muestran a continuación. No agregues parámetros de consulta adicionales más allá de los documentados.
1) Obtener Audio (por ID de video de YouTube)
Método: GET
URL: https://zylalabs.com/api/381/youtube-to-audio-api/8884/get-audio
Descripción: Proporciona un ID de video de YouTube y recibe un objeto que contiene un enlace MP3 directo y metadatos. Parámetro requerido:
- id (string): el ID de video de YouTube.
Ejemplo de curl oficial:
curl -s -X GET "https://zylalabs.com/api/381/youtube-to-audio-api/8884/get-audio?id=xFYQQPAOz7Y" \
-H "Authorization: Bearer YOUR_API_KEY"
Respuesta JSON oficial:
{
"msg": "success",
"link": "https://theta.123tokyo.xyz/get.php/d/fa/xFYQQPAOz7Y.mp3?n=Eminem%20-%20Lose%20Yourself&uT=R&uN=QWxlam9aeWxhTGFicw%3D%3D&h=TcO7xrzRPZ9cGbw2wXP93w&s=1784312338&uT=R&uN=QWxlam9aeWxhTGFicw%3D%3D",
"status": "ok",
"duration": 327.49718169275,
"title": "Eminem - Lose Yourself",
"progress": 100,
"pc": 0,
"filesize": 4181397
}
Cómo usar estos campos:
- link: URL MP3 directa y sensible al tiempo. Realiza un segundo GET para descargar los bytes de audio.
- title: Título legible por humanos. Útil para nombrar archivos o UI.
- duration: Longitud de video/audio como un número de punto flotante (segundos).
- filesize: Tamaño del archivo en bytes (útil para preasignar almacenamiento o mostrar barras de progreso).
- status/msg/progress/pc: Indicadores de estado operativo que puedes registrar o mostrar para depuración.
2) Descargar Audio (por URL completa de YouTube)
Método: GET
URL: https://zylalabs.com/api/381/youtube-to-audio-api/22174/download-audio
Descripción: Proporciona una URL completa de YouTube y recibe una URL que puedes obtener para descargar el audio. Parámetro requerido:
- url (string): URL completa del video de YouTube.
Ejemplo de curl oficial:
Respuesta JSON oficial:
Cómo usar este campo:
- downloadUrl: Obtén esta URL para recuperar el binario de audio. En la mayoría de las aplicaciones, transmitirás los bytes a disco o almacenamiento en la nube.
Ejemplo en Python: resolviendo un ID de YouTube y descargando MP3
Este ejemplo muestra cómo llamar a Obtener Audio, leer los metadatos y descargar el archivo MP3. Utiliza el endpoint y los parámetros exactos que se muestran arriba.
import os
import sys
import requests
API_KEY = os.getenv("ZYLALABS_API_KEY", "YOUR_API_KEY")
VIDEO_ID = "xFYQQPAOz7Y" # Proporcionado en el ejemplo oficial
OUTFILE = "audio.mp3"
session = requests.Session()
headers = {"Authorization": f"Bearer {API_KEY}"}
# 1) Resolver el ID de YouTube a un enlace MP3 + metadatos
meta_url = "https://zylalabs.com/api/381/youtube-to-audio-api/8884/get-audio"
resp = session.get(meta_url, headers=headers, params={"id": VIDEO_ID}, timeout=60)
resp.raise_for_status()
data = resp.json()
if data.get("status") != "ok" or not data.get("link"):
print("Falló al resolver audio.", file=sys.stderr)
print(data, file=sys.stderr)
sys.exit(1)
mp3_url = data["link"]
title = data.get("title")
duration = data.get("duration")
filesize = data.get("filesize")
print(f"Resuelto: title={title}, duration_s={duration}, bytes={filesize}")
print("Descargando audio...")
# 2) Descargar el flujo MP3
with session.get(mp3_url, stream=True, timeout=120) as r:
r.raise_for_status()
with open(OUTFILE, "wb") as f:
for chunk in r.iter_content(chunk_size=1024 * 128):
if chunk:
f.write(chunk)
# 3) Opcional: renombrar usando el título si se proporciona
if title:
safe = "".join(c for c in title if c.isalnum() or c in (" ", "-", "_")).rstrip()
new_name = f"{safe}.mp3"
try:
os.replace(OUTFILE, new_name)
print(f"Guardado: {new_name}")
except Exception:
print(f"Guardado: {OUTFILE} (el cambio de nombre falló, verifica los permisos del sistema de archivos)")
print("Listo.")
Notas:
- La primera solicitud recupera metadatos y un enlace MP3 directo. La segunda solicitud descarga el flujo binario.
- Usa descargas por streaming para archivos grandes para evitar cargar todo el archivo en memoria.
- Usa el campo filesize (bytes) para predefinir el tamaño de las barras de progreso. La duración está en segundos, lo que puede ayudar a estimar costos de transcripción o procesamiento.
Casos de uso prácticos que puedes enviar esta semana
- Pipeline de transcripción automática: Convierte un video de YouTube a MP3 y alimenta el audio en tu servicio de voz a texto. Almacena la transcripción para búsqueda, resumido o control de calidad.
- Recortador de audio para boletines: Extrae momentos destacados de audio para tu boletín semanal sin escribir tu propio descargador o mantener scrapers.
- Indexación de conocimiento: Convierte conferencias o charlas a audio, luego divídelas en fragmentos para incrustación y recuperación en tu pila RAG.
- Enriquecimiento de contenido de IA: Usa el MP3 como entrada para diarización o extracción de palabras clave para mejorar las recomendaciones de contenido.
- Procesamiento por lotes con colas: Envía IDs de YouTube o URLs a una cola; los trabajadores llaman a la API, persisten el audio y emiten eventos con la ruta del archivo resultante y metadatos.
Detalles de implementación que ahorran tiempo
- Autenticación: Siempre envía Authorization: Bearer YOUR_API_KEY en cada solicitud GET a los endpoints de Zyla.
- Flujo de dos pasos: La API devuelve un enlace o downloadUrl. Realiza un segundo GET a esa URL para recuperar los bytes de audio. Maneja comportamientos HTTP estándar (redirecciones, tiempos de espera).
- Naming de archivos: Usa el campo title para nombres de archivos amigables para humanos. Considera agregar el ID de YouTube para idempotencia (por ejemplo, "{title}-{id}.mp3").
- Almacenamiento: Para cargas en la nube, transmite directamente a tu SDK de almacenamiento de objetos para evitar archivos locales temporales. Usa filesize para establecer Content-Length cuando esté disponible.
- Reintentos: Los saltos de red a la URL de descarga están fuera de tu VPC. Implementa reintentos con retroceso en errores transitorios 5xx/conexión.
- Sanitización: Limpia las URLs proporcionadas por el usuario antes de pasarlas al endpoint de Descargar Audio, pero no alteres el nombre del parámetro de consulta esperado (url).
- Tarifas y cuotas: Zyla utiliza un modelo de suscripción + cuota. Realiza un seguimiento de tu uso e implementa interruptores de circuito si tu carga de trabajo aumenta. Para opciones actuales, consulta la página del Marketplace de la API.
Elegir entre los dos endpoints
- Si ya tienes un ID de video de YouTube, usa Obtener Audio. Obtendrás un enlace MP3 directo y metadatos útiles (duración, tamaño del archivo, título) en una sola llamada.
- Si tu flujo de trabajo comienza desde una URL de YouTube pegada o descubierta, usa Descargar Audio. Devuelve un downloadUrl que puedes obtener para obtener el audio.
Incluso puedes combinarlos: normaliza la entrada en IDs donde sea posible (para deduplicación y almacenamiento en caché), pero recurre al flujo de URL cuando los usuarios pegan un enlace completo.
Llamando a la API desde agentes de IA a través de MCP
Cada API en Zyla también puede ser llamada desde agentes de IA a través del endpoint compatible con MCP en https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY. Esto funciona con agentes en Claude Code, Cursor, Windsurf y otros clientes MCP. Configuras la herramienta MCP para emitir las mismas solicitudes HTTP GET que se muestran arriba, con el encabezado de autorización y las URL exactas de Zyla. Para detalles sobre el uso de clientes compatibles con MCP con herramientas de Zyla, comienza aquí:
Patrones típicos de agentes:
- "Dado un ID de video, obtén audio y envíalo a mi herramienta de transcripción."
- "Cuando un enlace de YouTube aparece en una tarea, resuélvelo a MP3, almacénalo en S3 y devuelve la URL de almacenamiento."
Flujo de trabajo mínimo de extremo a extremo (basado en ID)
- Resolver audio:
- GET https://zylalabs.com/api/381/youtube-to-audio-api/8884/get-audio?id=YOUR_VIDEO_ID con encabezado de autorización.
- Persistir metadatos:
- Almacena título, duración (segundos), tamaño del archivo (bytes) junto al ID de YouTube original para referencia futura.
- Descargar:
- GET el campo link para transmitir el MP3. Guarda en disco o almacenamiento de objetos.
- Procesamiento posterior:
- Inicia trabajos de transcripción, fragmentación o incrustación según sea necesario.
Consejos operativos
- Tiempos de espera: Establece tiempos de espera conservadores (por ejemplo, 60s para metadatos, 120s+ para descargas grandes) y reintentos con retroceso exponencial.
- Observabilidad: Registra IDs de solicitud y el ID/URL de YouTube para rastrear problemas. También registra el tamaño del archivo y la duración para la planificación de capacidad.
- Caché: Almacena en caché resoluciones exitosas indexadas por ID de YouTube. Si un enlace expira, llama a la API nuevamente para actualizarlo.
- Seguridad: No expongas tu clave API del lado del cliente. Rutea las llamadas a través de tu servicio backend.
FAQ
Q: ¿Qué autenticación requiere la API?
A: Envía Authorization: Bearer YOUR_API_KEY en cada solicitud a los endpoints de Zyla.
Q: ¿Qué parámetros son requeridos para cada endpoint?
A: Obtener Audio requiere id (ID de video de YouTube). Descargar Audio requiere url (URL completa de YouTube). No agregues otros parámetros.
Q: ¿Qué representan la duración y el tamaño del archivo?
A: duration es un número de punto flotante que representa segundos. filesize es el tamaño del archivo de audio en bytes.
Q: ¿Puedo transmitir el resultado directamente a almacenamiento en la nube?
A: Sí. Obtén el enlace (o downloadUrl) con streaming habilitado y escribe fragmentos directamente en tu SDK de almacenamiento.
Q: ¿Cómo pruebo la API?
A: Suscríbete en la página del Marketplace de la API para obtener una clave API. La primera API en tu cuenta incluye una prueba de 7 días o 50 solicitudes; consulta la página de la API para detalles actuales.
Si estás listo para construir, suscríbete en la página del artículo del Marketplace para la API de Youtube a Audio para obtener tu clave, copia el curl anterior y conéctalo a tu descargador o pipeline de transcripción. La prueba de 7 días comienza en la página del artículo, y los endpoints están listos cuando tú lo estés.