Video Generation

v1.0.0

Animez 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.

Base URL : 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
200Tâche lancée, ou état renvoyé
401Clé API absente ou invalide
402Crédits insuffisants — le message indique le solde et le coût demandé
403Clé non habilitée à la vidéo (une clé émise depuis votre tableau de bord est requise)
409Fichier pas encore prêt, ou expiré (7 jours)
422Paramètre hors bornes — aucun crédit n'est débité
502 / 503Moteur 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.