CheaperGen
ShengshuTutoriel

Comment utiliser l’API Vidu Q4

Tutoriel pas à pas sur l’API Vidu Q4 avec Node.js, Python et cURL : envoyer une tâche image en vidéo, l’interroger ou recevoir un webhook, puis télécharger le video. L’exemple ci-dessous coûte $0,35.

Points de terminaison
2
Image en vidéo · Référence → vidéo
Exemple de requête
$0,35
Image en vidéo
Langages
3
Node.js · Python · cURL
Générations échouées
$0
remboursées automatiquement
1

Obtenir une clé API

Créez un compte, ajoutez des crédits, puis créez une clé dans Tableau de bord → Clés API. Enregistrez-la sous CHEAPERGEN_API_KEY sur votre serveur. Chaque requête la transmet comme jeton Bearer.

Comment obtenir une clé API Vidu Q4
2

Choisissez un point de terminaison Vidu Q4

Chaque tâche a son propre point de terminaison. Tous acceptent un corps JSON et renvoient une génération que vous pouvez interroger.

Vidu Q4 points de terminaison API, entrées obligatoires et tarifs
TâchePoint de terminaisonObligatoireÀ partir de
Image en vidéoshengshu/vidu-q4/image-to-videoprompt, image_url$0,0331 par seconde
Référence → vidéoshengshu/vidu-q4/reference-to-videoprompt, reference_image_urls$0,0331 par seconde
3

Envoyer une tâche image en vidéo

Ce programme envoie la tâche, interroge son état toutes les 3 secondes jusqu’à sa fin et affiche l’URL video. Remplacez le prompt et les paramètres par les vôtres.

const API = "https://cheapergen.com/api/v1";
const headers = {
  Authorization: `Bearer ${process.env.CHEAPERGEN_API_KEY}`,
  "Content-Type": "application/json",
};

// 1. Submit the job
let job = await fetch(`${API}/run/shengshu/vidu-q4/image-to-video`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    "prompt": "Elle lève les yeux de son livre et sourit tandis que la neige commence à tomber dehors",
    "image_url": "https://cdn.cheapergen.com/samples/portrait.jpg",
    "resolution": "720p",
    "duration": 5
  }),
}).then((r) => r.json());

// 2. Poll until it finishes (or pass webhook_url and skip polling)
while (job.status === "queued" || job.status === "running") {
  await new Promise((r) => setTimeout(r, 3000));
  job = await fetch(`${API}/generations/${job.id}`, { headers }).then((r) => r.json());
}

console.log(job.status === "succeeded" ? job.output.video.url : job.error);
4

Définissez les paramètres importants

Les paramètres de shengshu/vidu-q4/image-to-video, avec l’incidence de chacun sur le prix.

Paramètres Image en vidéo de Vidu Q4 et effet sur le prix
ParamètreType · valeur par défautDescriptionEffet sur le prix
resolutionstring (enum) · 720pRésolution de sortie. Les résolutions supérieures coûtent plus cher par seconde.
540p · 720p · 1080p · 2K · 4k
540p: $0,0331 par seconde
720p: $0,0699 par seconde
1080p: $0,0882 par seconde
2K: $0,1397 par seconde
4K: $0,2867 par seconde
durationinteger · 5Durée du clip généré en secondes (3–16 s). La facturation se fait à la seconde.Facturé à la seconde
generate_audioboolean · trueGénérez des dialogues synchronisés et des effets sonores. Inclus dans le prix.Aucun
seedintegerRéutilisez le même seed et les mêmes paramètres pour reproduire un résultat. Laissez ce champ vide pour une valeur aléatoire.Aucun

Les autres points de terminaison Vidu Q4 suivent la même structure, avec leurs propres entrées :

POST /api/v1/run/shengshu/vidu-q4/reference-to-video

{
  "prompt": "@Image1 salue @Image2 dans le café de @Image3 et prononce la phrase de @Audio1",
  "reference_image_urls": [
    "https://cdn.cheapergen.com/samples/reference-1.jpg",
    "https://cdn.cheapergen.com/samples/reference-2.jpg",
    "https://cdn.cheapergen.com/samples/reference-3.jpg"
  ],
  "reference_audio_urls": [
    "https://cdn.cheapergen.com/samples/reference-1.mp3"
  ],
  "aspect_ratio": "16:9",
  "resolution": "720p",
  "duration": 5
}
5

Récupérer le résultat

Une tâche passe de queued à running, puis à succeeded, failed ou canceled. Interrogez GET /api/v1/generations/{id}, ou indiquez webhook_url pour que nous vous envoyions le résultat par POST. Téléchargez le résultat et stockez-le vous-même.

200 — terminée
{
  "id": "gen_8c2QmX1nq0k4",
  "object": "generation",
  "model": "shengshu/vidu-q4",
  "endpoint": "shengshu/vidu-q4/image-to-video",
  "mode": "image-to-video",
  "status": "succeeded",
  "input": {
    "prompt": "Elle lève les yeux de son livre et sourit tandis que la neige commence à tomber dehors",
    "image_url": "https://cdn.cheapergen.com/samples/portrait.jpg",
    "resolution": "720p",
    "duration": 5
  },
  "output": {
    "video": {
      "url": "https://cdn.cheapergen.com/outputs/gen_8c2Q.mp4",
      "content_type": "video/mp4",
      "duration": 5,
      "width": 1280,
      "height": 720
    }
  },
  "error": null,
  "cost": {
    "amount_usd": 0.2255,
    "currency": "usd",
    "estimated": false,
    "official_usd": 0.264,
    "list_price_source": "official",
    "list_price_label": "Official",
    "saved_usd": 0.0385
  },
  "source": "api",
  "created_at": "2026-10-15T09:21:04Z",
  "started_at": "2026-10-15T09:21:06Z",
  "completed_at": "2026-10-15T09:22:31Z"
}
Vérifier les signatures des webhooks
6

Calculer le prix avant le lancement

Le point de terminaison de devis est gratuit et ne nécessite pas de clé. Il renvoie le prix, le prix officiel et votre remise pour exactement les paramètres que vous envoyez.

curl -X POST https://cheapergen.com/api/v1/quote/shengshu/vidu-q4/image-to-video \
  -H "Content-Type: application/json" \
  -d '{"prompt":"Elle lève les yeux de son livre et sourit tandis que la neige commence à tomber dehors","image_url":"https://cdn.cheapergen.com/samples/portrait.jpg","resolution":"720p","duration":5}'
Erreurs de l’API et marche à suivre
ÉtatCodeSignification
400invalid_requestUn paramètre manque ou dépasse les limites autorisées ; le message indique lequel.
401unauthorizedClé API manquante, mal formée ou révoquée.
402insufficient_balanceCrédits insuffisants pour le prix indiqué ; rechargez votre solde ou activez la recharge automatique.
429rate_limitedTrop de requêtes ou de générations en cours ; attendez un peu avant de réessayer.
502upstream_errorUne erreur s’est produite pendant la génération ; le montant réservé est remboursé et vous pouvez réessayer.
503model_unavailableAucune capacité n’est disponible pour le moment ; réessayez plus tard ou choisissez un autre modèle.
Documentation complète de l’API Vidu Q4

FAQ

Questions sur l’API Vidu Q4

Non. L’API utilise HTTPS et JSON. Les exemples Node.js (fetch) et Python (requests) de cette page sont des programmes complets. Toute langue capable d’envoyer une requête HTTP convient.

Oui. Ajoutez "webhook_url" au corps de la requête ; nous envoyons la génération terminée par POST à cette URL, avec une signature dans l’en-tête CheaperGen-Signature (HMAC-SHA256 de l’horodatage et du corps brut). Vous pouvez aussi interroger GET /api/v1/generations/{id}.

Transmettez des URL publiques dans "image_url", "reference_image_urls", "reference_audio_urls". Les fichiers sans URL publique peuvent d’abord être téléversés avec POST /api/v1/uploads ; l’API renvoie une URL à utiliser dans la requête.

Image en vidéo est proposé à partir de $0,0331 par seconde ; la requête d’exemple sur cette page coûte $0,35, 26 % sous le prix officiel. Les générations échouées sont automatiquement remboursées.