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ámetro | Tipo | Requerido | Predeterminado | Descripción |
|---|---|---|---|---|
video_url | string | Sí | — | URL del vídeo/audio de origen o identificador del archivo |
source_lang | string | No | null | Idioma de origen. Cuando null, se detecta automáticamente. |
target_lang | string | No | null | Idioma 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
| Campo | Tipo | Descripción |
|---|---|---|
status | string | CREATED, QUEUED, ONGOING, SUCCEEDED, FAILED |
error_message | string | Motivo del error (solo cuando FAILED) |
cost_usage | number | API Units consumidas |
transcript | array | Lista de segmentos de transcripción |
Segmento de Transcripción
| Campo | Tipo | Descripción |
|---|---|---|
text | string | Texto transcrito |
language | string | null | Código del idioma detectado, o null |
start | integer | Tiempo de inicio en milisegundos |
end | integer | Tiempo de fin en milisegundos |
speaker | string | Etiqueta 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.