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

# Erste Schritte

> Erstellen Sie ein ausdrucksstarkes Kurzform-Menschenvideo aus einem Standbild und einer Audiospur.

# Übersicht

Mirage Video ist ein Videomodell, das speziell für menschlichen Realismus entwickelt wurde. Ausgehend von einem einzelnen Bild und einem Audioclip kann Mirage ausdrucksstarke, lebensechte Videos erstellen, die subtile Gesichtsbewegungen, Emotionen und Sprachsynchronisation mit bemerkenswerter Treue einfangen.

Auf vielfältigen menschlichen Bildern trainiert, versteht Mirage, wie sich Gesichter bewegen, wie Stimmen Ausdrücke formen und wie kleine Details Menschen auf dem Bildschirm real wirken lassen.

Die Mirage Video API stellt diese Funktionalität Entwicklern über einfache Endpunkte zur Verfügung:

* Video erstellen — Starten Sie eine neue Videogenerierung aus einem Bild-Audio-Paar.
* Video abrufen — Rufen Sie den aktuellen Status eines Videogenerierungsjobs ab und verfolgen Sie seinen Fortschritt.
* Videoinhalt abrufen — Laden Sie das fertige MP4 herunter, sobald der Job abgeschlossen ist.
* Videos auflisten — Greifen Sie auf Ihre zuletzt generierten Videos zu.

## Voraussetzungen

Erstellen Sie einen API-Schlüssel im [Plattform-Dashboard](https://platform.mirage.app/).

## 1) Video erstellen

Stellen Sie ein Porträtbild (JPEG/PNG) und Sprachaudio (WAV/MP3) bereit.

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

**Antwort (Beispiel)**

```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) Job-Status prüfen

Abfragen, bis der Status `COMPLETE` ist.

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

**Statuswerte**

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

## 3) Video herunterladen (Weiterleitung folgen)

Sobald der Videostatus `COMPLETE` ist, steht es zum Download bereit. Der `content`-Endpunkt gibt eine HTTP-Weiterleitung zur finalen Video-URL zurück.

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

Ihr generiertes Video ist nun als `output.mp4` gespeichert.

## Tipps für beste Ergebnisse

* Verwenden Sie ein klares, frontal ausgerichtetes Porträt mit guter Beleuchtung und einem einzelnen Motiv. Stellen Sie sicher, dass das Gesicht klar sichtbar, der Mund geöffnet ist und das Motiv in einer nahen bis mittleren Einstellung ausgerichtet ist, um eine natürliche Ausrichtung mit der Stimme zu gewährleisten.
* Vermeiden Sie Bilder mit geschlossenen Mündern oder mehreren Personen im Bild.
* Verwenden Sie ausdrucksstarkes, realistisch klingendes Audio. Ergebnisse sehen schlechter aus, wenn das Audio hörbar "KI-generiert" klingt.

## API-Referenz

* [**Video erstellen**](https://help.mirage.app/api-reference/videos/create-video)
* [**Video abrufen**](https://help.mirage.app/api-reference/videos/retrieve-video)
* [Videoinhalt abrufen](https://help.mirage.app/api-reference/videos/retrieve-video-content)
* [**Videos auflisten**](https://help.mirage.app/api-reference/videos/list-videos)
