Passer au contenu principal
POST
La génération à partir de texte ou d’images accepte un entier de 3 à 15 secondes, avec 10 par défaut. L’interpolation entre images initiale et finale et le segment ajouté lors d’une prolongation sont limités à 10 secondes. Le montage ignore duration et conserve la durée de la vidéo source. Une vidéo en entrée est modifiée par défaut ; la prolongation exige "omni_reference_task_type": "extend".

Authentification

string
requis
Utilisez un jeton Bearer. Obtenez une clé sur la page de gestion des clés API et envoyez les requêtes avec Content-Type: application/json.

Paramètres de requête

string
requis
Doit être gemini-omni-1.2-flash.
string
requis
Instructions textuelles obligatoires : décrivez la scène pour le texte vers vidéo, ou les mouvements, le style et les modifications pour les autres modes. prompt est obligatoire même avec des images de référence, des images initiale/finale, une vidéo ou extend_from_task_id. Son absence renvoie HTTP 400.
integer
défaut:"10"
Durée de sortie pour la génération à partir de texte ou d’images, entier de 3 à 15, avec 10 par défaut. L’interpolation initiale/finale et la prolongation acceptent uniquement 3–10 secondes. Pour une prolongation, il s’agit de la durée ajoutée ; la vidéo renvoyée contient l’original et le segment ajouté. Le montage ignore duration et conserve la durée de la vidéo source. Une valeur de paramètre hors plage fait échouer la tâche avec invalid_duration.
string
défaut:"720p"
360p / 720p / 1080p / 4k, sans distinction de casse ; 2160p équivaut à 4k. Les sorties 1080p et 4k sont suréchantillonnées. La résolution influe sur les tokens de sortie et le montant réservé. Les autres valeurs font échouer la tâche avec invalid_resolution.
string
défaut:"16:9"
Uniquement 16:9 (paysage, par défaut) et 9:16 (portrait). Les autres valeurs sont traitées comme 16:9.
string[]
Images de référence uniquement sous forme d’URL HTTP(S) directes et accessibles publiquement. Les Data URL et Base64 ne sont pas pris en charge. Une image sert de départ ; plusieurs images servent de références de sujets. Maximum 10 images au total, images initiale/finale comprises. Pour les personnages, privilégiez au plus 2 personnages et 3 images chacun, soit 6 images au maximum.
string
Image initiale. Seule, elle sert de point de départ ; avec last_frame_image, elle active l’interpolation entre les deux images. Seules les URL HTTP(S) directes et accessibles publiquement vers une image sont acceptées.
string
Image finale ; exige first_frame_image, sinon la tâche échoue avec invalid_frame_images. Utilisez le même ratio pour les deux images, correspondant à aspect_ratio. Seules les URL HTTP(S) directes et accessibles publiquement vers une image sont acceptées.
object[]
Tableau d’images avec rôles, équivalent aux champs directs des images initiale/finale. Choisissez une seule méthode. Toutes les images utilisées comptent dans la limite totale de 10.
string[]
Vidéo à modifier ou prolonger : 1 clip maximum, de 15 secondes au plus. Seules les URL HTTP(S) directes et accessibles publiquement vers la vidéo sont acceptées. Les Data URL et Base64 ne sont pas pris en charge. Le mode par défaut est le montage.
string
défaut:"auto"
Type de tâche : auto (par défaut, déduit des entrées) / edit (montage) / extend (prolongation) / reference (plusieurs images de référence). Accepte aussi text_to_video / image_to_video / reference_to_video. Sans valeur ou avec auto, video_urls et extend_from_task_id déclenchent un montage par défaut. Pour prolonger, indiquez explicitement extend.
string
Référencez l’ID de votre précédente tâche de génération pour réutiliser la vidéo sans la téléverser. Le mode par défaut est le montage. Avec "omni_reference_task_type": "extend", un segment de 10 secondes au maximum est ajouté à la fin.

Fonctionnalités et limites

  • La sortie est à 24fps, avec dialogues, musique ou effets sonores. Décrivez l’audio souhaité dans prompt.
  • L’entrée audio, les system prompts, temperature et les paramètres de prompt négatif ne sont pas pris en charge. Écrivez les exclusions directement dans prompt.
  • Restrictions régionales du fournisseur : dans l’EEE, en Suisse et au Royaume-Uni, le montage ou la prolongation de vidéos téléversées et la modification d’images contenant des mineurs ne sont pas pris en charge.
  • Toutes les sorties comportent un filigrane invisible SynthID.

Exemples

Envoyez chaque corps JSON à POST /v1/videos/generations. Remplacez les URL et ID d’exemple par vos propres médias et tâches utilisables.

Vidéo portrait de 15 secondes en 4K

Image vers vidéo et références de sujets

Interpolation entre images initiale et finale

Déclaration des images avec des rôles

Montage vidéo

Le montage conserve la durée de la vidéo source ; duration est sans effet. Utilisez des instructions de montage courtes et précises. Pour une modification locale, ajoutez Keep everything else the same.

Prolongation d’une tâche existante

Pour prolonger une vidéo téléversée, remplacez extend_from_task_id par video_urls et conservez "omni_reference_task_type": "extend". La vidéo renvoyée contient l’original suivi du segment ajouté. duration contrôle uniquement la durée ajoutée, limitée à 10 secondes ; seules les secondes ajoutées sont facturées. Par exemple, une source de 5 secondes avec duration: 4 produit une vidéo d’environ 9 secondes.

Réponse de soumission et suivi de tâche

Une soumission réussie renvoie HTTP 200 ; récupérez data[0].task_id. Interrogez le statut de la tâche toutes les 5–10 secondes jusqu’à completed ou failed. Prévoyez une attente globale de 10 minutes. Si le client expire, continuez à interroger la tâche initiale sans la soumettre à nouveau.
Durées indicatives : une vidéo de 15 secondes en 360p prend environ 30 secondes, et en 4K environ 5 minutes. Vérifiez toujours le statut de la tâche.
data dans la réponse de suivi est l’objet tâche. data.result.videos[0].url est un tableau ; la première URL est data.result.videos[0].url[0]. Elle permet la lecture ou le téléchargement. Archivez le fichier pour le conserver durablement. data.cost est le montant final en USD.

Facturation et solde réservé

Facturation par tokens : la résolution détermine les tokens de sortie vidéo par seconde. Pour la génération à partir de texte ou d’images, duration définit la durée de sortie. Le montage ignore ce paramètre et conserve la durée de la source ; la prolongation l’utilise uniquement pour le segment ajouté. Consultez les tarifs APIMart. À la soumission, le solde réservé dépend de la résolution et de max(10, duration) secondes ; une vidéo en entrée entraîne une estimation de 15 secondes. La réserve n’est pas le montant final. Après réussite, elle est ajustée à l’utilisation réelle ; le résultat figure dans data.cost. La prolongation est facturée uniquement sur les secondes ajoutées. Un échec n’est pas facturé. Un solde insuffisant pour la réserve renvoie HTTP 402.

Gestion des erreurs

Les erreurs de paramètres (invalid_* / unsupported_*) font immédiatement passer la tâche à failed, sans facturation. Vérifiez le statut même après une soumission réussie.

Questions fréquentes

prompt est-il obligatoire avec des images ou une vidéo ?

Oui. Tous les modes exigent prompt, y compris la génération depuis des images, l’interpolation initiale/finale, le montage, la prolongation et la réutilisation d’une vidéo via extend_from_task_id. Son absence renvoie HTTP 400.

Puis-je envoyer directement des images ou une vidéo en Base64 ?

Non. image_urls, first_frame_image, last_frame_image, image_with_roles[].url et video_urls acceptent uniquement des URL HTTP(S) directes et accessibles publiquement. N’envoyez pas de data:image/..., de data:video/... ni de chaînes Base64 brutes.