> ## Documentation Index
> Fetch the complete documentation index at: https://captions.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Premiers pas

> Créez une vidéo humaine expressive de format court à partir d'une image fixe et d'une piste audio.

# Aperçu

Mirage Video est un modèle vidéo conçu spécifiquement pour le réalisme humain. À partir d'une seule image et d'un clip audio, Mirage peut créer des vidéos expressives et réalistes qui capturent les subtils mouvements faciaux, les émotions et la synchronisation labiale avec une fidélité remarquable.

Entraîné sur des images humaines diverses, Mirage comprend comment les visages bougent, comment les voix façonnent les expressions et comment de petits détails rendent les personnes réelles à l'écran.

L'API Mirage Video expose cette capacité aux développeurs via des endpoints simples :

* Créer une vidéo — Démarrez une nouvelle génération vidéo à partir d'une paire image-audio.
* Récupérer une vidéo — Récupérez l'état actuel d'un job de génération vidéo et suivez sa progression.
* Récupérer le contenu vidéo — Obtenez le MP4 final une fois le job terminé.
* Lister les vidéos — Accédez à vos générations vidéo récentes.

## Prérequis

Créez une clé API dans le [tableau de bord de la plateforme](https://platform.mirage.app/).

## 1) Créer une vidéo

Fournissez une image portrait (JPEG/PNG) et un audio de parole (WAV/MP3).

<CodeGroup>
  ```python Python theme={"system"}
  import requests

  url = "https://api.mirage.app/v1/videos"
  headers = {
      "x-api-key": "<api-key>"
  }
  files = {
      "image_reference": open("portrait.jpg", "rb"),
      "audio_reference": open("voice.mp3", "rb")
  }
  data = {
      "model": "mirage-video-1-latest"
  }

  response = requests.post(url, headers=headers, files=files, data=data)
  print(response.json())
  ```

  ```typescript TypeScript theme={"system"}
  const formData = new FormData();
  formData.append("model", "mirage-video-1-latest");
  formData.append("image_reference", await fs.readFile("portrait.jpg"));
  formData.append("audio_reference", await fs.readFile("voice.mp3"));

  const response = await fetch("https://api.mirage.app/v1/videos", {
    method: "POST",
    headers: {
      "x-api-key": "<api-key>"
    },
    body: formData
  });

  const data = await response.json();
  console.log(data);
  ```

  ```bash cURL theme={"system"}
  curl --request POST \
    --url https://api.mirage.app/v1/videos \
    --header 'Content-Type: multipart/form-data' \
    --header 'x-api-key: <api-key>' \
    --form model=mirage-video-1-latest \
    --form image_reference=@portrait.jpg \
    --form audio_reference=@voice.mp3
  ```
</CodeGroup>

**Réponse (exemple)**

```json theme={"system"}
{
  "id": "video_abc123def456",
  "object": "video",
  "completed_at": 1730822520,
  "created_at": 1730822400,
  "model": "mirage-video-1-latest",
  "progress": 100,
  "status": "COMPLETE",
  "error": null
}
```

## 2) Vérifier le statut du job

Interrogez jusqu'à ce que le statut devienne `COMPLETE`.

<CodeGroup>
  ```python Python theme={"system"}
  import requests

  url = f"https://api.mirage.app/v1/videos/{video_id}"
  headers = {
      "x-api-key": "<api-key>"
  }

  response = requests.get(url, headers=headers)
  ```

  ```typescript TypeScript theme={"system"}
  const response = await fetch(`https://api.mirage.app/v1/videos/${videoId}`, {
    method: "GET",
    headers: {
      "x-api-key": "<api-key>"
    }
  });

  const data = await response.json();
  ```

  ```bash cURL theme={"system"}
  curl --request GET \
    --url https://api.mirage.app/v1/videos/{video_id} \
    --header 'x-api-key: <api-key>'
  ```
</CodeGroup>

**Valeurs de statut**

* `PROCESSING`
* `COMPLETE`
* `FAILED`
* `CANCELLED`

## 3) Télécharger la vidéo (suivre la redirection)

Une fois le statut d'une vidéo `COMPLETE`, elle est disponible en téléchargement. L'endpoint `content` renvoie une redirection HTTP vers l'URL finale de la vidéo.

<CodeGroup>
  ```python Python theme={"system"}
  import requests

  url = f"https://api.mirage.app/v1/videos/{video_id}/content"
  headers = {
      "x-api-key": "<api-key>"
  }

  response = requests.get(url, headers=headers, allow_redirects=True)

  with open("output.mp4", "wb") as f:
      f.write(response.content)
  ```

  ```typescript TypeScript theme={"system"}
  const response = await fetch(`https://api.mirage.app/v1/videos/${videoId}/content`, {
    method: "GET",
    headers: {
      "x-api-key": "<api-key>"
    },
    redirect: "follow"
  });
  ```

  ```bash cURL theme={"system"}
  curl --request GET \
    --url https://api.mirage.app/v1/videos/{video_id}/content \
    --header 'x-api-key: <api-key>' \
    --location \
    --output output.mp4
  ```
</CodeGroup>

Votre vidéo générée est maintenant enregistrée sous `output.mp4`.

## Conseils pour de meilleurs résultats

* Utilisez un portrait clair, de face, bien éclairé avec un seul sujet. Assurez-vous que le visage est bien visible, la bouche ouverte et le sujet orienté en plan rapproché ou plan moyen pour garantir un alignement naturel avec la voix.
* Évitez les images avec des bouches fermées ou plusieurs personnes dans le cadre.
* Utilisez un audio expressif et réaliste. Les résultats ont tendance à être moins bons si l'audio est audiblement « généré par IA ».

## Référence API

* [**Créer une vidéo**](https://help.mirage.app/api-reference/videos/create-video)
* [**Récupérer une vidéo**](https://help.mirage.app/api-reference/videos/retrieve-video)
* [Récupérer le contenu vidéo](https://help.mirage.app/api-reference/videos/retrieve-video-content)
* [**Lister les vidéos**](https://help.mirage.app/api-reference/videos/list-videos)
