Skip to main content

API Vidéo - Création

Crée une vidéo complète avec plusieurs séquences. Chaque séquence peut contenir des médias (images ou vidéos) animés selon le type d’animation spécifié. Vous pouvez ajouter une intro, une outro, des transitions entre séquences, un logo, et des effets avant/après.

Authentification

Toutes les requêtes doivent inclure l’en-tête :
  • x-api-key: VOTRE_API_KEY

En-têtes

string
requis
Votre clé API IACrea
string
requis
Doit être application/json

Corps de requête

object
requis
Objet vidéo contenant toutes les séquences et paramètres
string
requis
Format de la vidéo : "landscape" | "portrait" | "square"
string
Template vidéo. Défaut : "SaleProperty". Optionnel.
string
URL de la musique de fond. Optionnel.
string
Police de caractères (ex : "Inter"). Défaut : "Inter". Optionnel.
array
requis
Tableau de deux couleurs [background, text] (ex : ["#1a1a2e", "#ffffff"]). La première couleur est le fond, la seconde la couleur du texte.
Active l’affichage du logo sur les séquences vidéo/image (coin supérieur droit, 100 px). Le logo sur les intro/outro est contrôlé séparément via sequence.data.displayLogo.
string
URL du logo. Nécessaire si displayLogo=true ou si vous souhaitez afficher le logo sur les intros/outros. Optionnel.

Séquences

array
requis
Tableau de séquences vidéo ordonnées. Chaque séquence représente un clip dans la vidéo finale. Les séquences sont composées dans l’ordre de leur champ order.
number
requis
Ordre d’affichage de la séquence dans la vidéo (commence à 0). L’intro doit être en premier (0), l’outro en dernier.
number
requis
Durée de la séquence en secondes. - Séquences "video" : max 5 secondes (plafonné automatiquement) - Séquences "intro" : 2 à 5 secondes (recommandé : 3) - Séquences "outro" : 3 à 5 secondes (recommandé : 5) - Séquences "image" : libre
string
requis
Type de séquence : - "intro" — Écran d’introduction (logo + texte de présentation) - "outro" — Écran de fin (logo + coordonnées ou texte) - "video" — Séquence vidéo animée (déclenche la génération IA) - "image" — Séquence image statique - "beforeAfter" — Séquence avant/après (slide comparatif statique)
string
requis
Type d’animation. Valeurs possibles :Mouvements de caméra :
  • "CAMERA_PUSH_IN" — Zoom avant
  • "CAMERA_PUSH_OUT" — Zoom arrière
  • "CAMERA_MOVE_RIGHT" — Déplacement vers la droite
  • "CAMERA_CRANE_UP" — Mouvement vers le haut
  • "CAMERA_ORBIT_LEFT" — Rotation vers la gauche
Effets automatiques IA :
  • "AUTO_EFFECTS" — Animation automatique (prompt généré par IA)
  • "AUTO_REVERSE" — Animation automatique inversée
Effets spéciaux :
  • "REALTOR_SMILING" — Animation portrait agent immobilier
Avant/Après (nécessitent 2 images) :
  • "BEFORE_AFTER_INTERIOR" — Transformation intérieur (meublage progressif)
  • "BEFORE_AFTER_EXTERIOR" — Transformation extérieur (aménagement paysager)
  • "BEFORE_AFTER_DECLUTTER" — Débarras (meubles qui disparaissent)
  • "BEFORE_AFTER_RENOVATION" — Rénovation (timelapse avec équipe de rénovation)
Sans animation :
  • "none" — Aucune animation
  • "fade" — Fondu simple

Médias

array
requis
Tableau de médias pour cette séquence. Au moins un média requis pour les types "video" et "image". Les séquences "intro" et "outro" n’ont pas besoin de médias (tableau vide []).
string
requis
URL de l’image ou de la vidéo source. Pour les effets BEFORE_AFTER, il s’agit de l’image “avant”.
number
requis
Temps de début du média dans la séquence (en secondes). Généralement 0.
number
requis
Temps de fin du média dans la séquence (en secondes). Doit correspondre à la durée.
number
Ordre du média dans la séquence. Optionnel. Défaut : 0.
boolean
Média actif dans la séquence. Mettez true pour le média principal. Optionnel.

Données de séquence (data)

object
Données supplémentaires pour la séquence. Le contenu varie selon le type de séquence.

Données Intro (type: "intro")

string
Texte affiché sous le logo (ex : "vous présente", "À vendre").
Afficher le logo (de video.logoUrl) sur l’intro. Défaut : true.
string
Couleur de fond personnalisée pour l’intro (ex : "#1a1a2e"). Défaut : première couleur de video.colors.

Données Outro (type: "outro")

string
URL de la photo de profil (agent, conseiller). Affichée en cercle.
boolean
Afficher l’avatar sur l’outro. Défaut : true.
string
Nom affiché sur l’outro (ex : "Jean Dupont").
string
Email affiché sur l’outro.
string
Téléphone affiché sur l’outro.
boolean
Afficher le logo (de video.logoUrl) sur l’outro. Défaut : true.
string
Couleur de fond personnalisée pour l’outro.
Pour les templates Interview et Sample (générique) :
string
Titre affiché sur l’outro.
string
Description affichée sous le titre.

Données Before/After

string
Requis pour les effets BEFORE_AFTER. URL de l’image “après” transformation. L’image “avant” est fournie via medias[0].url.

Transitions

Les transitions définissent comment une séquence entre en scène par rapport à la précédente. La transition est définie dans le champ data.transition de la séquence cible.
object
Configuration de la transition d’entrée pour cette séquence.
string
Type de transition : - "fade" — Fondu enchaîné (défaut) - "wipe" — Balayage horizontal - "slide" — Glissement - "flip" — Retournement - "clock-wipe" — Balayage en horloge - "iris" — Ouverture circulaire - "none" — Pas de transition
number
Durée de la transition en frames (1 à 120). À 30 fps : - 15 ≈ 0.5 seconde - 20 ≈ 0.67 seconde (défaut) - 30 ≈ 1 seconde - 60 ≈ 2 secondes

Logo — Comportement détaillé

Le logo est contrôlé à deux niveaux :
  1. Niveau vidéo (video.displayLogo + video.logoUrl) :
    • Active l’affichage du logo en coin supérieur droit (100 px) sur les séquences de type "video" et "image".
  2. Niveau séquence (sequence.data.displayLogo) :
    • Sur les "intro" et "outro" : le logo de video.logoUrl est affiché centré (200 px pour l’intro, 150 px pour l’outro).
    • Contrôlé individuellement par sequence.data.displayLogo (défaut true).
    • Pour masquer le logo sur une intro/outro spécifique, passez "displayLogo": false dans son data.

Webhook

string
URL du webhook pour recevoir une notification lorsque la vidéo est terminée. Optionnel.

Réponses

201 — Créé avec succès

string
Identifiant unique de la vidéo générée. À utiliser avec GET /api/video-editor/generate/video/{id} pour suivre l’avancement.
array
Liste des contenus générés (un élément par séquence de type "video"). Chaque élément contient : - id : Identifiant de génération - url : URL de l’image source - effect : Type d’animation - format : Format de la vidéo - status : Statut ("pending" | "success" | "error")
number
Nombre de crédits restants
number
Nombre de crédits utilisés pour cette génération

400 — Erreur de validation

Renvoyé si le corps de requête est invalide (séquence manquante, format invalide, etc.).

401 — Non autorisé

Renvoyé si x-api-key est manquant ou invalide.

500 — Erreur serveur

Erreur interne du serveur.

Exemples

Exemple 2 — Vidéo avec transitions entre séquences

Exemple 3 — Effet BEFORE_AFTER avec deux images

Exemple 4 — Logo masqué sur l’intro mais visible sur les séquences

Réponse type

Notes importantes

  • Les séquences "video" déclenchent automatiquement la génération d’une animation IA à partir de l’image fournie. Chaque séquence vidéo consomme 1 crédit.
  • La durée maximale d’une séquence "video" est 5 secondes (plafonnée automatiquement).
  • Les séquences "intro" et "outro" ne consomment pas de crédits (pas de génération IA).
  • Utilisez l’id retourné avec GET /api/video-editor/generate/video/{id} pour suivre l’avancement.
  • Si un webhook est fourni, vous recevrez une notification lorsque la vidéo finale est prête.

Récapitulatif Intro / Outro

Récapitulatif Transitions

Les transitions sont optionnelles. Sans transition définie, le passage entre séquences utilise la transition par défaut du template (fondu de ~20 frames). Pour personnaliser, ajoutez data.transition sur chaque séquence souhaitée.

Récapitulatif Before/After