Guías de construcción
Video Generation API: diseño de solicitudes y flujos asíncronos
Diseña una integración de generación de vídeo para trabajos largos, coste por generación, reintentos y progreso de usuario.

Qué aprenderás
- Represent generation as a durable job rather than a long blocking request.
- Use idempotency to avoid duplicate paid generations.
- Design progress, completion, and failure states for the user.
Antes de empezar
- Basic HTTP and API knowledge
Leave with a concrete implementation checklist and a testable starting point.
Conclusiones clave
- Modela la generación como un trabajo persistente.
- Usa idempotencia para evitar generaciones duplicadas.
- Diseña estados de progreso, finalización y error.
Por qué usar trabajos
La generación de vídeo puede tardar más que una petición de chat. Modela el proceso con estado aceptado, progreso, resultado y error terminal.
No mantengas una conexión HTTP indefinida solo para mostrar progreso; guarda el estado y permite reconectar.
Coste e idempotencia
Con cobro por elemento, un reintento puede duplicar gasto. Usa una clave de idempotencia y repite solo cuando el proveedor lo permita.
Calcula el presupuesto con número de generaciones, modelo, ajustes de salida y tasa esperada de reintentos.
Experiencia de usuario
Devuelve un estado accepted claro, informa qué puede hacer el usuario durante el proceso y ofrece una URL estable. Los fallos deben incluir una acción siguiente.
Separa entrega de medios y orquestación para revisar o descargar resultados completados.
Cómo elegir
| Criterio | Opción A | Opción B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
Pasos de implementación
- 1
Crea un trabajo con clave de idempotencia.
- 2
Envía la solicitud y guarda la referencia del proveedor.
- 3
Completa por polling o callback sin bloquear la UI.
- 4
Persiste URL de resultado y estado final.
Ejemplo para copiar
const job = await db.jobs.create({ idempotencyKey, status: "queued" });
await queue.add("generate-video", { jobId: job.id, prompt });
return Response.json({ jobId: job.id, status: job.status }, { status: 202 });Preguntas frecuentes
¿Debo reintentar todo fallo de vídeo?
No. Comprueba si la generación fue aceptada y si repetirla es seguro.
Fuentes
- EasyAI documentationFuente verificada 2026-08-27