Seedance 2.0 API — Coming SoonGet early access
Guía de integración de la API Seedance 1.5 Pro vía EvoLink: tareas asíncronas, rellamadas y modos
Tutorial

Guía de integración de la API Seedance 1.5 Pro vía EvoLink: tareas asíncronas, rellamadas y modos

Jessie
Jessie
COO
3 de enero de 2026
12 min de lectura

Lo que aprenderás

  • Implementar Seedance 1.5 Pro vía la API de tareas asíncronas de EvoLink (crear → estado → resultados).
  • Usar callback_url de forma segura (solo HTTPS, semántica de reintento y manejo de fallos).
  • Utilizar un único punto de conexión para texto a vídeo, imagen a vídeo y guía de primer y último fotograma.
  • Prevenir el doble procesamiento con claves de idempotencia y presupuestos de reintento.
  • Realojar los resultados antes de que expiren los enlaces (ventana de retención de 24 horas).
  • Modelar el "coste por resultado exitoso" sin depender de instantáneas de precios frágiles.
  • Comparar los pros y contras de la integración frente a Veo 3.1 y Kling O1 (basado en arquitectura, no en precio).

Lista de verificación de inicio rápido (copia y pega en tu ticket)

  • Implementar POST /v1/videos/generations para crear tareas
  • Implementar sondeo (polling) GET /v1/tasks/{task_id}
  • Implementar el punto de conexión callback_url (respuesta 2xx rápida + procesamiento asíncrono)
  • Añadir clave de idempotencia por intención de usuario (clic en "Generar")
  • Realojar los activos de vídeo en un plazo de 24 horas
  • Instrumentar: latencia p50/p95, tasa de fallos de política, tasa de reintentos, intentos por éxito

Demostración de Seedance 1.5 Pro
EvoLink expone Seedance 1.5 Pro como un flujo de generación asíncrono:
  • Crea una tarea → recibe un task_id
  • Sondea el estado vía GET /v1/tasks/{task_id} o recibe una rellamada en callback_url
  • Al completarse, obtén las URL de los results y descárgalas inmediatamente (los enlaces expiran)

Resumen de puntos de conexión

Crear tarea
  • POST https://api.evolink.ai/v1/videos/generations
Consultar tarea
  • GET https://api.evolink.ai/v1/tasks/{task_id}
Retención
  • Los enlaces de salida son válidos durante 24 horas. Recalójalo prontamente.

Un punto de conexión, tres modos (detección de modo vía image_urls)

EvoLink infiere el modo a partir de la longitud de image_urls:
  • 0 imágenes → texto a vídeo (Text-to-Video)
  • 1 imagen → imagen a vídeo (Image-to-Video)
  • 2 imágenes → primer y último fotograma (guía mediante primer y último fotograma)
Restricciones
  • Máximo 2 imágenes por solicitud
  • Cada imagen ≤ 10MB
  • Formatos: jpg/jpeg/png/webp
  • Las URL deben ser accesibles directamente por el servidor

Campos de solicitud clave en producción

Estos son los parámetros que realmente operacionalizarás:

  • model: usa "seedance-1.5-pro"
  • prompt (obligatorio): hasta 2000 tokens
  • duration: por defecto 5s; soportado de 4 a 12s

    Nota operativa: la facturación escala con la duración; trata la duración como una palanca presupuestaria de primer nivel.

  • quality: 480p o 720p (por defecto 720p)
  • aspect_ratio: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, adaptive (por defecto 16:9)
  • generate_audio: booleano (por defecto true)
    Consejo: pon el diálogo entre comillas dobles para mejorar la dicción de las líneas.
  • callback_url: URL de rellamada (solo HTTPS) para tareas completadas/fallidas/canceladas (recomendado)

Parámetros predeterminados por escenario (decisiones rápidas)

Esta tabla está diseñada para ser citada en documentos / PRD.
Escenarioduration sugeridaqualityaspect_ratiogenerate_audioNotas
Cabeza parlante / lip-sync6–8s720p9:16 o 16:9truePon el diálogo entre "comillas dobles"
Ambiente / B-roll5–8s720p16:9true/falseSi el audio no es esencial, considera generarlo sin él
Demo de producto / movimiento4–6s720padaptivefalse→trueBorrador sin audio; final con audio solo si es necesario
Iteración de guion gráfico4–5s480p16:9falseOptimiza para la velocidad de iteración; finaliza después
Continuidad de primer-último fotograma6–10s720pcoincide con tus tomastrue/falseProporciona 2 imágenes; mantén la composición consistente

Ciclo de vida de la tarea: diseña primero tu máquina de estados

Una integración fiable comienza con una máquina de estados interna predecible:

created → queued/processing → succeeded → (descargar → realojar → entregado)
                     └──────→ failed (política | transitorio | interno)
                     └──────→ cancelled
Regla clave: trata las rellamadas (callbacks) como una señal, no como la fuente de verdad. Siempre vuelve a consultar la tarea antes de finalizar el estado.

1) Crear una tarea (cURL) — apto para copiar/pegar

Este ejemplo evita problemas de escape en la terminal al usar un prompt sencillo sin comillas simples.

curl --request POST \
  --url https://api.evolink.ai/v1/videos/generations \
  --header 'Authorization: Bearer <tu_token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "seedance-1.5-pro",
    "prompt": "A detective in the rain says: \"Do not move.\" Neon reflections on the street. Subtle footsteps and radio static.",
    "duration": 8,
    "quality": "720p",
    "aspect_ratio": "16:9",
    "generate_audio": true,
    "callback_url": "https://tu-dominio.com/webhooks/evolink-task"
  }'
Comportamiento esperado

La API responde inmediatamente con un objeto de tarea que contiene al menos:

  • id (id de la tarea)
  • status
  • campos de usage (ej., billing_rule, credits_reserved)

2) Sondear estado de la tarea (cURL)

curl --request GET \
  --url https://api.evolink.ai/v1/tasks/<task_id> \
  --header 'Authorization: Bearer <tu_token>'

Al completarse, la tarea incluye:

  • Array de results con las URL de salida
  • status y progress

callback_url: reglas de fiabilidad (no las omitas)

EvoLink puede llamar a tu callback_url cuando una tarea se completa, falla o se cancela.
Restricciones y política de reintento:
  • Solo HTTPS
  • Bloqueo de IP de red interna/privada
  • Tiempo de espera (timeout): 10 segundos
  • Máximo 3 reintentos con periodos de espera de 1 / 2 / 4 segundos
  • El cuerpo de la rellamada coincide con el formato de respuesta de la consulta de tarea

Lista de verificación de rellamadas en producción (copia/pega)

  • Responder con 2xx en un plazo de 200ms–500ms (encola el trabajo; no hagas el procesamiento pesado en línea)
  • Validar que el task_id existe y pertenece a tu cliente/usuario
  • Volver a consultar inmediatamente GET /v1/tasks/{task_id} antes de marcar el estado final
  • Deduplicar rellamadas (almacena task_id + estado final; ignora repeticiones)
  • Registrar la carga útil (payload) de la rellamada para depuración (oculta secretos)
  • Alertar cuando la tasa de fallos de rellamada aumente (normalmente indica problemas en tu punto de conexión)

Idempotencia: prevenir el doble procesamiento (y el doble cargo)

Incluso si tu proveedor funciona correctamente, tu sistema puede crear duplicados debido a:

  • Los usuarios hacen doble clic en "Generar"
  • Las redes móviles reintentan la solicitud
  • Los tiempos de espera de las pasarelas
Patrón recomendado
  • El cliente genera una idempotency_key por cada intención de usuario (un clic = una clave)
  • El servidor almacena (user_id, idempotency_key)task_id con un TTL
  • En caso de repeticiones, devuelve el mismo task_id en lugar de crear una nueva tarea

No asumas que la idempotencia se "maneja automáticamente" a menos que la API lo documente explícitamente. Impleméntala en el nivel de tu aplicación.


Entrega de activos: la trampa de las 24 horas

Dado que los enlaces de resultados expiran en 24 horas, tu pipeline debería:

  • Descargar el resultado inmediatamente cuando el status=completed
  • Realojarlo en tu propio almacenamiento de objetos (S3/GCS/R2)
  • Servirlo vía CDN
  • Persistir metadatos: task_id, hash del prompt, id de usuario, duración, calidad, bandera de audio, categoría de moderación
Fallo común: "El usuario vuelve mañana y el enlace ha expirado".

Evítalo realojando automáticamente al completarse la tarea.


Modelado de costes sin instantáneas de precios

Incluso si no publicas cifras de precios, necesitas un modelo económico de unidad duradero.

1) Conoce qué factura la plataforma

Operativamente, tu gasto se rige por:

  • duration (clips más largos → más costosos)
  • generate_audio (el audio añade coste)
  • Iteración (los usuarios rara vez aciertan a la primera)

2) Presupuesta "coste por resultado exitoso", no "coste por intento"

Rastrea:

  • attempts_per_success (por escenario)
  • retry_rate
  • policy_failure_rate
  • p95_latency

Así, tu unidad real sería:

resultados exitosos por sesión × promedio de intentos necesarios

3) Borrador → Aprobar → Final (la forma más fiable de reducir gastos)

Cuando veas una alta iteración:

  • Genera borradores usando configuraciones más económicas (ej. menor calidad/duración) o un modelo más barato
  • Finaliza con Seedance 1.5 Pro (con audio) solo después de que el usuario lo apruebe

Errores comunes en producción y soluciones

1) El problema del asincronismo (timeouts + trabajos zombies)

No mantengas abierta una única solicitud HTTP. Devuelve siempre el task_id de inmediato y finaliza mediante rellamada o sondeo.
Mejor práctica
  • Establece un "TTL del trabajo" y un estado de UI de "procesando"
  • Rastrea el tiempo de finalización p95; degrada el servicio con elegancia si hay picos

2) Los resultados de moderación pueden llegar tarde

Diseña estados de UI/backend para "fallo después del procesamiento".

  • Separa: política vs transitorio vs interno
  • Nunca reintentes automáticamente fallos de política de contenido
  • Proporciona orientación para reescribir el prompt (especialmente en contenido sensible)

Diagrama de comparación 1Diagrama de comparación 2

Comparación: Seedance 1.5 Pro vs Veo 3.1 vs Kling O1

Los números envejecen rápido. Compara lo que perdura: la estructura de integración y el ajuste al flujo de trabajo.

Tabla A — Integración y estructura de costes

DimensiónSeedance 1.5 Pro (vía EvoLink)Veo 3.1Kling O1
Unidad contablePor llamada según duración/audio + campos de usoComúnmente contabilidad basada en duraciónVaría según la ruta de acceso (planes/créditos)
Contrato de integraciónTarea asíncrona + rellamada/sondeoPatrones de trabajo asíncronos comunesVaría ampliamente según el proveedor
Audio-vídeo nativoSoportado vía generate_audioEl audio nativo suele ser centralDepende de la ruta de acceso/versión
Previsibilidad operativaAlta si realojas en 24h y aplicas idempotenciaAlta cuando el ecosistema y contrato son establesDepende de la semántica de acceso del proveedor
Mejor ajusteClips cortos críticos de audio + control de primer/último fotogramaPresupuesto basado en duración + ecosistema GoogleProductos centrados en edición/estilización
Conclusión: Seedance vía EvoLink es mejor cuando buscas un contrato asíncrono estable y resultados críticos de audio. Veo es atractivo si prefieres presupuestar por duración. Kling O1 brilla cuando la edición/estilización es el núcleo del producto.

Tabla B — Matriz de decisión en producción

Si tu prioridad es…Seedance 1.5 Pro (vía EvoLink)Veo 3.1Kling O1
Una API para texto/imagen/primer-últimoSí (longitud de image_urls)Depende de puntos de conexiónDepende del proveedor
Rellamadas (callbacks) fiablesSemántica de reintento definidaDepende del proveedorDepende del proveedor
Previsibilidad operativa de activosRequiere realojamiento en 24hDepende del proveedorDepende del proveedor
Flujos de generación + ediciónNo es el posicionamiento principalNo es el posicionamiento principalSuele ser el diferenciador
Menor complejidad de integraciónAlta (un solo punto de conexión)Alta si ya estás en el ecosistemaMedia-Baja si la semántica está fragmentada

Lista de verificación de decisión (SÍ/NO rápido)

Usa Seedance 1.5 Pro vía EvoLink si:
  • Necesitas audio nativo y puedes estructurar diálogos entre comillas.
  • Necesitas texto a vídeo + imagen a vídeo + primer/último fotograma bajo un mismo contrato.
  • Puedes automatizar el realojamiento de activos en un plazo de 24 horas.
Usa Veo 3.1 si:
  • Prefieres presupuestar por duración y un flujo de trabajo estable en el ecosistema cloud de Google.
Usa Kling O1 si:
  • La edición/estilización es fundamental y has confirmado un acceso estable.

FAQ

Usa image_urls. 0 imágenes = texto a vídeo, 1 = imagen a vídeo, 2 = guía de primer y último fotograma.

P: ¿Rellamada (webhook) o sondeo (polling)? ¿Cuál es más seguro?

Usa callback_url si es posible. No obstante, vuelve a consultar el estado de la tarea antes de marcar el estado final.

P: ¿Por qué debo realojar el resultado?

Los enlaces expiran en 24 horas. Descarga y almacena los resultados rápidamente.

P: ¿Cómo evito tareas duplicadas cuando los usuarios reintentan?

Implementa idempotencia por intención de usuario: (user_id, idempotency_key)task_id.

Empieza a construir con Seedance 1.5 Pro hoy mismo

Ya conoces el contrato. Entiendes las ventajas y desventajas. Ahora conviértelo en una función de producción.

EvoLink te ofrece un camino limpio desde el prompt → tarea → entrega:
  • Una sola clave de API para Seedance 1.5 Pro, Veo 3.1, Kling y otros modelos.
  • Tareas asíncronas + rellamadas con semántica de reintento definida.
  • Facturación basada en el uso con créditos transparentes y sin mínimos.

La mayoría de los equipos se integran en menos de una hora.

¿Listo para reducir tus costos de IA en un 89%?

Comienza a usar EvoLink hoy y experimenta el poder del enrutamiento inteligente de API.