Nous utilisons des cookies. Les cookies et le stockage du navigateur vous gardent connecté et mémorisent vos préférences. Avec votre accord, nous mesurons aussi l’utilisation du site. Vous pouvez à tout moment. Consultez notre politique relative aux cookies.

Vidéo (tâches asynchrones)

Endpoints

Vidéo (tâches asynchrones)

POST /videos crée une tâche ; interrogez GET /videos/{id} puis téléchargez le résultat. Veo, Sora, Kling et d'autres modèles vidéo.

Essayer dans le playground

Générez des vidéos avec Veo 3.1, Sora 2 Pro, Kling, Seedance, Runway, Wan, Hailuo et d'autres. La génération vidéo prend de quelques dizaines de secondes à plusieurs minutes : elle s'exécute donc comme une tâche asynchrone : vous créez une tâche, interrogez son statut, puis téléchargez le résultat.

ÉtapeRequête
1. CréerPOST /api/v1/videos
2. InterrogerGET /api/v1/videos/{id}
3. TéléchargerGET /api/v1/videos/{id}/content?index=0

Créer une tâche

POST https://api14.com/api/v1/videos
ParamètreTypeObligatoireDescription
modelstringouiUn identifiant de modèle vidéo, par ex. google/veo-3.1-fast.
promptstringouiCe qui se passe dans la vidéo.
durationnumbernonDurée en secondes. Par défaut, la première durée prise en charge par le modèle.
resolutionstringnonpar ex. 720p, 1080p. Doit être prise en charge par le modèle.
aspect_ratiostringnonpar ex. 16:9, 9:16.
generate_audiobooleannonGénère une bande-son quand c'est pris en charge (true par défaut).
imagestringnonPremière image sous forme d'URL ou d'URI data: (image-vers-vidéo).

Durées, résolutions et ratios pris en charge par modèle : GET /videos/models (public) ou la page du modèle.

Vérification du solde

Avant l'envoi de la tâche, la passerelle estime son prix à durée × prix par seconde pour la résolution demandée (et l'option audio). Si votre solde est inférieur à l'estimation, la requête échoue avec 402 insufficient_balance et rien n'est lancé.

Réponse

{
  "id": "vid_01JABCDEF",
  "status": "queued",
  "polling_url": "/api/v1/videos/vid_01JABCDEF"
}

Interroger la tâche

GET https://api14.com/api/v1/videos/{id}
{
  "id": "vid_01JABCDEF",
  "status": "completed",
  "generation_id": "gen-1791100000-abc",
  "unsigned_urls": ["/api/v1/videos/vid_01JABCDEF/content?index=0"],
  "usage": { "cost": 1.2 }
}
statusSignification
queuedEn attente du fournisseur.
in_progressRendu en cours.
completedTerminé ; unsigned_urls liste les sorties.
failed, cancelled, expiredTerminé sans résultat ; voir error. Vous n'êtes pas facturé.

Interrogez toutes les 5 à 10 secondes. Seul le compte qui a créé la tâche peut la lire ; les autres identifiants renvoient 404 not_found.

Télécharger le résultat

GET https://api14.com/api/v1/videos/{id}/content?index=0

Renvoie les octets de la vidéo (généralement video/mp4) avec votre clé d'API. Les URL de sortie pointent toujours vers la passerelle, jamais vers le fournisseur en amont. Si le fichier n'est pas prêt ou a expiré, vous obtenez content_unavailable.

Exemple

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api14.com/api/v1",
  apiKey: process.env.API14_API_KEY,
});

// Video generation is asynchronous: submit, then poll until completed.
let job = await client.post("/videos", { body: {
  "model": "google/veo-3.1-fast",
  "prompt": "A drone shot over turquoise ocean waves at sunrise",
  "duration": 8,
  "resolution": "720p",
  "aspect_ratio": "16:9"
} });
while (!["completed", "failed"].includes(job.status)) {
  await new Promise((r) => setTimeout(r, 5000));
  job = await client.get(`/videos/${job.id}`);
}
console.log(job.status, job.unsigned_urls);

Facturation

Vous êtes facturé une seule fois, quand la tâche atteint completed, au coût réel du fournisseur. Les tâches échouées, annulées et expirées sont gratuites. Les tâches se terminent aussi en arrière-plan : une tâche que vous n'interrogez jamais est tout de même réglée et apparaît dans Utilisation.

Erreurs

StatutCodeQuand
402insufficient_balanceLe solde est inférieur au prix estimé de la tâche.
403plan_requiredVotre forfait n'inclut pas les modèles vidéo.
404model_not_found / not_foundModèle inconnu, ou identifiant de tâche qui n'est pas le vôtre.
502upstream_unavailableLe statut n'a pas pu être lu ; réessayez.

Voir Erreurs.