Génération vidéo Veo
Appelez les modèles de génération vidéo Google Veo via aicentos — texte vers vidéo, image vers vidéo, première et dernière frame, images de référence
Dernière mise à jour:
Ce document s’adresse aux développeurs et explique comment appeler les modèles de génération vidéo Google Veo via aicentos. L’interface suit le format compatible avec l’API vidéo d’OpenAI (OpenAI Videos API) ; côté aval, il suffit d’utiliser le type de canal openai.
Capacités des modèles
La facturation est basée sur la durée de génération de la vidéo (en secondes). Le prix unitaire exact est celui affiché dans la console aicentos ; le débit final fait foi selon les enregistrements réels du système.
Capacités officielles et périmètre ouvert par aicentos
| Modèle | Durées prises en charge | Résolutions prises en charge | Format d’image | Audio | Remarques |
|---|---|---|---|---|---|
veo-3.1-generate-preview | 4, 6, 8 | 720p, 1080p, 4k | 16:9, 9:16 | audio natif | 1080p et 4k sont limités à 8 secondes ; avec les capacités image (images de référence, première/dernière frame), 8 secondes sont recommandées. |
veo-3.1-fast-generate-preview | 4, 6, 8 | 720p, 1080p, 4k | 16:9, 9:16 | audio natif | 1080p et 4k sont limités à 8 secondes ; avec les capacités image (images de référence, première/dernière frame), 8 secondes sont recommandées. |
Documentation de référence :
- Génération vidéo Veo de l’API Google Gemini
- Images de référence Veo
- Première et dernière frame Veo
- Format d’image Veo
Format d’image
| Modèle | 16:9 paysage | 9:16 portrait | Format par défaut | Recommandation |
|---|---|---|---|---|
veo-3.1-generate-preview | Pris en charge | Pris en charge | 16:9 | Le 4K exige 8 secondes ; l’extension vidéo n’est pas encore disponible. |
veo-3.1-fast-generate-preview | Pris en charge | Pris en charge | 16:9 | Le 4K exige 8 secondes ; l’extension vidéo n’est pas encore disponible. |
La requête peut préciser le format via metadata.aspectRatio ou le champ de formulaire aspectRatio :
{
"metadata": {
"aspectRatio": "9:16"
}
}Si aucun aspectRatio n’est transmis explicitement, le système le déduit d’abord de size : par exemple 1280x720 donne 16:9 et 720x1280 donne 9:16. Si size n’est pas transmis non plus, l’amont utilise 16:9 par défaut.
Audio
| Modèle | Capacité audio officielle | generateAudio pris en charge | Recommandation |
|---|---|---|---|
veo-3.1-generate-preview | audio natif | Non | Ne transmettez pas generateAudio ; décrivez les effets sonores dans le prompt. |
veo-3.1-fast-generate-preview | audio natif | Non | Ne transmettez pas generateAudio ; décrivez les effets sonores dans le prompt. |
La série Veo 3.1 génère nativement l’audio, mais la table de paramètres Veo de l’API Gemini actuelle n’expose pas generateAudio comme paramètre contrôlable. Transmettre ce champ peut renvoyer INVALID_ARGUMENT côté amont.
Pour contrôler le contenu audio, décrivez dialogues, sons d’ambiance, effets ou style musical dans le prompt, par exemple :
Un phare au bord de la mer au crépuscule, les vagues frappant les rochers, au loin un vent sourd et des cris d’oiseaux marins, lumière cinématographique, mouvement de caméra stableEntrées image
| Capacité | Veo officiel (Google) | Pris en charge par l’API aicentos | Remarques |
|---|---|---|---|
| Vidéo à partir d’une image initiale unique | Oui | Oui | Téléversez 1 image via input_reference ; elle sert d’image de départ de la vidéo. |
| Première/dernière frame ou interpolation | La série Veo 3.1 prend en charge image + lastFrame | Oui | Première frame via input_reference, dernière via last_frame ou lastFrame. Série Veo 3.1 et 8 secondes recommandés. |
| Plusieurs images de référence | Jusqu’à 3 referenceImages sur la série Veo 3.1 | Oui | Téléversez via reference_image, reference_images ou referenceImages ; referenceType n’accepte que asset. 8 secondes recommandées. |
| Extension vidéo | Veo 3.1 / Fast sait étendre une vidéo Veo existante | Pas encore pris en charge | L’API aicentos actuelle n’expose pas l’entrée vidéo officielle. |
- Types MIME d’image pris en charge :
image/jpeg,image/png,image/webp. Préférez un fichier ou du Base64 ; évitez de passer directement une URL d’image distante. - Attention en mode images de référence : l’amont n’y prend pas en charge
negativePromptet peut renvoyerNegative prompt is not supported in your use case. N’envoyez pas denegativePromptavec des requêtes à images de référence. - Détail d’implémentation : dans l’API Gemini, les entrées image de Veo
predictLongRunningutilisentbytesBase64Encoded+mimeType, et non l’inlineDatadugenerateContentclassique. aicentos convertit les images téléversées en multipart vers le format attendu par l’amont.
Règles de facturation
- Facturation à la durée de génération, en secondes. Utilisez les durées prises en charge par le modèle (tableau ci-dessus) ; évitez de passer des durées arbitraires.
- Si la requête ne précise pas de durée, la facturation est établie par défaut sur 8 secondes.
- Ordre de priorité de lecture de la durée :
metadata.durationSeconds>duration>seconds> 8 secondes par défaut. - Ordre de priorité de lecture de la résolution :
metadata.resolution>size> 720p par défaut. - 720p / 1080p / 4K sont facturés selon les mêmes règles ; aucune majoration liée à la résolution.
aspectRatione contrôle que l’orientation (paysage ou portrait) ; aucune majoration.- Le 4K n’est possible qu’en 8 secondes.
- Le prix unitaire exact est celui de la console aicentos.
Endpoints
Trois endpoints sont recommandés aujourd’hui :
| Usage | Méthode | Chemin |
|---|---|---|
| Créer une tâche | POST | /v1/videos |
| Consulter le statut | GET | /v1/videos/{task_id} |
| Télécharger le résultat | GET | /v1/videos/{task_id}/content |
Pour obtenir directement l’URL du résultat lors de l’interrogation, vous pouvez aussi utiliser :
| Usage | Méthode | Chemin |
|---|---|---|
| Statut et URL du résultat | GET | /v1/video/generations/{task_id} |
Authentification
export BASE_URL="https://aicentos.com"
export AICENTOS_API_KEY="sk-xxxxxx"Toutes les requêtes incluent :
-H "Authorization: Bearer $AICENTOS_API_KEY"Créer une tâche texte vers vidéo
curl -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $AICENTOS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "veo-3.1-generate-preview",
"prompt": "Un phare au bord de la mer au crépuscule, lent travelling avant, les vagues frappant les rochers, lumière cinématographique, mouvement de caméra stable",
"seconds": "8",
"size": "1280x720",
"metadata": {
"negativePrompt": "blurry, watermark, distorted, low quality",
"resolution": "720p",
"aspectRatio": "16:9",
"seed": 20260401
}
}'Réponse type :
{
"id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"task_id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"object": "video",
"model": "veo-3.1-generate-preview",
"status": "queued",
"progress": 0,
"created_at": 1775025000
}Créer une tâche image vers vidéo (première frame)
Pour l’image vers vidéo, multipart/form-data est recommandé ; le champ de la première frame doit impérativement s’appeler input_reference.
curl -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $AICENTOS_API_KEY" \
-H "Accept: application/json" \
-F "model=veo-3.1-generate-preview" \
-F "prompt=La fille se tourne vers la caméra, une brise légère soulève ses cheveux, les lumières de la ville en arrière-plan légèrement floutées, caméra avançant en douceur" \
-F "input_reference=@./first-frame.png;type=image/png" \
-F "seconds=8" \
-F "size=1280x720" \
-F "resolution=720p" \
-F "aspectRatio=16:9" \
-F "negativePrompt=blurry, watermark, deformed hands" \
-F "seed=20260401"Créer une tâche première/dernière frame
Cette tâche exige à la fois la première et la dernière frame. Première frame via input_reference, dernière via last_frame ou lastFrame.
curl -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $AICENTOS_API_KEY" \
-H "Accept: application/json" \
-F "model=veo-3.1-generate-preview" \
-F "prompt=Transition naturelle de la première image (fille) à la dernière (garçon), travelling avant régulier, lumières de ville floutées, cheveux et vêtements légèrement animés par le vent, transition fluide et réaliste" \
-F "input_reference=@./first-frame.png;type=image/png" \
-F "last_frame=@./last-frame.png;type=image/png" \
-F "seconds=8" \
-F "size=1280x720" \
-F "resolution=720p" \
-F "aspectRatio=16:9" \
-F "negativePrompt=blurry, watermark, distorted face, deformed hands" \
-F "seed=20260402"Créer une tâche avec images de référence
Les tâches avec images de référence ne sont possibles que sur la série Veo 3.1, 3 images maximum, avec referenceType limité à asset. Les noms de champ acceptés sont reference_image, reference_images ou referenceImages. N’envoyez pas de negativePrompt sur ces tâches.
curl -X POST "$BASE_URL/v1/videos" \
-H "Authorization: Bearer $AICENTOS_API_KEY" \
-H "Accept: application/json" \
-F "model=veo-3.1-generate-preview" \
-F "prompt=En s’appuyant sur l’apparence des personnages et l’ambiance nocturne urbaine des deux images, générer un plan de rue cinématographique en duo, travelling avant régulier, lumières d’arrière-plan légèrement floutées, personnages regardant naturellement la caméra" \
-F "reference_image=@./ref-1.png;type=image/png" \
-F "reference_image=@./ref-2.png;type=image/png" \
-F "reference_type=asset" \
-F "seconds=8" \
-F "size=1280x720" \
-F "resolution=720p" \
-F "aspectRatio=16:9" \
-F "seed=20260403"Le JSON / Base64 est aussi accepté :
{
"model": "veo-3.1-generate-preview",
"prompt": "Générer un plan publicitaire à partir de l’apparence du produit des images de référence",
"duration": 8,
"metadata": {
"resolution": "720p",
"aspectRatio": "16:9",
"referenceImages": [
{
"image": {
"bytesBase64Encoded": "BASE64_IMAGE",
"mimeType": "image/png"
},
"referenceType": "asset"
}
]
}
}Consulter le statut d’une tâche
Conservez d’abord l’id ou le task_id renvoyé par l’appel de création :
export TASK_ID="task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"Puis interrogez le statut :
curl -X GET "$BASE_URL/v1/videos/$TASK_ID" \
-H "Authorization: Bearer $AICENTOS_API_KEY"Pendant le traitement, réponse type :
{
"id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"object": "video",
"model": "veo-3.1-generate-preview",
"status": "in_progress",
"progress": 50,
"created_at": 1775025000
}À la fin, réponse type :
{
"id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"object": "video",
"model": "veo-3.1-generate-preview",
"status": "completed",
"progress": 100,
"created_at": 1775025000,
"completed_at": 1775025068
}Consulter le statut et l’URL du résultat
Pour récupérer directement une URL téléchargeable lors de l’interrogation :
curl -X GET "$BASE_URL/v1/video/generations/$TASK_ID" \
-H "Authorization: Bearer $AICENTOS_API_KEY"Réponse type :
{
"code": "success",
"message": "",
"data": {
"error": null,
"format": "mp4",
"metadata": null,
"status": "succeeded",
"task_id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"url": "https://aicentos.com/v1/videos/task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/content"
}
}Télécharger la vidéo
Une fois la tâche terminée, téléchargez directement :
curl -L "$BASE_URL/v1/videos/$TASK_ID/content" \
-H "Authorization: Bearer $AICENTOS_API_KEY" \
-o veo-result.mp4Signification des statuts
Les statuts renvoyés par GET /v1/videos/{task_id} sont principalement :
| Statut | Signification |
|---|---|
queued | en file d’attente |
in_progress | génération en cours |
completed | terminée |
failed | échec |
Les statuts renvoyés par GET /v1/video/generations/{task_id} sont principalement :
| Statut | Signification |
|---|---|
queued | en file d’attente |
processing | génération en cours |
succeeded | terminée avec succès |
failed | échec |
Points d’attention pour l’intégration
promptest obligatoire.- En image vers vidéo, le champ image doit s’appeler
input_reference. - Les tâches première/dernière frame exigent les deux frames : première via
input_reference, dernière vialast_frameoulastFrame. - Les tâches avec images de référence ne fonctionnent que sur la série Veo 3.1, 3 images maximum, et obligatoirement en 8 secondes.
- N’envoyez pas de
negativePromptsur les tâches à images de référence. - Pour l’image vers vidéo via Gemini, évitez de passer une URL d’image distante ; préférez un fichier ou du Base64.
- Interrogez
GET /v1/videos/{task_id}par polling et attendezstatus=completedavant de télécharger. - La série Veo 3.1 accepte 4, 6 ou 8 secondes ; 8 secondes sont obligatoires en 1080p ou 4k. - Paysage avec
aspectRatio=16:9, portrait avecaspectRatio=9:16; sans valeur transmise, 16:9 par défaut. - Ne transmettez pas le paramètre
generateAudio. La série Veo 3.1 génère nativement l’audio, mais l’API Gemini actuelle ne permet pas de l’activer ou de le désactiver viagenerateAudio; transmettre ce champ peut renvoyerINVALID_ARGUMENTcôté amont. - Pour contrôler le contenu audio, décrivez dialogues, sons d’ambiance, effets ou style musical dans le prompt.
- Le Veo 3.1 officiel prend en charge l’extension vidéo, mais l’API aicentos actuelle n’expose pas encore l’entrée vidéo officielle.