GoogleVideo
Veo 3.1
Clips de 4, 6 u 8 s con audio.
- Precio
- 45 crpor clip · 720p · 8 s
- Tiempo habitual
- ≈ 2 min
- Id del modelo
video.veo-3-1
Zona de pruebas
Un resultado real de Veo 3.1.
# 1. Crea el trabajo. Se cobra una vez y se reembolsa si falla.
JOB_ID=$(curl -s -X POST https://staglight.ai/api/v1/jobs \
-H "Authorization: Bearer $STAGLIGHT_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"op": "video.veo-3-1",
"params": {
"prompt": "Foto de producto premium de un frasco de sérum de vidrio sobre piedra mojada, luz suave de ventana",
"tier": "fast",
"resolution": "720p",
"duration": 8,
"aspect_ratio": "9:16"
},
"max_credits": 45
}' | jq -r .id)
# 2. Consulta hasta que termine. Cada llamada espera hasta 30 segundos.
while :; do
JOB=$(curl -s "https://staglight.ai/api/v1/jobs/$JOB_ID?wait=30" -H "Authorization: Bearer $STAGLIGHT_API_KEY")
case "$(echo "$JOB" | jq -r .status)" in queued|running) ;; *) break ;; esac
done
# 3. Descarga el resultado desde outputs[0].download_url.
DOWNLOAD_URL=$(echo "$JOB" | jq -r '.outputs[0].download_url')
curl -L -o result.mp4 "$DOWNLOAD_URL"
import os, uuid, requests
BASE = "https://staglight.ai/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['STAGLIGHT_API_KEY']}"}
# 1. Crea el trabajo. Se cobra una vez y se reembolsa si falla.
r = requests.post(f"{BASE}/jobs", timeout=60,
headers={**HEADERS, "Idempotency-Key": str(uuid.uuid4())},
json={
"op": "video.veo-3-1",
"params": {
"prompt": "Foto de producto premium de un frasco de sérum de vidrio sobre piedra mojada, luz suave de ventana",
"tier": "fast",
"resolution": "720p",
"duration": 8,
"aspect_ratio": "9:16"
},
"max_credits": 45
})
r.raise_for_status()
job = r.json()
# 2. Consulta hasta que termine. Cada llamada espera hasta 30 segundos.
while job["status"] in ("queued", "running"):
job = requests.get(f"{BASE}/jobs/{job['id']}", headers=HEADERS,
params={"wait": 30}, timeout=60).json()
# 3. Descarga el resultado desde outputs[0].download_url.
print(job["outputs"][0]["download_url"] if job["outputs"] else job["data"] or job["error"])
// Node 18 o posterior. Guárdalo como run.mjs: el await de nivel superior necesita un módulo.
const BASE = "https://staglight.ai/api/v1";
const headers = { Authorization: `Bearer ${process.env.STAGLIGHT_API_KEY}` };
// 1. Crea el trabajo. Se cobra una vez y se reembolsa si falla.
let res = await fetch(`${BASE}/jobs`, {
method: "POST",
headers: { ...headers, "Content-Type": "application/json", "Idempotency-Key": crypto.randomUUID() },
body: JSON.stringify({
"op": "video.veo-3-1",
"params": {
"prompt": "Foto de producto premium de un frasco de sérum de vidrio sobre piedra mojada, luz suave de ventana",
"tier": "fast",
"resolution": "720p",
"duration": 8,
"aspect_ratio": "9:16"
},
"max_credits": 45
}),
});
if (!res.ok) throw new Error((await res.json()).error.message);
let job = await res.json();
// 2. Consulta hasta que termine. Cada llamada espera hasta 30 segundos.
while (job.status === "queued" || job.status === "running") {
job = await (await fetch(`${BASE}/jobs/${job.id}?wait=30`, { headers })).json();
}
// 3. Descarga el resultado desde outputs[0].download_url.
console.log(job.outputs[0]?.download_url ?? job.data ?? job.error);
{
"id": "job_19a2b3c4d5e6f7a8b9c0d1",
"op": "video.veo-3-1",
"status": "queued",
"credits": 45,
"title": "",
"params": {
"prompt": "Foto de producto premium de un frasco de sérum de vidrio sobre piedra mojada, luz suave de ventana",
"tier": "fast",
"resolution": "720p",
"duration": 8,
"aspect_ratio": "9:16"
},
"progress": null,
"outputs": [],
"data": null,
"error": null,
"run_id": null,
"source": "api",
"created_at": "2026-11-06T12:00:00Z",
"finished_at": null,
"eta_seconds": 120
}
Cuánto cuesta
| Calidad | 720p | 1080p | 4k |
|---|---|---|---|
| lite | 23 cr | 27 cr | 113 cr |
| fast | 45 cr | 49 cr | 135 cr |
| quality | 188 cr | 192 cr | 278 cr |
La zona de pruebas muestra el precio exacto de tus ajustes. La tarea se cobra una vez al aceptarla y se reembolsa si falla. El precio se vuelve a comprobar con tu archivo antes de ejecutar.
Parámetros
| Nombre | Tipo | Por defecto | Valores |
|---|---|---|---|
promptobligatorioDescripción |
string |
Hasta 5.000 caracteres | |
tierCalidad |
enum |
fast |
lite, fast, quality |
resolutionResolución |
enum |
720p |
720p, 1080p, 4k |
durationDuración (s) |
enum |
8 |
4, 6, 8 |
aspect_ratioFormato |
enum |
9:16 |
9:16, 16:9, auto |
first_framePrimer fotograma |
media id |
Imagen | |
last_frameÚltimo fotograma |
media id |
Imagen | |
reference_imagesImágenes de referencia |
media id[] |
Imagen, hasta 3 |
Envíalos dentro de params. Los archivos son ids de POST /api/v1/uploads. Ver la documentación
Más modelos
-
Resultado real Video
Kling AI / Kling 3.0
Video de 3 a 15 s a partir de texto o de un primer fotograma.
53 crpor clip · 5 s · std
-
Resultado real Video
Kling AI / Kling 4.0
Video de 3 a 30 s con sonido a partir de texto o de tus imágenes de referencia, en 720p o 1080p.
107 crpor clip · 5 s · 720p
-
Resultado real Video
Kling AI / Kling 3.0 Motion Control
El personaje de tu imagen copia el movimiento de tu video.
150 crpor clip · 720p · varía con la duración o el tamaño