Cómo Usar la API Seedance 2.0 en 2026

Ashley Innocent

Ashley Innocent

4 April 2026

Cómo Usar la API Seedance 2.0 en 2026

En resumen

La API de Seedance 2.0 se lanzó el 2 de abril de 2026 a través de Volcengine Ark. Se envía una tarea de generación de video con una solicitud POST, luego se consulta un endpoint GET hasta que el estado llegue a "succeeded" (éxito). La API admite texto a video, imagen a video, control del primer y último fotograma, referencias multimodales y generación de audio nativo. Un video de 5 segundos en 1080p cuesta aproximadamente $0.93. Descargue el video en 24 horas. La URL caduca después de ese tiempo.

Hypereal AI

Introducción

El 2 de abril de 2026, la plataforma Volcengine Ark de ByteDance lanzó la API oficial de Seedance 2.0. Antes de esa fecha, la única forma de generar videos de Seedance 2.0 era a través de la consola web. Si ha visto tutoriales que muestran un recorrido por la interfaz de usuario, esos fueron escritos para la consola. Esta guía cubre la API real que los desarrolladores pueden llamar programáticamente.

💡
La API sigue un patrón de tarea asíncrona: POST para crear una tarea, recibir un ID de tarea, luego sondear un endpoint GET hasta que el trabajo finalice. Vale la pena probar ese patrón de principio a fin antes de implementarlo. Los escenarios de prueba de Apidog le permiten encadenar el envío POST, extraer el ID de la tarea, realizar un bucle de sondeo GET y afirmar que la respuesta final contiene una URL de video válida. Descargue Apidog gratis para seguir los pasos de prueba en la sección de Apidog a continuación.

Este artículo cubre todos los tipos de entrada admitidos, los cálculos de precios a partir del recuento de tokens de respuesta y los errores que encontrará en producción.

¿Qué es Seedance 2.0?

Seedance 2.0 es un modelo de generación de video de ByteDance. Se ejecuta en Volcengine Ark bajo los ID de modelo doubao-seedance-2-0-260128 (estándar) y doubao-seedance-2-0-fast-260128 (más rápido, menor calidad).

El modelo admite más tipos de entrada que la versión 1.5. La versión 1.5 manejaba texto a video e imagen a video. La versión 2.0 agrega:

El modelo genera videos a 24 fps con relaciones de aspecto de 1:1 a 21:9. Usted elige la resolución en el momento de la solicitud.

Qué cambió: guía vs API oficial

Artículos anteriores sobre Seedance 2.0, incluida una guía de febrero de 2026 en este sitio, describían la consola web de Seedance 2.0 en Volcengine. En ese momento no existía una API. Esas guías explicaban cómo rellenar un campo de prompt en una página web y hacer clic en un botón de generar.

El lanzamiento de la API del 2 de abril de 2026 cambia eso por completo. Ahora puede llamar a la API desde cualquier lenguaje, automatizar pipelines de generación de video e integrar Seedance en su propio producto. Esta guía anula el recorrido por la interfaz de usuario para cualquier caso de uso de desarrollador.

Requisitos previos

Necesita una cuenta de Volcengine para empezar. Cree una en volcengine.com. Una vez que su cuenta esté activa, vaya a la consola de Ark en:

https://console.volcengine.com/ark/region:ark+cn-beijing/apikey

Genere una clave API allí. Luego, expórtela como una variable de entorno:

export ARK_API_KEY="your-api-key-here"

Cada solicitud a la API utiliza esta clave en un encabezado de token Bearer:

Authorization: Bearer YOUR_ARK_API_KEY

Las cuentas nuevas reciben créditos de prueba gratuitos. Estos cubren aproximadamente 8 generaciones completas de 15 segundos a 1080p antes de que tenga que pagar algo.

Texto a video: su primera solicitud

La URL base para todas las llamadas a la API de Seedance es:

https://ark.cn-beijing.volces.com/api/v3

Para enviar una tarea de texto a video, POST a /v1/contents/generations/tasks.

Ejemplo cURL

curl -X POST "https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -d '{
    "model": "doubao-seedance-2-0-260128",
    "content": [
      {
        "type": "text",
        "text": "A golden retriever running through a sunlit wheat field, wide tracking shot, cinematic"
      }
    ],
    "resolution": "1080p",
    "ratio": "16:9",
    "duration": 5,
    "watermark": false
  }'

La API devuelve un ID de tarea inmediatamente:

{"id": "cgt-2025xxxxxxxx-xxxx"}

Ejemplo de Python (SDK oficial)

Primero, instale el SDK:

pip install volcenginesdkarkruntime

Luego envíe una tarea:

import os
from volcenginesdkarkruntime import Ark

client = Ark(api_key=os.environ.get("ARK_API_KEY"))

resp = client.content_generation.tasks.create(
    model="doubao-seedance-2-0-260128",
    content=[
        {
            "type": "text",
            "text": "A golden retriever running through a sunlit wheat field, wide tracking shot, cinematic"
        }
    ],
    resolution="1080p",
    ratio="16:9",
    duration=5,
    watermark=False,
)

print(resp.id)

Guarde el ID de la tarea. Lo necesitará para el paso de sondeo.

El patrón de tarea asíncrona: enviar, sondear, descargar

La generación de Seedance no es instantánea. Un video de 5 segundos en 1080p suele tardar entre 60 y 120 segundos. La API maneja esto con un ciclo de vida de tarea asíncrona:

queued -> running -> succeeded
                  -> failed
                  -> expired
                  -> cancelled

Usted sondea el endpoint GET hasta que el estado cambie de queued o running.

Bucle de sondeo completo en Python

import os
import time
import requests
from volcenginesdkarkruntime import Ark

client = Ark(api_key=os.environ.get("ARK_API_KEY"))

# Step 1: submit
resp = client.content_generation.tasks.create(
    model="doubao-seedance-2-0-260128",
    content=[
        {"type": "text", "text": "Aerial shot of a mountain lake at sunrise, slow dolly forward"}
    ],
    resolution="1080p",
    ratio="16:9",
    duration=5,
    watermark=False,
)

task_id = resp.id
print(f"Task submitted: {task_id}")

# Step 2: poll with exponential backoff
wait = 10
while True:
    result = client.content_generation.tasks.get(task_id=task_id)
    status = result.status
    print(f"Status: {status}")

    if status == "succeeded":
        video_url = result.content.video_url
        print(f"Video URL: {video_url}")
        break
    elif status in ("failed", "expired", "cancelled"):
        print(f"Task ended with status: {status}")
        break

    time.sleep(wait)
    wait = min(wait * 2, 60)  # cap at 60 seconds

# Step 3: download immediately
if status == "succeeded":
    response = requests.get(video_url, stream=True)
    with open("output.mp4", "wb") as f:
        for chunk in response.iter_content(chunk_size=8192):
            f.write(chunk)
    print("Downloaded: output.mp4")

El retroceso exponencial evita saturar la API. El límite de 60 segundos mantiene el sondeo lo suficientemente frecuente para un uso práctico.

Imagen a video (I2V): animando una imagen estática

Para animar una imagen, agregue un objeto image_url al array content junto con su prompt de texto. La imagen se convierte en el primer fotograma del video.

resp = client.content_generation.tasks.create(
    model="doubao-seedance-2-0-260128",
    content=[
        {
            "type": "text",
            "text": "The woman slowly turns her head and smiles at the camera"
        },
        {
            "type": "image_url",
            "image_url": {"url": "https://example.com/portrait.jpg"}
        }
    ],
    ratio="adaptive",
    duration=5,
    watermark=False,
)

Establecer ratio en "adaptive" le indica al modelo que use la relación de aspecto nativa de la imagen de entrada. Esto evita recortes o bandas negras no deseados.

Cada imagen debe pesar menos de 30 MB. Puede suministrar hasta 9 imágenes en una sola solicitud.

Primer y último fotograma: controlando los puntos de inicio y fin

Seedance 2.0 admite el control de los fotogramas de inicio y fin. Usted proporciona la imagen del primer fotograma, la imagen del último fotograma y un prompt de texto. El modelo genera el movimiento intermedio.

Esto es útil para transiciones de productos, efectos de transformación o cualquier secuencia en la que conozca sus estados de inicio y fin.

resp = client.content_generation.tasks.create(
    model="doubao-seedance-2-0-260128",
    content=[
        {
            "type": "text",
            "text": "The flower blooms from bud to full open, macro lens, soft light"
        },
        {
            "type": "image_url",
            "image_url": {"url": "https://example.com/flower-bud.jpg"}
        },
        {
            "type": "image_url",
            "image_url": {"url": "https://example.com/flower-open.jpg"}
        }
    ],
    ratio="adaptive",
    duration=8,
    watermark=False,
)

El modelo infiere que dos imágenes significan modo de primer y último fotograma cuando también hay un prompt de texto. Incluya ambas imágenes en orden: primer fotograma primero, último fotograma segundo.

También puede usar return_last_frame: true al generar un clip. Esto devuelve una imagen del fotograma final junto con la URL del video. Use esa imagen como el primer fotograma de su próxima solicitud para encadenar varios clips en una secuencia más larga.

Referencia multimodal: combinando imágenes, video y audio

Una de las adiciones más fuertes en Seedance 2.0 es la aceptación de video y audio como entradas de referencia en la misma solicitud que las imágenes y el texto.

El array de contenido puede contener:

Límites por solicitud:

Un ejemplo de referencia combinada:

resp = client.content_generation.tasks.create(
    model="doubao-seedance-2-0-260128",
    content=[
        {
            "type": "text",
            "text": "Match the visual style of the reference clip and add the provided background audio"
        },
        {
            "type": "image_url",
            "image_url": {"url": "https://example.com/style-reference.jpg"}
        },
        {
            "type": "video_url",
            "video_url": {"url": "https://example.com/motion-reference.mp4"}
        },
        {
            "type": "audio_url",
            "audio_url": {"url": "https://example.com/background-music.mp3"}
        }
    ],
    duration=10,
    ratio="16:9",
    watermark=False,
)

Cuando incluye una referencia de video, la tarifa de facturación baja al nivel V2V: aproximadamente $3.90 por millón de tokens en lugar de $6.40.

Generación de audio nativo

Establezca generate_audio: true para que Seedance genere una pista de audio junto con el video. El modelo realiza una generación conjunta de audio y video, por lo que los sonidos coinciden con la acción en pantalla en lugar de superponerse después.

La generación de audio cubre diálogos, efectos de sonido, ruido ambiental y música de fondo. La sincronización labial funciona en más de 8 idiomas.

resp = client.content_generation.tasks.create(
    model="doubao-seedance-2-0-260128",
    content=[
        {
            "type": "text",
            "text": "A street musician plays guitar outside a cafe in Paris, crowds passing by, city sounds"
        }
    ],
    resolution="1080p",
    ratio="16:9",
    duration=10,
    generate_audio=True,
    watermark=False,
)

La generación de audio nativo aumenta ligeramente el consumo de tokens en comparación con el video silencioso. Tenga esto en cuenta en sus estimaciones de costos.

Controlando la resolución, la relación de aspecto y la duración

Tres parámetros dan forma a la salida:

resolution acepta "480p", "720p", "1080p" o "2K". El valor predeterminado es "1080p". Una mayor resolución significa más tokens consumidos y un mayor costo.

ratio acepta "16:9", "9:16", "4:3", "3:4", "21:9", "1:1" o "adaptive". Use "adaptive" cuando su imagen de entrada tenga una relación de aspecto inusual. El modelo lee las dimensiones de la imagen y establece la relación de aspecto en consecuencia.

duration acepta enteros de 4 a 15. La unidad es segundos. El valor predeterminado es 5. Los videos más largos cuestan proporcionalmente más.

El modelo rápido (doubao-seedance-2-0-fast-260128) genera con menor calidad pero finaliza más rápido. Úselo para prototipos o cuando esté iterando en prompts. Cambie al modelo estándar para la salida de producción.

Cuándo elegir Seedance 2.0 sobre otras API de video: elija Seedance cuando necesite generación conjunta nativa de audio y video, control de fotogramas de inicio y fin, o entradas de referencia multimodales. Si solo necesita texto a video simple y el costo es la prioridad, el modelo rápido a 480p es la opción más económica en esta clase.

Leyendo el costo de la respuesta

Una vez que una tarea tiene éxito, la respuesta incluye un campo usage:

{
  "usage": {
    "completion_tokens": 246840,
    "total_tokens": 246840
  }
}

El consumo de tokens se correlaciona con la duración y la resolución del video. Un punto de referencia de la documentación oficial: un video de 15 segundos en 1080p consume aproximadamente 308,880 tokens. Un video de 5 segundos en 1080p utiliza aproximadamente 102,960 tokens.

El precio para T2V e I2V a 1080p es de 46 yuanes por millón de tokens (aproximadamente $6.40 por millón de tokens a los tipos de cambio actuales).

Estimaciones rápidas:

Para tareas V2V (solicitudes que incluyen una referencia de video), la tarifa baja a 28 yuanes por millón de tokens (aproximadamente $3.90 por millón de tokens).

Puede verificar el recuento exacto de tokens en cada respuesta y construir un seguimiento de costos en su aplicación. Multiplique completion_tokens por la tarifa para su tipo de tarea.

Importante: descargue el video en un plazo de 24 horas

La video_url en una respuesta exitosa apunta al almacenamiento de objetos de Volcengine. Esa URL caduca 24 horas después de que la tarea tenga éxito. Después de eso, la URL devuelve un error 403 y el archivo desaparece.

Siempre descargue el archivo a su propio almacenamiento inmediatamente después de que el estado cambie a succeeded. El bucle de sondeo de la sección anterior incluye este paso de descarga como parte del flujo estándar.

El campo execution_expires_after confirma la ventana de caducidad en segundos. 172800 significa 48 horas para el registro de la tarea en sí. La URL del video aún caduca a las 24 horas, independientemente. Confíe en la regla de las 24 horas.

El historial de tareas también está limitado a los últimos 7 días. No puede consultar tareas más antiguas que eso.

Cómo probar la API de Seedance con Apidog

El patrón de tarea asíncrona tiene dos llamadas API que dependen una de la otra. No puede escribir una prueba de una sola solicitud para ello. Los escenarios de prueba de Apidog manejan esto con un flujo encadenado.

Aquí está la configuración exacta:

Paso 1: Crear un escenario de prueba

En Apidog, vaya al módulo Pruebas y cree un nuevo escenario llamado "Seedance 2.0 video generation". Establezca su variable de entorno ARK_API_KEY en la configuración de entorno de Apidog. Use {{ARK_API_KEY}} en cualquier lugar donde referenciaría la clave.

Paso 2: Agregar la solicitud de envío

Agregue un paso de solicitud POST personalizado a https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks. Establezca el encabezado de Autorización en Bearer {{ARK_API_KEY}}. Agregue su cuerpo JSON con los campos del modelo y el contenido.

Después de este paso, agregue un procesador de Extracción de Variables. Configúrelo para extraer del cuerpo de la respuesta usando la expresión JSONPath $.id. Guarde el valor en una variable de entorno llamada TASK_ID.

Paso 3: Agregar un procesador de Espera

Inserte un procesador de Espera después del paso de extracción. Establezca el retraso en 30 segundos. Esto le da tiempo al modelo para comenzar a procesar antes de su primer intento de sondeo.

Paso 4: Agregar la solicitud de sondeo en un bucle For

Agregue un bloque de control de bucle For con un máximo de 20 iteraciones. Dentro del bucle:

  1. Agregue un paso de solicitud GET a https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks/{{TASK_ID}} con el mismo encabezado de Autorización.
  2. Agregue un procesador de Espera con un retraso de 10 segundos después de la solicitud GET.
  3. Establezca la condición de Ruptura del bucle Si: $.status == "succeeded" o $.status == "failed".

Paso 5: Agregar afirmaciones

Después de que el bucle finalice, agregue un procesador de Afirmación que verifique:

Ejecute el escenario y Apidog generará un informe de prueba completo que muestra cada paso, el ID de tarea extraído, todas las respuestas del sondeo y si las afirmaciones finales pasaron.

También puede importar los endpoints de Seedance directamente desde un comando cURL a los pasos del escenario de prueba. Este enfoque funciona bien cuando desea agregar rápidamente las solicitudes de envío y sondeo sin ingresar manualmente cada encabezado y parámetro.

Desglose de precios: lo que cuesta un video de 10 segundos

La API de Seedance utiliza un modelo de precios de pago por uso de tokens. No hay tarifas mensuales ni créditos que administrar más allá del saldo de prueba inicial.

Tipo de tarea Tarifa (por 1M de tokens)
T2V / I2V a 1080p 46 yuanes (~$6.40)
V2V (entrada de referencia de video) 28 yuanes (~$3.90)

Costos aproximados para duraciones comunes a 1080p:

Duración Tokens aproximados Costo (T2V/I2V)
5 segundos ~103,000 ~$0.66 yuanes / ~$0.93
10 segundos ~206,000 ~$9.48 yuanes / ~$1.32
15 segundos ~309,000 ~$14.21 yuanes / ~$1.97

Las cuentas nuevas comienzan con créditos de prueba gratuitos que cubren alrededor de 8 generaciones completas de 15 segundos. Use esta asignación para experimentar con prompts y configuraciones antes de comprometerse con una carga de trabajo de producción.

Una menor resolución reduce significativamente el consumo de tokens. Un video de 480p de la misma duración cuesta considerablemente menos que uno de 1080p. Comience el desarrollo a 720p, luego actualice la resolución solo para su salida final.

Errores comunes y soluciones

429 Demasiadas Solicitudes

Esto significa que ha alcanzado el límite de concurrencia, no un límite de velocidad en las solicitudes por minuto. Demasiadas tareas se están ejecutando al mismo tiempo. Use retroceso exponencial cuando vea este código de estado. Comience con una espera de 10 segundos y duplíquela en cada reintento, con un tope de 60 segundos. El bucle de sondeo mostrado anteriormente incluye este patrón.

estado: "failed"

Una tarea fallida significa que el modelo no pudo generar el video. Causas comunes: el prompt contenía contenido que violaba los filtros de seguridad, la imagen de entrada estaba dañada o era demasiado grande, o la combinación de parámetros no era válida. Verifique sus archivos de entrada y el prompt, luego vuelva a enviarlo.

estado: "expired"

Una tarea caduca si permanece en la cola demasiado tiempo sin completarse. Esto puede ocurrir durante períodos de alta carga. Vuelva a enviar la tarea. No hay forma de reiniciar una tarea caducada.

403 en video_url

La URL ha caducado. La ventana de 24 horas pasó antes de que descargara el archivo. El registro de la tarea aún puede existir en la API hasta por 7 días, pero el archivo de video ha desaparecido. Tendrá que volver a generarlo utilizando los mismos parámetros y valor de semilla si lo guardó.

Reproducibilidad de la semilla

Si guardó el valor seed de una respuesta anterior, páselo de nuevo en la siguiente solicitud con los mismos parámetros. El modelo intentará reproducir la misma salida. Esto es útil para regenerar videos caducados con resultados idénticos.

Conclusión

La API de Seedance 2.0 le brinda acceso programático a uno de los modelos de generación de video más capaces disponibles en la actualidad. El patrón de tarea asíncrona es sencillo: POST para crear una tarea, sondear hasta que tenga éxito, descargar inmediatamente. Las entradas multimodales, la generación de audio nativo y el control de fotogramas de inicio y fin hacen posible construir flujos de trabajo de video que eran imposibles desde una consola web.

Configure su cobertura de pruebas en Apidog antes de pasar a producción. La cadena de escenarios de prueba detecta lógicas de sondeo defectuosas, pasos de extracción faltantes y problemas de caducidad de URL antes de que afecten a los usuarios reales.

button

Preguntas Frecuentes (FAQ)

P: ¿Cuál es la diferencia entre doubao-seedance-2-0-260128 y doubao-seedance-2-0-fast-260128?

El modelo estándar produce una salida de mayor calidad y es el predeterminado para producción. El modelo rápido completa los trabajos más rápidamente con una calidad visual inferior. Use el modelo rápido cuando itere en prompts y cambie al estándar para los renders finales.

P: ¿Puedo usar Seedance 2.0 fuera de China?

El endpoint de la API está alojado en la región de Beijing. Los desarrolladores fuera de China pueden llamarlo, pero la latencia será mayor. Consulte los términos de servicio de Volcengine para conocer cualquier restricción geográfica en su tipo de cuenta.

P: ¿Cómo encadeno varios clips en un video más largo?

Establezca return_last_frame: true en cada generación. La respuesta incluirá una imagen del último fotograma junto con la URL del video. Pase esa imagen como el primer fotograma de su siguiente solicitud. Repita hasta que tenga todos los clips que necesite, luego únalos usando una biblioteca de edición de video.

P: ¿La generación de audio nativo cuesta más?

La generación de audio nativo aumenta ligeramente el consumo de tokens porque el modelo realiza una generación conjunta de audio y video en lugar de solo video. Espere un aumento modesto en completion_tokens en comparación con la misma solicitud sin generate_audio: true.

P: ¿Puedo establecer un webhook en lugar de sondear?

Sí. Pase un parámetro callback_url en su solicitud de envío. La API enviará el resultado de la tarea completada a esa URL cuando el estado cambie. Esto es más eficiente que el sondeo para pipelines de alto volumen.

P: ¿Qué sucede si excedo el límite de 9 imágenes?

La API devuelve un error de validación 400 antes de que se cree la tarea. Reduzca el número de imágenes en su array de contenido a 9 o menos.

P: ¿Se garantiza que el parámetro de semilla reproduzca exactamente el mismo video?

El parámetro de semilla hace que las salidas sean más reproducibles. La reproducción exacta no está garantizada si los parámetros difieren o si cambian las versiones del modelo en el servidor. Es la aproximación más cercana disponible.

P: ¿Cómo hago un seguimiento del gasto en múltiples tareas?

Lea el campo completion_tokens de la respuesta de cada tarea y multiplíquelo por la tarifa de tokens de su nivel. Registre estos valores en una base de datos para el seguimiento de costos. No hay un panel de gastos incorporado en la API, así que construya su propio seguimiento desde el principio.

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs