CheaperGen
GoogleTutorial

Cómo usar la API de Gemini Omni Flash

Tutorial paso a paso de la API de Gemini Omni Flash con Node.js, Python y cURL: envía una tarea de texto a video, consulta su estado o recibe un webhook y descarga el resultado de video. El ejemplo siguiente cuesta $0,72.

Endpoints
3
Texto a video · Imagen a video · Video a partir de referencias
Solicitud de ejemplo
$0,72
Texto a video
Lenguajes
3
Node.js · Python · cURL
Generaciones fallidas
$0
reembolso automático
1

Obtener una clave de API

Crea una cuenta, añade saldo y genera una clave en Panel → Claves de API. Guárdala como CHEAPERGEN_API_KEY en tu servidor. Cada solicitud la envía como token bearer.

Cómo obtener una clave de API de Gemini Omni Flash
2

Elige un endpoint de Gemini Omni Flash

Cada tarea tiene su propio endpoint. Todos reciben un cuerpo JSON y devuelven una generación cuyo estado puedes consultar.

Gemini Omni Flash endpoints, entradas obligatorias y precios
TareaEndpointObligatorioDesde
Texto a videogoogle/gemini-omni-flash/text-to-videoprompt$0,089 por segundo
Imagen a videogoogle/gemini-omni-flash/image-to-videoprompt, image_url$0,089 por segundo
Video a partir de referenciasgoogle/gemini-omni-flash/reference-to-videoprompt, reference_image_urls$0,089 por segundo
3

Envía un trabajo de texto a video

Este programa envía la tarea, consulta su estado cada 3 segundos hasta que termina e imprime la URL de video. Cambia el prompt y los ajustes por los tuyos.

const API = "https://cheapergen.com/api/v1";
const headers = {
  Authorization: `Bearer ${process.env.CHEAPERGEN_API_KEY}`,
  "Content-Type": "application/json",
};

// 1. Submit the job
let job = await fetch(`${API}/run/google/gemini-omni-flash/text-to-video`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    "prompt": "Un trío de jazz toca en un club subterráneo lleno de humo; la cantante se acerca al micrófono y el público sigue el ritmo con los dedos",
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "duration": 8
  }),
}).then((r) => r.json());

// 2. Poll until it finishes (or pass webhook_url and skip polling)
while (job.status === "queued" || job.status === "running") {
  await new Promise((r) => setTimeout(r, 3000));
  job = await fetch(`${API}/generations/${job.id}`, { headers }).then((r) => r.json());
}

console.log(job.status === "succeeded" ? job.output.video.url : job.error);
4

Configura los parámetros importantes

Los ajustes de google/gemini-omni-flash/text-to-video y cómo afecta cada uno al precio.

Parámetros de Gemini Omni Flash Texto a video y su efecto en el precio
ParámetroTipo · valor predeterminadoQué haceEfecto en el precio
aspect_ratiostring (enum) · 16:9Formato horizontal o vertical.
16:9 · 9:16
Sí
resolutionstring (enum) · 720p720p (1080p y 4K todavía no están disponibles).
720p
720p: $0,0927 por segundo
durationinteger (enum) · 8Duración del clip: 4, 6, 8 o 10 segundos.
4 · 6 · 8 · 10
4s: $0,0927 por segundo
8s: $0,089 por segundo
seedintegerUsa la misma semilla y los mismos ajustes para reproducir un resultado. Déjalo vacío para usar una semilla aleatoria.Ninguno

Otros endpoints de Gemini Omni Flash usan el mismo formato, con sus propias entradas:

POST /api/v1/run/google/gemini-omni-flash/image-to-video

{
  "prompt": "La imagen cobra vida: sale vapor, el cocinero se da la vuelta y sonríe a la cámara",
  "image_url": "https://cdn.cheapergen.com/samples/portrait.jpg",
  "aspect_ratio": "16:9",
  "resolution": "720p",
  "duration": 8
}

POST /api/v1/run/google/gemini-omni-flash/reference-to-video

{
  "prompt": "@Image1 entra en la tienda desde @Image2 y recoge el bolso de @Image3",
  "reference_image_urls": [
    "https://cdn.cheapergen.com/samples/reference-1.jpg",
    "https://cdn.cheapergen.com/samples/reference-2.jpg",
    "https://cdn.cheapergen.com/samples/reference-3.jpg"
  ],
  "aspect_ratio": "16:9",
  "resolution": "720p",
  "duration": 8
}
5

Obtén el resultado

Una tarea pasa de queued a running y luego a succeeded, failed o canceled. Consulta GET /api/v1/generations/{id} o proporciona webhook_url para que te enviemos el resultado mediante una solicitud POST. Descarga y guarda el resultado por tu cuenta.

200 — succeeded
{
  "id": "gen_8c2QmX1nq0k4",
  "object": "generation",
  "model": "google/gemini-omni-flash",
  "endpoint": "google/gemini-omni-flash/text-to-video",
  "mode": "text-to-video",
  "status": "succeeded",
  "input": {
    "prompt": "Un trío de jazz toca en un club subterráneo lleno de humo; la cantante se acerca al micrófono y el público sigue el ritmo con los dedos",
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "duration": 8
  },
  "output": {
    "video": {
      "url": "https://cdn.cheapergen.com/outputs/gen_8c2Q.mp4",
      "content_type": "video/mp4",
      "duration": 5,
      "width": 1280,
      "height": 720
    }
  },
  "error": null,
  "cost": {
    "amount_usd": 0.2255,
    "currency": "usd",
    "estimated": false,
    "official_usd": 0.264,
    "list_price_source": "official",
    "list_price_label": "Official",
    "saved_usd": 0.0385
  },
  "source": "api",
  "created_at": "2026-10-15T09:21:04Z",
  "started_at": "2026-10-15T09:21:06Z",
  "completed_at": "2026-10-15T09:22:31Z"
}
Verifica las firmas de webhooks
6

Calcula el precio antes de ejecutar una solicitud

El endpoint de cotización es gratis y no requiere una clave. Devuelve el precio, el precio oficial y tu descuento para los datos exactos que envíes.

curl -X POST https://cheapergen.com/api/v1/quote/google/gemini-omni-flash/text-to-video \
  -H "Content-Type: application/json" \
  -d '{"prompt":"Un trío de jazz toca en un club subterráneo lleno de humo; la cantante se acerca al micrófono y el público sigue el ritmo con los dedos","aspect_ratio":"16:9","resolution":"720p","duration":8}'
Errores de la API y cómo resolverlos
EstadoCódigoSignificado
400invalid_requestFalta un parámetro o está fuera de rango; el mensaje indica cuál.
401unauthorizedFalta la clave de API, está mal formada o fue revocada.
402insufficient_balanceEl saldo no alcanza para el precio cotizado; añade créditos o activa la recarga automática.
429rate_limitedHay demasiadas solicitudes o generaciones en curso; espera un poco y vuelve a intentarlo.
502upstream_errorEl proveedor del modelo falló; se reembolsa el importe reservado y puedes volver a intentarlo.
503model_unavailableNo hay ninguna ruta disponible en este momento; inténtalo más tarde o elige otro modelo.
Documentación completa de la API de Gemini Omni Flash

Preguntas frecuentes

Preguntas sobre la API de Gemini Omni Flash

No. La API usa HTTPS y JSON, así que los ejemplos de Node.js (fetch) y Python (requests) de esta página son programas completos. Funciona cualquier lenguaje que pueda enviar solicitudes HTTP.

Sí. Añade "webhook_url" al cuerpo de la solicitud y enviaremos la generación terminada mediante POST, firmada con la cabecera CheaperGen-Signature (HMAC-SHA256 de la marca de tiempo y el cuerpo sin procesar). También puedes consultar GET /api/v1/generations/{id}.

Pasa URL públicas en "image_url", "end_image_url", "reference_image_urls". Si un archivo no tiene URL pública, primero puedes subirlo con POST /api/v1/uploads; recibirás una URL para usar en la solicitud.

Texto a video cuesta desde $0,089 por segundo; la solicitud de ejemplo de esta página cuesta $0,72, 13% por debajo de el precio oficial. Las generaciones fallidas se reembolsan automáticamente.