HiAPI
Blog

Tutorial

¿Cómo usar la API de texto a video de Seedance 2.5? Ejecútala directamente con curl y Python

Un prompt genera un video de 4–30 segundos con sonido; parámetros, costos y advertencias antes de producción, todo en una sola explicación.

Oct 15, 2026
¿Cómo usar la API de texto a video de Seedance 2.5? Ejecútala directamente con curl y Python

TL;DR

  • seedance-2.5/text-to-video genera un video con solo un prompt, de 4–30 segundos por clip y con sonido incluido. Abre la página del modelo para generarlo en línea; los nuevos usuarios reciben 200 créditos al registrarse.
  • Cobro por segundo: 720p cuesta $0.204 por segundo y 1080p, $0.516 por segundo. 5 segundos en 720p cuestan $1.02.
  • La API se usa en dos pasos: POST /v1/tasks para enviar la tarea y obtener el taskId para consultar el resultado. Los ejemplos de curl y Python de abajo se pueden ejecutar tal cual.

Primero, un resultado real

El siguiente video de 8 segundos en 720p se generó con un prompt y una sola solicitud; el sonido del vapor de la leche, el choque de las tazas y las voces del local los generó el propio modelo:

A barista in a small morning cafe pours steamed milk into a cup, drawing a latte art leaf.
The camera starts on her hands and slowly pulls back to reveal the counter and a sign on the wall that reads 'OPEN'.
Warm window light, realistic, smooth motion. Sound: milk steaming, cups clinking, quiet cafe chatter.

Generar con este prompt → (8 segundos, 720p)

seedance-2.5/text-to-video, 720p, 8 segundos, con sonido, $1.632.

Dos formas de empezar

Prueba en línea (sin escribir código)

  1. Abre la página del modelo Seedance 2.5 texto a video, regístrate o inicia sesión.
  2. Pega el prompt y elige la duración, la resolución y la relación de aspecto.
  3. Haz clic en generar y descarga el video cuando esté listo.

Llamada a la API

  1. Crea una API Key en la consola.
  2. Envía la tarea con POST https://api.hiapi.ai/v1/tasks; devuelve un taskId.
  3. Consulta el estado con GET /v1/tasks/{taskId}; cuando status sea success, descarga el video desde output[0].url.

curl: tu primer video

Primero ejecuta un video de 5 segundos en 720p, $1.02:

curl -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.5/text-to-video",
    "input": {
      "prompt": "一架纸飞机滑过洒满阳光的办公室,灰尘在光里漂浮,镜头跟着纸飞机缓慢移动",
      "duration": 5,
      "resolution": "720p",
      "aspect_ratio": "16:9"
    }
  }'

Respuesta:

{"code": 200, "data": {"taskId": "tk-hiapi-..."}, "message": "success"}

Consulta el resultado:

curl https://api.hiapi.ai/v1/tasks/tk-hiapi-... \
  -H "Authorization: Bearer $HIAPI_KEY"

Mientras se genera, status es handling; al terminar pasa a success y la URL del video está en output[0].url.

Python: enviar, consultar y descargar

# pip install requests;先 export HIAPI_KEY=你的 Key
import os, time, uuid, requests

KEY = os.environ["HIAPI_KEY"]
H = {"Authorization": f"Bearer {KEY}"}

def generate(prompt, model="seedance-2.5/text-to-video", timeout_s=900, **params):
    body = {"model": model, "input": {"prompt": prompt, **params}}
    # 重试提交同一个任务时带同一个 Idempotency-Key,避免重复扣费
    headers = {**H, "Idempotency-Key": str(uuid.uuid4())}
    r = requests.post("https://api.hiapi.ai/v1/tasks", json=body, headers=headers, timeout=30)
    r.raise_for_status()
    res = r.json()
    if res.get("code") != 200:
        raise RuntimeError(res)
    task_id = res["data"]["taskId"]
    deadline = time.time() + timeout_s
    while time.time() < deadline:
        d = requests.get(f"https://api.hiapi.ai/v1/tasks/{task_id}", headers=H, timeout=30).json()["data"]
        if d["status"] == "success":
            return d["output"][0]["url"]
        if d["status"] == "fail":
            raise RuntimeError(d)
        time.sleep(10)
    raise TimeoutError(task_id)

url = generate(
    "一架纸飞机滑过洒满阳光的办公室,灰尘在光里漂浮,镜头跟着纸飞机缓慢移动",
    duration=5, resolution="720p", aspect_ratio="16:9",
)
with open("clip.mp4", "wb") as f:
    f.write(requests.get(url).content)

Resumen de parámetros

Parámetro Valores Descripción
prompt Cadena, obligatorio Se puede escribir en chino o en inglés
duration Entero de 4–30, por defecto 5 En segundos; el cobro es por segundo
resolution 720p / 1080p, por defecto 720p El precio de 1080p es aproximadamente 2.5 veces el de 720p
aspect_ratio 16:9 4:3 1:1 3:4 9:16 21:9 adaptive, por defecto adaptive Para videos verticales cortos usa 9:16
generate_audio Por defecto true El sonido se genera junto con la imagen
output_format mp4 / mov

El texto a video no acepta URL de imágenes ni de videos. Para partir de una imagen, usa Seedance 2.5 imagen a video; para tomar como referencia el movimiento y la cámara de un video existente, usa Seedance 2.5 referencia a video.

Calculemos el costo

Duración 720p ($0.204/s) 1080p ($0.516/s)
5 s $1.02 $2.58
10 s $2.04 $5.16
15 s $3.06 $7.74
30 s $6.12 $15.48

Con $10 se pueden generar aproximadamente 49 segundos en 720p. Se recomienda ajustar primero el prompt con 720p y duraciones cortas, y luego generar la versión final en 1080p. Para un desglose más detallado, consulta Precios de la API de Seedance 2.5.

Atención antes de salir a producción

  • Usa callbacks en lugar de polling: en el nivel superior de la solicitud (al mismo nivel que input) agrega "callback": {"url": "https://tu-dominio/hiapi/callback"}; HiAPI notificará activamente al terminar la tarea. Deduplica por taskId.
  • Guarda los archivos a tiempo: output[0].url es un enlace temporal (se conserva aproximadamente 7 días por defecto); en cuanto lo obtengas, guárdalo en tu propio almacenamiento.
  • Reintenta con una clave de idempotencia: agrega Idempotency-Key en la cabecera de la solicitud; reintentar con la misma clave solo crea la tarea una vez y no cobra dos veces.
  • Especifica todos los parámetros: indica explícitamente duration, resolution y aspect_ratio para que el costo y la relación de aspecto coincidan con tu presupuesto.
  • Reembolso automático en caso de fallo: solo se cobra por los videos generados correctamente.

Preguntas frecuentes

¿Se puede escribir el prompt en chino?

Sí. Para obtener resultados más estables, describe en oraciones separadas cómo se mueve la cámara, cómo se mueve el sujeto y qué sonidos hay.

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

De 4–30 segundos por clip. Es el doble del límite de 15 segundos de Seedance 2.0, ideal para planos secuencia largos.

¿Se puede ahorrar desactivando el sonido?

Puedes desactivar el sonido con generate_audio en false, pero el precio se calcula por resolución y segundos, así que no se abarata por eso.

¿Cómo elegir entre Seedance 2.0 y 2.5?

Si necesitas clips individuales más largos y más material de referencia, elige 2.5; si priorizas el presupuesto o necesitas 4K, elige la ruta ext de 2.0 ($0.134 por segundo en 720p). Para una comparación detallada, consulta Diferencias entre Seedance 2.5 y 2.0.

Para más formas de escribir prompts, consulta el Manual de uso de Seedance 2.5; también puedes copiar el prompt del latte art de arriba y generarlo en la página del modelo.

Artículos relacionados

Ver todos los artículos →

Empieza a crear con artefactos de IA persistentes

Consigue tu API key y llama a modelos de imagen, vídeo y audio a través de una única API basada en tasks.

Leer la documentación de la API