Por capacidad

Videos

Los videos siempre se ejecutan como tarea: envía y luego consulta o recibe un callback. Los clips más largos y nítidos cuestan más.

#1. Elige un modelo

doubao-seedance-2.0$0.142 / solicitudLímites y estado

13 modelos en línea para esto. Al cambiar de modelo, cambia el código de abajo.

#2. Copia la solicitud

Reemplaza YOUR_API_KEY por tu clave y ejecútala. Las opciones que se muestran son las que acepta este modelo.

POSThttps://www.aisplice.store/v1/videosBearer API keyTarea asíncrona

OpcionesSolo se muestran las opciones publicadas para este modelo.

# Requires curl and jq
API_KEY="${API_KEY:-YOUR_API_KEY}"

# 1. Submit once
SUBMITTED=$(curl --fail-with-body -sS https://www.aisplice.store/v1/videos \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: model-docs-$(date +%s)-$$" \\
  -d '{
  "model": "Seedance 2.0",
  "prompt": "A cinematic scene with careful composition",
  "duration": 5,
  "resolution": "720p",
  "size": "16:9",
  "metadata": {
    "generate_audio": true
  }
}')
TASK_ID=$(printf '%s' "$SUBMITTED" | jq -r '.task_id // .id // empty')
if [ -z "$TASK_ID" ]; then
  printf '%s\n' "$SUBMITTED" >&2
  exit 1
fi
echo "task_id=$TASK_ID"

# 2. Poll until terminal
while true; do
  STATUS_JSON=$(curl --fail-with-body -sS \
    "https://www.aisplice.store/v1/videos/$TASK_ID" \
    -H "Authorization: Bearer $API_KEY")
  STATUS=$(printf '%s' "$STATUS_JSON" | jq -r '.status // empty' | tr '[:upper:]' '[:lower:]')
  echo "status=$STATUS"
  case "$STATUS" in
    completed|succeeded|success) break ;;
    failed|failure|cancelled|canceled)
      printf '%s\n' "$STATUS_JSON" | jq .
      exit 1
      ;;
  esac
  sleep 5
done

# 3. Fetch the final result
curl --fail-with-body -sS \
  "https://www.aisplice.store/v1/videos/$TASK_ID/content" \
  -H "Authorization: Bearer $API_KEY" | jq .

Este modelo requiere URL públicas de medios. Sube primero un archivo local y luego pon public_url en la solicitud al modelo. Evita cuerpos Base64 grandes.

Leer la guía de subida

Todos los parámetros

Todos los campos que acepta este modelo, con los valores permitidos.

model
stringobligatorio

Identificador exacto del modelo para esta solicitud.

doubao-seedance-2.0
prompt
stringobligatorio

Video prompt, up to 4000 characters; 500 or fewer recommended.

duration
integeropcional

Output seconds from 4 to 15.

resolution
stringopcional

Resolución de salida solicitada.

480p720p1080p4k
size
stringopcional

Aspect ratio between 0.5 and 2.5.

16:99:161:14:33:421:9adaptive
images
string[]opcional

Up to 9 public reference-image URLs, or exactly one first-frame image when image_tail is set.

metadata.video_urls
string[]opcional

URL HTTP(S) públicas de videos de origen. Máximo 3 elementos.

Ciclo de vida de la respuesta

Estado de la tarea, estados finales y ejemplos de respuesta del resultado.

Enviar
{
  "id": "task_xxx",
  "task_id": "task_xxx",
  "object": "video",
  "model": "Seedance 2.0",
  "status": "queued"
}

En espera

queued · submitted · in_progress · processing

Éxito

completed · succeeded · success

Fallo

failed · failure · cancelled · canceled

Todos los campos: /v1/videos en la referencia de la API →

#3. Obtén el resultado

La llamada de envío responde de inmediato con un task_id. Consulta la tarea cada pocos segundos hasta que status sea completed, o pasa webhook_url y te llamaremos cuando termine.

GET https://www.aisplice.store/v1/videos/{task_id}

GET https://www.aisplice.store/v1/videos/{task_id}/content

La duración y la resolución determinan el nivel de precio. Una tarea en curso se puede cancelar; consulta la referencia de la API.

Solo se cobra si tiene éxito

Una tarea fallida o cancelada se reembolsa automáticamente. El registro de solicitudes muestra el costo final de cada tarea.

Valores de estado y consulta periódica →Recibe un callback en lugar de consultar →

#Si algo sale mal

  • 400 con un nombre de campo: este modelo no acepta esa opción; usa los valores indicados en el paso 2.
  • Imagen o video de referencia rechazado: debe ser una URL pública que el modelo pueda descargar.
  • Contenido rechazado por el modelo: reformula el prompt; las solicitudes rechazadas no se cobran.
  • 402: el saldo no cubre esta solicitud; recarga en Billetera y reintenta.
  • 429: reduce el ritmo y reintenta después de los segundos indicados en Retry-After.
  • 503 model_not_found: el nombre del modelo es incorrecto o el modelo está fuera de línea; elige uno del paso 1.

Buscar otro error →

#Primer y último fotograma, imágenes y videos de referencia

Los modelos que los aceptan muestran los campos en el paso 2: primer fotograma, último fotograma, imágenes de referencia o un video de referencia. Pasa URL públicas; sube primero los archivos locales.

Cómo subir un archivo local →

Integrarlo en tu productoQué opciones mostrar primero a tus usuarios y cuáles dejar para más adelante.
Qué opciones mostrar primero a tus usuariosEmpieza con el prompt y un ajuste de precio; añade el resto cuando el flujo básico funcione.+

Intención creativa

Los campos como prompt van en la UI porque el usuario entiende directamente el resultado que cambian.

Multiplicador de costo

Los campos como duración, resolución, tamaño y cantidad solo deben introducirse cuando el precio ya se pueda explicar.

Cambio de modo

Los campos como imagen, máscara o ID de continuación cambian el propio flujo de trabajo y solo deben aparecer en modos dedicados.

Infraestructura del sistema

Los campos como webhook_secret son para integradores, no para creadores habituales, así que déjalos fuera de la UI predeterminada.

  • prompt
    Cuándo mostrarlo
    Siempre. Define la escena o la dirección del movimiento.
    Valor predeterminado recomendado
    Obligatorio en la UI.
    Por qué importa
    Sin él, los usuarios no pueden orientar la intención del clip.
  • image / images
    Cuándo mostrarlo
    Muéstralo solo en productos basados en referencias o de imagen a video.
    Valor predeterminado recomendado
    Ocúltalo en los flujos solo con prompt.
    Por qué importa
    Cambia el modo de creación y debe ser una decisión de producto deliberada.
  • duration
    Cuándo mostrarlo
    Muéstralo cuando el flujo asíncrono básico sea estable y el precio esté visible.
    Valor predeterminado recomendado
    Empieza por la duración más corta admitida.
    Por qué importa
    Es uno de los mayores multiplicadores de costo y latencia en la generación de video.
  • resolution
    Cuándo mostrarlo
    Muéstralo cuando los clientes comparen explícitamente salidas en 720p, 1080p o 4K.
    Valor predeterminado recomendado
    Elige una resolución recomendada en el servidor.
    Por qué importa
    Una resolución mayor aumenta el costo, el tiempo en cola y la sensibilidad a fallos.
  • webhook_url / webhook_secret
    Cuándo mostrarlo
    Muéstralo solo a integradores de backend, no a usuarios finales normales.
    Valor predeterminado recomendado
    En productos con UI, prefiere la consulta periódica.
    Por qué importa
    Resuelven la integración de sistemas, no la creatividad del usuario final, así que deben quedar fuera de los controles de cara al consumidor.
recommended-rollout.txt
Phase 1
- prompt
- one size or one duration default
- submit -> poll -> content

Phase 2
- one quality or resolution selector
- clear pricing hint

Phase 3
- advanced controls such as reference media, continuation, webhook, or vendor-specific tuning

Mantén una única fuente de verdad para los resultados

Cuando una tarea termine, organiza tu app en torno a la URL de la plataforma que devuelve /content. Así ocultas los detalles del proveedor upstream y la reproducción del historial se mantiene estable.

¿Sigues con el problema?

Envíanos el ID de solicitud o el mensaje de error y lo revisaremos.