Video Generation
v1.0.0Animez une image en video de 4 a 15 s, 768P ou 2K, avec l audio genere dans la meme passe. Image de depart et d arrivee pour des transitions controlees. Credits prepayes.
https://api.s33d.fr
La vidéo se paie en crédits prépayés — 1 crédit = 1 seconde en 768P, 2 crédits par seconde en 2K. Les crédits sont débités au lancement et rendus automatiquement si la génération échoue. Voir les packs.
POST /v1/video
Anime une image : à partir d'une image de départ (et/ou d'arrivée) et d'une consigne de
mouvement, produit un clip de 4 à 15 secondes en 768P ou 2K, 24 images/seconde,
avec une piste audio générée dans la même passe (ambiance, effets, voix).
La génération dure quelques minutes : la réponse est immédiate et contient
un job_id à interroger.
Paramètres (JSON body)
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| prompt | string | oui | Ce qui doit se passer à l'écran : mouvement, caméra, ambiance sonore (2 à 7000 caractères) |
| first_frame | string | l'un des deux | Image de départ : base64 (avec ou sans en-tête data:) ou URL publique. 30 Mo max, côté de 256 à 5760 px |
| last_frame | string | l'un des deux | Image d'arrivée. Fournir les deux donne une transition contrôlée d'un plan à l'autre |
| duration | integer | non | Durée en secondes, entier de 4 à 15 (défaut : 6) |
| resolution | string | non | 768P (défaut) ou 2K |
| ratio | string | non | 21:9, 16:9 (défaut), 4:3, 1:1, 3:4, 9:16 ou adaptive |
Exemple
curl -X POST https://api.s33d.fr/v1/video \
-H "Authorization: Bearer VOTRE_CLE_API" \
-H "Content-Type: application/json" \
-d '{
"prompt": "le chat ouvre la gueule et miaule, puis lève une patte vers la caméra",
"first_frame": "'"$(base64 -w0 chat.jpg)"'",
"duration": 6,
"resolution": "768P",
"ratio": "3:4"
}'
Réponse
{
"job_id": "6e24402c005a4e21acaec82af14298b4",
"status": "running",
"duration": 6,
"resolution": "768P",
"credits_charged": 6,
"credits_remaining": 294,
"poll_url": "/v1/video/6e24402c005a4e21acaec82af14298b4"
}
GET /v1/video/{job_id}
État de la génération : running, succeeded ou failed.
Interrogez toutes les 10 à 20 secondes ; comptez 2 à 4 minutes pour 6 secondes de vidéo.
En cas d'échec, les crédits sont rendus automatiquement (refunded: true).
{
"job_id": "6e24402c005a4e21acaec82af14298b4",
"status": "succeeded",
"duration": 6,
"resolution": "768P",
"credits_charged": 6,
"refunded": false,
"file_url": "/v1/video/6e24402c005a4e21acaec82af14298b4/file",
"file_bytes": 734987
}
GET /v1/video/{job_id}/file
Renvoie le MP4 (H.264 + audio AAC stéréo 32 kHz). Réservé au compte propriétaire de la tâche. Disponible 7 jours, puis supprimé — pensez à l'archiver de votre côté.
curl https://api.s33d.fr/v1/video/6e24402c.../file \
-H "Authorization: Bearer VOTRE_CLE_API" \
-o video.mp4
GET /v1/video/credits
Solde de crédits vidéo, et ce qu'il représente en secondes.
{ "credits": 294, "seconds_768p": 294, "seconds_2k": 147 }
Codes de réponse
| Code | Signification |
|---|---|
| 200 | Tâche lancée, ou état renvoyé |
| 401 | Clé API absente ou invalide |
| 402 | Crédits insuffisants — le message indique le solde et le coût demandé |
| 403 | Clé non habilitée à la vidéo (une clé émise depuis votre tableau de bord est requise) |
| 409 | Fichier pas encore prêt, ou expiré (7 jours) |
| 422 | Paramètre hors bornes — aucun crédit n'est débité |
| 502 / 503 | Moteur momentanément indisponible. Ré-interroger la tâche plutôt que la relancer : un plan déjà payé reste récupérable |
Bon à savoir
- • Un appel = une génération. Aucune relance automatique : si vous rappelez
POST /v1/video, vous payez une seconde vidéo. - • Vérifiez l'orientation de vos photos. Une image de téléphone porte souvent une rotation EXIF ; envoyez-la redressée, sinon le sujet sort couché.
- • Les mêmes crédits alimentent l'API et le Studio IA de votre espace S33D.