API de Transcripción de Vídeo

March 16, 2026

API de Transcripción de Vídeo

Envía un archivo de vídeo o audio y recibe una transcripción a nivel de palabra con diarización de locutores (cada segmento etiquetado con el hablante detectado). La API es compatible con vídeos de las principales plataformas y archivos de vídeo/audio subidos localmente, junto con la configuración de idioma.

Fuentes de Vídeo Compatibles

YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble y otras.

También puedes transcribir archivos locales de audio o video que subas — la subida local requiere un plan Standard o superior.


Enviar Tarea de Transcripción

POST https://wayinvideo-api.wayin.ai/api/v2/transcripts

Cuerpo de la Solicitud

ParámetroTipoRequeridoPredeterminadoDescripción
video_urlstringURL del vídeo/audio de origen o identificador del archivo
source_langstringNonullIdioma de origen. Cuando null, se detecta automáticamente.
target_langstringNonullIdioma de destino para la transcripción. Cuando null, no se aplica traducción.
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -d '{"video_url": "https://www.youtube.com/watch?v=example", "target_lang": "en"}'
import requests

requests.post(
    "https://wayinvideo-api.wayin.ai/api/v2/transcripts",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "x-wayinvideo-api-version": "v2",
    },
    json={
        "video_url": "https://www.youtube.com/watch?v=example",
        "target_lang": "en",
    },
)
await fetch("https://wayinvideo-api.wayin.ai/api/v2/transcripts", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_API_KEY",
    "x-wayinvideo-api-version": "v2",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    video_url: "https://www.youtube.com/watch?v=example",
    target_lang: "en",
  }),
});

Respuesta

{"data": {"id": "trans_proj_001", "name": "sample project name", "status": "CREATED"}}

Ejemplos

Escenarios comunes de transcripción. Reemplaza YOUR_API_KEY con una clave del API Dashboard.

Transcribir un video de YouTube

curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{"video_url": "https://www.youtube.com/watch?v=EXAMPLE"}'

Transcribir un podcast con varios locutores

Pasa cualquier URL de audio de podcast (o un identificador de archivo subido) — la diarización de locutores es automática; cada segmento de la respuesta lleva una etiqueta speaker.

curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{"video_url": "https://www.youtube.com/watch?v=EXAMPLE"}'

Traducir una transcripción no inglesa al inglés

Establece target_lang para traducir sobre la marcha. Combina con source_lang si ya conoces el origen.

curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://www.youtube.com/watch?v=EXAMPLE",
    "source_lang": "ja",
    "target_lang": "en"
  }'

Obtener Resultados de Transcripción

GET https://wayinvideo-api.wayin.ai/api/v2/transcripts/results/{id}
curl -X GET https://wayinvideo-api.wayin.ai/api/v2/transcripts/results/trans_proj_001 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2"

Respuesta

{
  "data": {
    "status": "SUCCEEDED", "cost_usage": 27.0,
    "transcript": [
      {"text": "Welcome to today's presentation", "language": null, "start": 200, "end": 4500, "speaker": "Speaker 1"},
      {"text": "Thanks for coming", "language": null, "start": 5000, "end": 8200, "speaker": "Speaker 2"}
    ]
  }
}

Campos de la Respuesta

CampoTipoDescripción
statusstringCREATED, QUEUED, ONGOING, SUCCEEDED, FAILED
error_messagestringMotivo del error (solo cuando FAILED)
cost_usagenumberAPI Units consumidas
transcriptarrayLista de segmentos de transcripción

Segmento de Transcripción

CampoTipoDescripción
textstringTexto transcrito
languagestring | nullCódigo del idioma detectado, o null
startintegerTiempo de inicio en milisegundos
endintegerTiempo de fin en milisegundos
speakerstringEtiqueta del locutor (ej.: "Speaker 1")

Preguntas frecuentes

¿Cuál es la duración máxima del video?

No hay un límite estricto de duración. La API admite tanto clips cortos como contenido largo de video o audio en las plataformas de origen compatibles.

¿La API devuelve timestamps a nivel de palabra?

Sí. Cada segmento de transcripción incluye los timestamps start y end en milisegundos, el text transcrito, el language detectado y la etiqueta speaker asignada por la diarización.

¿Cómo funciona la diarización de locutores?

Los locutores se detectan y etiquetan automáticamente (Speaker 1, Speaker 2, …) por segmento. No requiere configuración — la diarización se ejecuta en cada tarea de transcripción.

¿Qué formatos de audio y video se admiten?

Se admiten URLs de origen desde YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble y más. Para subidas locales, envía mp4, mov, webm o avi (los archivos de solo audio pueden encapsularse en uno de estos contenedores).

¿Puedo traducir la transcripción a otro idioma?

Sí — pasa el parámetro target_lang. La transcripción se traduce cuando target_lang difiere del idioma de origen. Consulta Idiomas Compatibles para ver la lista completa de códigos de idioma.