Claude Opus 5.5 ya está disponible en SeedRouter

Extender vídeos con Seedance 2.5: cómo crear vídeos de 1 a 5 minutos con la API

Cómo encadenar llamadas extend de Seedance 2.5 para un vídeo de 1 a 5 minutos con la API: la solicitud, el límite de 30 s de referencia, las uniones y el coste.

Leer en Markdown

Seedance 2.5 renderiza como máximo 30 segundos por solicitud, así que un vídeo de uno a cinco minutos se construye por segmentos: genera el primer clip, envíalo de vuelta como vídeo de referencia con omni_reference_task_type: "extend" y el modelo lo continúa desde su último fotograma. Cada llamada de extensión devuelve solo la parte nueva, así que unes los segmentos uno tras otro. Una prueba del 3 de octubre de 2026 encadenó un clip de 15 segundos y tres extensiones de 15 segundos en 480p hasta un vídeo de 60 segundos; las uniones apenas se notaban y cada segmento siguió su propio prompt. El inconveniente es el coste: una solicitud de extensión se factura por los segundos del vídeo de referencia además de por los que genera.

Los datos de la solicitud proceden de la referencia de la API de Seedance 2.5. Los precios proceden de la tabla de tarifas en tiempo real que aparece más abajo, comprobada el 3 de octubre de 2026.

El vídeo de prueba de 60 segundos: un clip de 15 segundos y tres extensiones de 15 segundos en 480p, unidos con ffmpeg.

¿Puede Seedance 2.5 crear un vídeo de un minuto en una sola solicitud?

No. duration acepta de 4 a 30 segundos (o -1 para que decida el modelo), así que una solicitud termina en 30 segundos. Todo lo que sea más largo es una cadena de solicitudes. Seedance 2.5 duplicó la duración de los clips de Seedance 2.0 y añadió la posibilidad de editar y extender un vídeo que le des; la comparativa Seedance 2.5 vs 2.0 cubre las demás diferencias. Seedance 2.0 no puede extender un vídeo, así que este método es exclusivo de Seedance 2.5.

¿Cómo funciona la extensión en Seedance 2.5?

Envías un prompt de texto y un vídeo de referencia, y fijas omni_reference_task_type en extend. El modelo continúa el vídeo de referencia a partir de su último fotograma y sigue el prompt para lo que pasa después. Se aplican tres reglas de la referencia de la API:

  • ratio debe ser adaptive o no enviarse. La salida mantiene el encuadre del vídeo de referencia.
  • El vídeo de referencia va en content como un elemento video_url con el rol reference_video, solo por URL.
  • Los vídeos de referencia deben ser MP4 o MOV, de 2 a 30 segundos cada uno y como máximo 30 segundos en total, a 24–60 FPS, y de 200 MB como máximo.

Lo que mostró la prueba sobre la salida:

PreguntaResultado del 3 de octubre de 2026
¿El resultado incluye el vídeo de referencia?No. Cada extensión devolvió solo los 15 segundos nuevos.
¿El primer fotograma nuevo encaja con el último anterior?Casi. Antes y después de cada unión, el barco, la luz y el encuadre coincidían mucho.
¿Cada segmento sigue su propio prompt?Sí. La escena pasó de un arroyo en el bosque a un río en un prado, bajo un puente de piedra y a un lago al atardecer, como pedía cada prompt.
¿La salida anterior sirve directamente como siguiente referencia?Sí. La URL de salida pasó tal cual a la siguiente solicitud, sin volver a subirla.

Cada segmento genera su propio audio. El sonido en las uniones no se comprobó de oído, así que escucha los cortes antes de publicar.

¿Cómo es una solicitud de extensión?

El primer clip es una solicitud normal de texto a vídeo:

{
  "model": "dreamina-seedance-2-5",
  "content": [{"type": "text", "text": "A small red paper boat drifts down a winding forest stream at golden hour, slow tracking shot from behind"}],
  "resolution": "480p",
  "ratio": "16:9",
  "duration": 15
}

Cada segmento posterior envía el resultado anterior como vídeo de referencia:

{
  "model": "dreamina-seedance-2-5",
  "content": [
    {"type": "text", "text": "Continue the shot: the paper boat drifts out of the forest into a wide meadow river, the camera keeps tracking from behind"},
    {"type": "video_url", "video_url": {"url": "https://your-storage.example/segment-1.mp4"}, "role": "reference_video"}
  ],
  "omni_reference_task_type": "extend",
  "resolution": "480p",
  "ratio": "adaptive",
  "duration": 15
}

Ambas van a POST https://api.seedrouter.ai/v1/contents/generations/tasks, que devuelve un ID de tarea. Consulta GET https://api.seedrouter.ai/v1/contents/generations/tasks/{id} hasta que status sea succeeded y luego lee content.video_url. Escribir el siguiente prompt como "Continue the shot: …" y repetir el movimiento de cámara mantuvo el movimiento coherente en las uniones.

¿Cómo encadeno llamadas extend en un vídeo largo?

Genera, extiende desde el segmento más reciente, repite y luego une los archivos. Este script de Python lo hace con la biblioteca requests y ffmpeg:

import os, subprocess, time
import requests

API = "https://api.seedrouter.ai/v1/contents/generations/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['SEEDROUTER_API_KEY']}"}

def run(body):
    task_id = requests.post(API, json=body, headers=HEADERS).json()["id"]
    while True:
        time.sleep(15)
        task = requests.get(f"{API}/{task_id}", headers=HEADERS).json()
        if task["status"] == "succeeded":
            return task["content"]["video_url"]
        if task["status"] in ("failed", "expired"):
            raise RuntimeError(task)

prompts = [
    "A small red paper boat drifts down a winding forest stream at golden hour, slow tracking shot from behind",
    "Continue the shot: the paper boat drifts out of the forest into a wide meadow river, the camera keeps tracking from behind",
    "Continue the shot: the paper boat floats under an old stone bridge covered in ivy, warm sunset light",
    "Continue the shot: the paper boat drifts onto a calm lake at sunset, the camera slowly rises and pulls back",
]

urls = [run({"model": "dreamina-seedance-2-5", "content": [{"type": "text", "text": prompts[0]}],
             "resolution": "480p", "ratio": "16:9", "duration": 15})]
for prompt in prompts[1:]:
    urls.append(run({"model": "dreamina-seedance-2-5",
                     "content": [{"type": "text", "text": prompt},
                                 {"type": "video_url", "video_url": {"url": urls[-1]}, "role": "reference_video"}],
                     "omni_reference_task_type": "extend",
                     "resolution": "480p", "ratio": "adaptive", "duration": 15}))

with open("list.txt", "w") as f:
    for i, url in enumerate(urls):
        name = f"part{i}.mp4"
        with open(name, "wb") as out:
            out.write(requests.get(url).content)
        f.write(f"file '{name}'\n")
subprocess.run(["ffmpeg", "-f", "concat", "-safe", "0", "-i", "list.txt", "-c", "copy", "long.mp4"], check=True)

Todos los segmentos comparten códec, resolución y fotogramas por segundo, así que ffmpeg los une sin volver a codificar. Para cinco minutos con pasos de 15 segundos, añade prompts hasta tener 20; el método no cambia. La prueba cubrió 60 segundos, así que en cadenas más largas revisa cada pocos segmentos si el sujeto o el color se desvían antes de seguir.

¿Cuánto cuesta un minuto de vídeo de Seedance 2.5 con extend?

Seedance 2.5 factura por tokens de vídeo, y una solicitud de extensión paga también el vídeo de referencia:

video tokens = (output seconds + reference video seconds) × width × height × 24 / 1024

Una solicitud con vídeo de referencia aplica a todos sus tokens la tarifa más baja "con vídeo de referencia". Estas son las tarifas actuales de Seedance 2.5:

Seedance 2.5

Current rates are temporarily unavailable. No price estimate is provided; unavailable rates must not be interpreted as free usage.

Tokens medidos en 480p, 16:9, en la prueba:

SegmentoSegundos facturadosTokens indicados
Primer clip, sin referencia15 de salida144.512
Cada extensión, referencia de 15 segundos15 de referencia + 15 de salida288.225
Vídeo de 60 segundos (1 clip + 3 extensiones)—1.009.187

Para calcular un minuto, multiplica los tokens del primer clip por la tarifa "sin referencia" y los de cada extensión por la tarifa "con vídeo de referencia". Con las tarifas de arriba, un segundo extendido cuesta unas 1,2 veces un segundo generado desde cero en 480p y 720p, porque la solicitud paga el doble de segundos a una tarifa más baja. Los tokens crecen con la resolución: un segundo en 16:9 son 9.607,5 tokens en 480p, 21.600 en 720p y 48.600 en 1080p, así que la misma cadena de 60 segundos supone unas 2,25 veces más tokens en 720p y unas 5 veces más en 1080p. La guía de precios de la API de Seedance explica con más detalle las tarifas y la fórmula de los tokens.

¿Cómo abarato los vídeos largos de Seedance?

  • Haz los borradores en 480p. Define la historia y los prompts en 480p y luego renderiza la cadena final a mayor resolución.
  • Usa una referencia corta. Cada segundo de referencia se factura. La prueba usó entero el segmento anterior de 15 segundos; un fragmento más corto del final del segmento anterior factura menos segundos, pero su efecto en la continuidad no se probó.
  • Alarga los pasos. Una extensión de 30 segundos a partir de una referencia de 30 segundos añade 30 segundos por solicitud, así que un vídeo de cinco minutos necesita menos solicitudes. Los segundos facturados por segundo añadido no cambian, pero hay menos prompts que escribir y menos uniones que revisar.
  • Corta pronto una cadena que va mal. Si un segmento se desvía, vuelve a generar ese segmento en lugar de extender a partir de él. Las tareas fallidas o caducadas no se cobran.

¿Qué puede salir mal al extender un vídeo de Seedance?

  • Caras reales. El modelo no admite imágenes ni vídeos de referencia que contengan caras humanas reales. Los personajes generados no dan problemas; la guía del error de persona real explica la regla.
  • Ratio incorrecto. La referencia de la API exige ratio: "adaptive" o ningún ratio al extender; no arrastres el 16:9 de la solicitud del primer clip.
  • Límites de referencia. Un vídeo de referencia fuera de 2–30 segundos, de más de 200 MB o fuera de 24–60 FPS falla antes de generarse, con un mensaje que indica la regla, y no se cobra.
  • Desviación a lo largo de muchos pasos. Cada segmento solo ve el anterior, así que los detalles pueden ir cambiando en una cadena larga. Repite la descripción clave del sujeto en cada prompt.

Preguntas frecuentes

¿La extensión de Seedance 2.5 devuelve el vídeo completo?

No. Devuelve solo la continuación, así que tienes que unir los segmentos tú. En la prueba del 3 de octubre de 2026, cada extensión de 15 segundos devolvió un archivo de 15 segundos.

¿Se cobra el vídeo de referencia al extender?

Sí. El recuento de tokens incluye los segundos del vídeo de referencia además de los de salida, con la tarifa más baja "con vídeo de referencia".

¿Puedo extender un vídeo que no haya hecho Seedance?

Sí. Cualquier MP4 o MOV que cumpla los límites de los vídeos de referencia se puede extender. Súbelo a una URL pública y envíalo como reference_video.

¿Cuánto puede durar un vídeo de Seedance 2.5 con extend?

Cada extensión es una solicitud independiente que añade hasta 30 segundos, así que la duración depende de cuántas encadenes. La prueba llegó a 60 segundos; las cadenas más largas siguen los mismos pasos, con más ocasiones de que algo se desvíe.

¿Puede Seedance 2.0 extender un vídeo?

No. Editar y extender un vídeo propio son funciones de Seedance 2.5. Seedance 2.0 solo genera clips nuevos.

Crea tu primer vídeo largo

Ejecuta la cadena en Seedance 2.5 con una clave de SeedRouter. La referencia de la API de Seedance 2.5 recoge todos los parámetros, la guía de la API de Seedance explica las claves y el sondeo de tareas, y la guía de prompts de Seedance 2.5 te ayuda con el prompt de cada segmento. SeedRouter es de pago por uso: recargas una vez, los créditos no caducan nunca y las solicitudes fallidas no se cobran.

Guías relacionadas