Claude Opus 5.5 ya está disponible en SeedRouter
SeedRouter Docs

Veo 3.1

Genera clips de vídeo con Veo 3.1 mediante una sola API de tareas: tres modelos con precio por clip de 8 segundos y dos con precio por segundo, con fotogramas, audio y salida GIF.

View Markdown

Veo 3.1 es el modelo de generación de vídeo de Google. SeedRouter lo ofrece con cinco ID de modelo en un mismo endpoint: tres con precio por clip, cada clip de 8 segundos, y dos con precio por segundo y más controles (duración, audio, semilla, prompt negativo, primer y último fotograma). Envía la solicitud, guarda el identificador de tarea devuelto y lee el vídeo terminado desde la tarea. Las imágenes se envían como URL.

ID de modelo

ID de modeloFacturaciónDuraciónImágenesAudio
veo-3.1-fastpor clip8 segundoshasta 3, modo fotogramas o referenciassin interruptor
veo-3.1-qualitypor clip8 segundoshasta 3, modo fotogramassin interruptor
veo-3.1-litepor clip8 segundosninguna (texto a vídeo)sin interruptor
veo-3.1-fast-officialpor segundo4, 6 u 8 segundosprimer y último fotogramagenerate_audio
veo-3.1-quality-officialpor segundo4, 6 u 8 segundosprimer y último fotogramagenerate_audio

Consulta la página del modelo para ver los precios actuales.

Ejemplo rápido

curl https://api.seedrouter.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-fast",
    "prompt": "A red paper boat drifts across a calm pond at sunrise, soft mist on the water, slow push-in on a 35mm lens, no text, no logos.",
    "resolution": "720p",
    "aspect_ratio": "16:9"
  }'

Endpoint

POST https://api.seedrouter.ai/v1/videos/generations
EncabezadoValor
AuthorizationBearer YOUR_API_KEY
Content-Typeapplication/json

La respuesta es una tarea ({"id": "task_...", "status": "processing"}), no el vídeo terminado. Consulta GET /v1/tasks/{task_id} para obtener el resultado. Guarda las claves de API en código del lado del servidor.

Parámetros: modelos por clip

veo-3.1-fast, veo-3.1-quality y veo-3.1-lite.

CampoTipoPor defectoNotas
modelstringobligatorioUno de los tres ID anteriores.
promptstringobligatorioDescribe el plano.
durationinteger8Solo se acepta 8.
aspect_ratioenum16:9 o 9:16.
resolutionenum720p720p, 1080p o 4k (en mayúsculas o minúsculas). veo-3.1-lite no tiene 4k.
enable_gifbooleanfalseDevuelve el clip como GIF animado en lugar de MP4. Solo 720p.
nsfw_checkbooleanfalseRevisa el prompt y las imágenes en busca de contenido no seguro antes de generar.
image_urlsarraySolo Fast y Quality. Hasta 3 URL de imágenes públicas.
generation_typeenumsegún el número de imágenesSolo Fast y Quality. frame o reference; Quality solo admite frame.

Parámetros: modelos por segundo

veo-3.1-fast-official y veo-3.1-quality-official.

CampoTipoPor defectoNotas
modelstringobligatorioUno de los dos ID anteriores.
promptstringobligatorioDescribe el plano.
negative_promptstringLo que debe quedar fuera del clip.
durationinteger84, 6 u 8 segundos.
aspect_ratioenum16:916:9 o 9:16.
resolutionenum720p720p, 1080p o 4k (en mayúsculas o minúsculas).
first_frame_imagestringURL de imagen pública. El clip empieza en ella.
last_frame_imagestringURL de imagen pública. Requiere first_frame_image.
seedintegeraleatorioDe 0 a 4294967295.
generate_audiobooleanfalseAñade una pista de audio. Se factura con una tarifa por segundo más alta.
person_generationenumallow_adultallow_adult o disallow.
resize_modeenumpadpad o crop. Requiere first_frame_image.
enhance_promptbooleantrueSolo se acepta true; en otro caso, omite el campo.
nsfw_checkbooleanfalseRevisa el prompt y las imágenes en busca de contenido no seguro antes de generar.

El esquema es estricto: los campos desconocidos se rechazan en lugar de ignorarse, y cada modelo solo admite sus propios campos. No hay callbacks disponibles; consulta la tarea en su lugar.

Modos de imagen

En veo-3.1-fast y veo-3.1-quality, generation_type define cómo se usan las image_urls:

generation_typeImágenesEfecto
frame1 o 2La primera imagen es el primer fotograma y la segunda, el último.
referencehasta 3Las imágenes sirven de referencia para el sujeto y el estilo. Solo Fast.
omitido2 o 3Dos imágenes usan el modo fotogramas; tres, el modo referencias.

veo-3.1-quality no ejecuta el modo referencias, así que rechaza generation_type: "reference" y tres imágenes sin generation_type. veo-3.1-lite no admite imágenes.

En los modelos por segundo, define first_frame_image y, opcionalmente, last_frame_image. resize_mode elige si una imagen con otra forma se rellena o se recorta.

Entradas multimedia

Las imágenes son URL HTTP(S) públicas:

{ "image_urls": ["https://example.com/first.jpg", "https://example.com/last.jpg"] }

En los modelos por clip, cada imagen es JPEG, PNG o WebP y ocupa como máximo 10 MB; un archivo que incumpla estas reglas hace fallar la tarea sin cobro. No se aceptan datos en base64: sube el archivo a tu propio almacenamiento y pasa su URL.

Factores de coste

Consulta la sección de precios del modelo para ver las tarifas actuales.

per-clip models:    cost = price of one clip at the output resolution        (720p and 1080p cost the same)
per-second models:  cost = duration × rate for the resolution and audio setting

El cargo se fija cuando se acepta la solicitud, así que el importe reservado es el importe cobrado. Consulta los cargos finales en el historial de uso de tu cuenta. Las tareas fallidas no se cobran.

Esquema de salida

El envío devuelve la tarea:

{"id": "task_...", "model": "veo-3.1-fast", "status": "processing", "created_at": 1789689600}

Consultar la tarea

GET https://api.seedrouter.ai/v1/tasks/{task_id}

Sondea cada 10–20 segundos hasta que status sea completed o failed. Que se agote el tiempo de red durante el sondeo no significa que la generación haya fallado: conserva el identificador de tarea y reanuda la comprobación. No crees otra tarea para consultar el progreso.

Tarea completada

{
  "id": "task_...",
  "model": "veo-3.1-fast",
  "status": "completed",
  "created_at": 1789689600,
  "finished_at": 1789689720,
  "output": {
    "video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4"
  }
}

video_url es un MP4, o un GIF si la solicitud activó enable_gif. El enlace está en el almacenamiento de SeedRouter.

Lo que devolvieron nuestras pruebas (una ejecución cada una, 2026-10-04):

SolicitudArchivo
veo-3.1-fast, 9:16, modo fotogramasMP4, H.264, 720 × 1280, 24 fps, 8 s, con una pista de audio AAC estéreo
veo-3.1-fast-official, 16:9, 720p, 4 s, sin generate_audioMP4, H.264, 1280 × 720, 24 fps, 4 s, sin pista de audio
veo-3.1-lite, enable_gifGIF, 480 × 270, 16 fps, 8 s

Los modelos por clip no tienen interruptor de audio; los modelos por segundo solo añaden una pista de audio con generate_audio.

Errores

Las solicitudes rechazadas antes de crear una tarea devuelven un error HTTP con un objeto error y no se cobran. Una tarea que falla después de aceptarse devuelve HTTP 200 al consultarla, con status: "failed" y un objeto error.

Consulta el catálogo de errores común para ver códigos, estados HTTP y pautas de reintento.

{
  "id": "task_...",
  "model": "veo-3.1-fast",
  "status": "failed",
  "error": {
    "code": 60001,
    "message": "The request was rejected by the content policy. Please revise the prompt or input images."
  }
}

Si el propio envío agota el tiempo de espera, revisa tus tareas antes de volver a enviar: puede que la primera solicitud se haya aceptado.

Consejos

  • Empieza con veo-3.1-lite o veo-3.1-fast en 720p para probar un prompt y pasa a Quality o a 4k para el render final.
  • Nombra la cámara y la luz: un objetivo y un movimiento de cámara cambian el plano más que los adjetivos.
  • Añade no text, no logos para evitar letras y marcas inventadas en el encuadre.
  • Para un plano que deba empezar y terminar en imágenes conocidas, usa el modo fotogramas con dos imágenes, o los modelos por segundo con first_frame_image y last_frame_image.
  • Fija seed en los modelos por segundo y cambia una sola cláusula cada vez para iterar sobre un plano.

Relacionado