Examples
OmniVideo API Code Examples
Copy-ready examples for creating Gemini Omni video tasks and polling task status.
Node.js
const API_KEY = process.env.OMNIVIDEO_API_KEY;
const BASE_URL = 'https://omnivideoapi.com/api';
async function createVideo() {
const response = await fetch(`${BASE_URL}/generate`, {
method: 'POST',
headers: {
Authorization: `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'gemini-omni/video',
input: {
prompt: 'A cinematic product reveal shot with smooth camera motion',
mode: 'std',
aspect_ratio: '16:9',
duration: '5',
sound: true
}
})
});
const result = await response.json();
return result.data.task_id;
}
async function pollTask(taskId) {
for (let attempt = 0; attempt < 60; attempt++) {
const response = await fetch(`${BASE_URL}/status?task_id=${taskId}`, {
headers: { Authorization: `Bearer ${API_KEY}` }
});
const result = await response.json();
if (result.data?.status === 'SUCCESS') return result.data.response;
if (result.data?.status === 'FAILED') throw new Error(result.data.error_message || 'Generation failed');
await new Promise((resolve) => setTimeout(resolve, 5000));
}
throw new Error('Timed out waiting for video generation');
}Python
import os
import time
import requests
API_KEY = os.environ["OMNIVIDEO_API_KEY"]
BASE_URL = "https://omnivideoapi.com/api"
payload = {
"model": "gemini-omni/video",
"input": {
"prompt": "A cinematic product reveal shot with smooth camera motion",
"mode": "std",
"aspect_ratio": "16:9",
"duration": "5",
"sound": True,
},
}
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
task = requests.post(f"{BASE_URL}/generate", json=payload, headers=headers).json()
task_id = task["data"]["task_id"]
for _ in range(60):
status = requests.get(
f"{BASE_URL}/status",
params={"task_id": task_id},
headers={"Authorization": f"Bearer {API_KEY}"},
).json()
if status["data"]["status"] == "SUCCESS":
print(status["data"]["response"])
break
if status["data"]["status"] == "FAILED":
raise RuntimeError(status["data"].get("error_message") or "Generation failed")
time.sleep(5)cURL Image-to-Video
curl -X POST https://omnivideoapi.com/api/generate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni/video",
"input": {
"prompt": "Subtle camera push-in with premium product lighting",
"image_urls": ["https://example.com/product.jpg"],
"mode": "pro",
"aspect_ratio": "1:1",
"duration": "5",
"sound": false
}
}'