API de génération de vidéos
Décrivez un clip en termes simples, choisissez un modèle, une durée et un format d'image, et obtenez un fichier MP4 avec une bande sonore. OmevAI planifie les plans et les mouvements de caméra à partir de votre description ; vous choisissez uniquement ce qui est indiqué ci-dessous. Le prix est connu avant le lancement, et vous ne payez que pour un clip livré.
L'API vidéo est activée clé par clé. Écrivez à support@omev.be pour l'activer. Les mêmes modèles sont disponibles dans le cabinet web, voir Génération de vidéos dans le cabinet.
La vidéo est asynchrone : créez une tâche, vérifiez son statut, téléchargez le fichier terminé.
Tous les appels utilisent l'hôte habituel https://llmapi.omev.be et votre clé API OmevAI.
Modèles et prix
model | Idéal pour | Durée | resolution | Vous pouvez envoyer | Prix par seconde |
|---|---|---|---|---|---|
omev-video-lite | scènes simples, prix bas | 4–12 s | 768p | du texte ; du texte et une première image | $0.039 |
omev-video | personnes, mouvements complexes, mouvements de caméra, plusieurs actions | 4–15 s | 720p (par défaut), 1080p | du texte ; du texte et une première image | 720p $0.069 · 1080p $0.135 |
omev-video-premium | qualité premium, clips jusqu'à 30 s | 4–30 s | 720p (par défaut), 1080p | du texte ; du texte et une première image ; du texte et jusqu'à 5 images de référence | texte ou première image : 720p $0.075 · 1080p $0.15 ; avec images de référence : 720p $0.11 · 1080p $0.22 |
Formats d'image (aspect_ratio) : omev-video-lite accepte 16:9, 21:9, 4:3, 1:1,
3:4, 9:16 ; omev-video et omev-video-premium acceptent 16:9, 4:3, 1:1, 3:4,
9:16.
Le prix d'un clip est le prix par seconde multiplié par la durée commandée. Un clip
omev-video de 8 secondes en 720p coûte 8 × $0.069 = $0.552, en 1080p $1.08. Un clip
omev-video-premium de 8 secondes en 720p coûte $0.60 à partir de texte ou d'une première
image, et $0.88 avec des images de référence.
1. Créer une tâche
curl -sS https://llmapi.omev.be/v1/videos/generations \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "omev-video",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "9:16",
"prompt": "A ceramic mug on a wooden table in morning light, the camera slowly circles the mug",
"idempotency_key": "order-2026-10-12-0001"
}'
| Champ | Requis | Valeurs |
|---|---|---|
model | oui | omev-video-lite, omev-video ou omev-video-premium |
prompt | oui | la description du clip, jusqu'à 4 000 caractères |
duration | oui | un nombre entier de secondes dans la plage du modèle |
aspect_ratio | non | un format d'image accepté par le modèle, 16:9 par défaut |
resolution | non | 720p ou 1080p pour omev-video et omev-video-premium ; omev-video-lite est toujours en 768p |
image | non | un lien https public vers la première image (les trois modèles) ; il doit s'ouvrir sans connexion |
references | non | jusqu'à 5 liens https publics vers des images de référence : un personnage, un produit, un logo ou un style ; omev-video-premium uniquement, et pas en même temps que image |
idempotency_key | recommandé | votre propre numéro de commande, jusqu'à 100 caractères ; le répéter renvoie la même tâche et ne facture pas une seconde fois |
seed, fps, steps, cfg et provider ne sont pas acceptés (400) : OmevAI les choisit.
La réponse est 202 avec la tâche :
{
"id": "vid_0f3c2a9e8b7d4c6a1e5f2b3c",
"object": "video.generation",
"model": "omev-video",
"status": "queued",
"duration": 8,
"aspect_ratio": "9:16",
"resolution": "720p",
"price_usd": 0.552,
"access_token": "…"
}
Avant le démarrage de la tâche, le prix est réservé sur le solde de la clé. Lorsque le clip est
livré, il est facturé ; lorsque la génération échoue, la réservation est libérée. Conservez
id et access_token : le jeton est nécessaire pour lire le statut et télécharger le fichier.
Si la réponse a été perdue, envoyez la même requête avec le même idempotency_key pour obtenir
le même id et le même jeton.
2. Vérifier le statut
curl -sS https://llmapi.omev.be/v1/videos/generations/$ID \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "X-Omev-Video-Token: $TOKEN"
Sans le jeton, ou avec le jeton d'une autre tâche, la réponse est 404. Interrogez le statut
toutes les 10 à 15 secondes.
status | Signification |
|---|---|
queued, preprocessing | la tâche est acceptée et la description est transformée en plan de tournage |
generating | le clip est en cours de création ; phase indique provider_queued (en attente d'un créneau), generating ou saving |
processing | une vérification supplémentaire rare de notre côté ; continuez à interroger |
succeeded | terminé : video.url est le lien de téléchargement |
failed | non réalisé : error.code et error.message indiquent pourquoi ; la réservation est libérée |
3. Télécharger le clip
curl -sS -L -o clip.mp4 https://llmapi.omev.be/v1/videos/generations/$ID/content \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "X-Omev-Video-Token: $TOKEN"
La réponse est le fichier MP4 avec une bande sonore. Téléchargez-le dès que la tâche réussit et conservez-le dans votre propre stockage.
Cycle complet en Python
import os, time, requests
BASE = "https://llmapi.omev.be"
auth = {"Authorization": f"Bearer {os.environ['OMEV_API_KEY']}"}
job = requests.post(f"{BASE}/v1/videos/generations", headers=auth, timeout=60, json={
"model": "omev-video-lite", "duration": 6, "aspect_ratio": "1:1",
"prompt": "A cup of hot coffee, steam rising, soft light",
"idempotency_key": "order-0002"}).json()
read = {**auth, "X-Omev-Video-Token": job["access_token"]}
while True:
status = requests.get(f"{BASE}/v1/videos/generations/{job['id']}", headers=read, timeout=60).json()
if status["status"] in ("succeeded", "failed"):
break
time.sleep(15)
if status["status"] == "succeeded":
clip = requests.get(f"{BASE}{status['video']['url']}", headers=read, timeout=600)
open("clip.mp4", "wb").write(clip.content)
else:
print(status["error"])
Consultations gratuites
GET /v1/videos/models: les modèles avec leurs durées, résolutions, formats d'image et prix par seconde.GET /v1/videos/price?model=omev-video&duration=8&resolution=1080p: le prix d'un clip, par exemple{"price_usd": 1.08, "per_second_usd": 0.135, …}. Pouromev-video-premiumavec des images de référence, ajoutez&references=1.
Durée et limites
- Un clip de 4 secondes prend généralement environ 2 minutes avec
omev-video-liteetomev-video-premium, et 10 à 20 secondes avecomev-video. Les clips plus longs prennent plus de temps. - Un compte peut avoir jusqu'à 2 tâches vidéo inachevées à la fois ; une troisième renvoie
429. - La régénération et la notation d'un clip sont disponibles dans le cabinet web. Via l'API, créez une nouvelle tâche pour une nouvelle tentative.
- Les requêtes qui enfreignent la politique de contenu sont refusées avant toute facturation.
Erreurs
| Code | Signification | Que faire |
|---|---|---|
400 | une durée hors de la plage du modèle, un format d'image ou une résolution que le modèle n'accepte pas, une première image avec des images de référence, des images de référence pour un modèle autre qu'omev-video-premium, ou un paramètre non accepté | corrigez la requête à l'aide de error.message |
401 | clé API manquante ou invalide | vérifiez la clé |
402 | le solde de la clé est inférieur au prix du clip | rechargez le solde |
403 | la vidéo n'est pas activée pour la clé | écrivez au support |
404 | tâche inconnue, ou X-Omev-Video-Token manquant ou incorrect | vérifiez l'identifiant et le jeton |
409 | l'idempotency_key a déjà été utilisée avec d'autres paramètres, ou la combinaison est temporairement indisponible | utilisez un nouveau numéro de commande ; en cas d'indisponibilité, réessayez plus tard |
429 | 2 tâches vidéo sont déjà en cours | attendez que l'une d'elles se termine |
5xx | erreur temporaire | réessayez avec le même idempotency_key après 10 à 30 secondes |
Consultez Erreurs et nouvelles tentatives pour le format commun.