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

# SeeDance Videos Generation API Integrationsanleitung

> ByteDance Seedance Video Generation 集成指南 - XHuoAPI

Dieser Artikel beschreibt eine SeeDance Videos Generation API Integrationsanleitung, die es ermöglicht, offizielle SeeDance-Videos durch Eingabe benutzerdefinierter Parameter zu generieren.

## Antragsprozess

Um die API zu nutzen, müssen Sie zunächst auf die entsprechende Seite der [SeeDance Videos Generation API](https://api.xhuoapi.ai/documents/seedance-videos) gehen und den entsprechenden Dienst beantragen. Nach dem Betreten der Seite klicken Sie auf die Schaltfläche „Acquire“, wie im Bild gezeigt:

![](https://cdn.xhuoapi.ai/q6ytrc.png)

Wenn Sie noch nicht angemeldet oder registriert sind, werden Sie automatisch zur Anmeldeseite weitergeleitet, um sich zu registrieren und anzumelden. Nach der Anmeldung werden Sie automatisch zur aktuellen Seite zurückgeleitet.

Bei der ersten Antragstellung gibt es ein kostenloses Kontingent, mit dem Sie die API kostenlos nutzen können.

## Grundlegende Nutzung

Zunächst sollten Sie die grundlegende Nutzung verstehen, indem Sie den Eingabetext `content.text`, den Typ `content.type=text` und das Modell `model` eingeben, um das verarbeitete Ergebnis zu erhalten. Die genauen Inhalte sind wie folgt:

<p>
  <img src="https://cdn.xhuoapi.ai/seedance_parameters.png" width="500" className="m-auto" />
</p>

Hier haben wir die Request Headers festgelegt, einschließlich:

* `accept`: In welchem Format Sie die Antwort erhalten möchten, hier eingetragen als `application/json`, also im JSON-Format.
* `authorization`: Der Schlüssel zur Nutzung der API, den Sie nach der Beantragung direkt auswählen können.

Zusätzlich haben wir den Request Body festgelegt, einschließlich:

* `model`: Das Modell zur Videoerzeugung, wählbare Werte: `doubao-seedance-1-0-pro-250528`, `doubao-seedance-1-0-pro-fast-251015`, `doubao-seedance-1-5-pro-251215`, `doubao-seedance-1-0-lite-t2v-250428`, `doubao-seedance-1-0-lite-i2v-250428`.
* `content`: Eingabewerte-Array, `type` kann `text` oder `image_url` sein.
* `resolution`: Ausgaberesolution, wählbar `480p` / `720p` / `1080p`.
* `ratio`: Seitenverhältnis, wählbar `16:9` / `4:3` / `1:1` / `3:4` / `9:16` / `21:9` / `adaptive`.
* `duration`: Videolänge (Sekunden), Bereich 2–12.
* `seed`: Zufallszahl, Ganzzahl, -1 bis 4294967295.
* `camerafixed`: Ob die Kamera fixiert ist, `true` / `false`.
* `watermark`: Ob ein Wasserzeichen hinzugefügt werden soll, `true` / `false`.
* `generate_audio`: Ob ein Video mit Ton generiert werden soll, `true` / `false`, **nur `doubao-seedance-1-5-pro-251215` unterstützt**.
* `service_tier`: Inferenzmodus, `default` (online) oder `flex` (offline, Preis ist 50 % des Online-Preises).
* `return_last_frame`: Ob die URL des letzten Bildes des Videos im Ergebnis zurückgegeben werden soll.
* `execution_expires_after`: Zeitüberschreitung der Aufgabe (Sekunden), Bereich 3600–259200.
* `callback_url`: Asynchrone Rückrufadresse, nach der Einstellung gibt die API sofort `task_id` zurück, und bei Abschluss der Aufgabe wird das Ergebnis an diese Adresse POST gesendet.

Nach der Auswahl können Sie sehen, dass auf der rechten Seite der entsprechende Code generiert wurde, wie im Bild gezeigt:

<p>
  <img src="https://cdn.xhuoapi.ai/seedance_request.png" width="500" className="m-auto" />
</p>

Klicken Sie auf die Schaltfläche „Try“, um einen Test durchzuführen. Wie im obigen Bild gezeigt, haben wir folgendes Ergebnis erhalten:

```json theme={null}
{
  "success": true,
  "task_id": "ec22ae22-0140-4033-8c86-a48b536da595",
  "trace_id": "1cc87db0-8ee5-4436-969b-35cc571a9fd5",
  "data": {
    "task_id": "cgt-20251222005129-62fhb",
    "status": "succeeded",
    "video_url": "https://platform.cdn.xhuoapi.ai/seedance/f592800a-b87c-4705-8796-cbb8018cae35.mp4",
    "model": "doubao-seedance-1-0-pro-250528"
  }
}
```

Die Rückgabe hat mehrere Felder, die wie folgt beschrieben werden:

* `success`, der Status der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
* `task_id`, die ID der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
* `trace_id`, die Verfolgungs-ID der Videoerzeugung zu diesem Zeitpunkt.
* `data`, die Ergebnisliste der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  * `task_id`, die serverseitige ID der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  * `video_url`, der Link zum Video der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
  * `status`, der Status der Videoerzeugungsaufgabe zu diesem Zeitpunkt.
    * `model`, das Modell, das zur Videoerzeugung verwendet wurde.

Wir haben die gewünschten Videoinformationen erhalten, und wir müssen nur die Video-URL aus `data` abrufen, um das generierte SeeDance-Video zu erhalten.

Wenn Sie den entsprechenden Integrationscode generieren möchten, können Sie ihn direkt kopieren, zum Beispiel der CURL-Code ist wie folgt:

```shell theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/seedance/videos' \
-H 'authorization: Bearer ${bearer_token}' \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-d '{
  "content": [{"text":"Eine Katze, die in die Kamera gähnt. --rs 720p --rt 16:9 --dur 5 --fps 24 --wm true --seed 11 --cf false","type":"text"}],
  "model": "doubao-seedance-1-0-pro-250528"
}'
```

## Inline-Parameterbeschreibung

Am Ende des Eingabetextes `content[].text` können Sie durch Hinzufügen von `--parameter value` die Generierungsparameter übergeben (alte Methode, schwache Validierung, bei falscher Eingabe wird automatisch der Standardwert verwendet). Die vollständige Parameterliste ist wie folgt:

| Inline-Parameter | Entsprechendes Feld | Beschreibung                                 | Wertebereich                                                  |
| ---------------- | ------------------- | -------------------------------------------- | ------------------------------------------------------------- |
| `--rs`           | `resolution`        | Ausgaberesolution                            | `480p` / `720p` / `1080p`                                     |
| `--rt`           | `ratio`             | Seitenverhältnis                             | `16:9` / `4:3` / `1:1` / `3:4` / `9:16` / `21:9` / `adaptive` |
| `--dur`          | `duration`          | Videolänge (Sekunden)                        | 2–12                                                          |
| `--frames`       | `frames`            | Videoanzahl                                  | Ganzzahlen, die 25+4n in \[29, 289] erfüllen                  |
| `--fps`          | `framespersecond`   | Bildrate                                     | Unterstützt nur `24`                                          |
| `--seed`         | `seed`              | Zufallszahl                                  | -1 bis 4294967295                                             |
| `--cf`           | `camerafixed`       | Ob die Kamera fixiert ist                    | `true` / `false`                                              |
| `--wm`           | `watermark`         | Ob ein Wasserzeichen hinzugefügt werden soll | `true` / `false`                                              |

> **Empfohlene Vorgehensweise**: Verwenden Sie direkt die entsprechenden Top-Level-Felder (wie `resolution`, `ratio` usw.) im Request Body, um den Modus mit starker Validierung zu aktivieren. Bei falscher Eingabe werden klare Fehlermeldungen zurückgegeben, was die Fehlersuche erleichtert.

## Generierung von Videos mit Ton

`doubao-seedance-1-5-pro-251215` unterstützt die Generierung von Videos mit Audio über den Parameter `generate_audio`:

```json theme={null}
{
  "model": "doubao-seedance-1-5-pro-251215",
  "content": [
    {
      "type": "text",
      "text": "Ein Mädchen hält einen Fuchs, der Wind weht ihr Haar, man kann das Geräusch des Windes hören"
    }
  ],
  "generate_audio": true,
  "ratio": "16:9",
  "duration": 5
}
```

其他模型 unterstützen diesen Parameter nicht, er wird nach der Übergabe ignoriert.

## Bild-zu-Video erste Frame

Wenn Sie eine Bild-zu-Video-Aufgabe durchführen möchten, muss der `content` Parameter zunächst einen Eintrag mit `type` als `image_url` enthalten, das `image_url` Feld muss im Objektformat sein: `{"url": "https://..."}` oder im Base64-Format `{"url": "data:image/png;base64,..."}`.

> **Hinweis**: `image_url` unterstützt nicht die direkte Übergabe im String-Format (z.B. `"image_url": "https://..."`), es muss im Objektformat `"image_url": {"url": "https://..."}` verwendet werden, andernfalls wird ein 400 Fehler zurückgegeben.

Entsprechender Code:

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/seedance/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "content": [
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/i2v_foxrgirl.png"
            }
        },
        {
            "type": "text",
            "text": "Ein Mädchen hält einen Fuchs in ihren Armen. Sie öffnet ihre Augen und schaut zärtlich in die Kamera, während der Fuchs sie liebevoll zurückhält. Als die Kamera langsam zurückzieht, wird ihr Haar sanft vom Wind verweht. --ratio adaptive  --dur 5"
        }
    ],
    "model": "doubao-seedance-1-0-pro-250528"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

Wenn Sie auf Ausführen klicken, werden Sie sofort ein Ergebnis erhalten, wie folgt:

```
{
    "success": true,
    "task_id": "dc7cceb5-3c12-4de7-a5f4-abcbba3e8e39",
    "trace_id": "b3b09de3-b7fa-4bb0-88b5-aad4b4a96fd4",
    "data": {
        "task_id": "cgt-20251222072003-x2259",
        "status": "succeeded",
        "video_url": "https://platform.cdn.xhuoapi.ai/seedance/6afb78b8-5ba8-424f-adcd-69423a700b50.mp4",
        "model": "doubao-seedance-1-0-pro-250528"
    }
}
```

Sie können sehen, dass der generierte Effekt ein Bild-zu-Video ist, das Ergebnis ist ähnlich wie oben.

## Bild-zu-Video erste und letzte Frame

Wenn Sie die erste und letzte Frame eines Bild-zu-Video generieren möchten, muss der Parameter `content` zunächst den Typ `image_url` enthalten und die `role` muss auf `first_frame` und `last_frame` gesetzt werden, um die folgenden Inhalte anzugeben:

* role: Gibt die erste oder letzte Frame an.
* image\_url
  * url Bildlink
    Gleichzeitig muss `content` auch den Typ `text` als Prompt-Hinweis enthalten.

Entsprechender Code:

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/seedance/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
   "model": "doubao-seedance-1-0-pro-250528",
    "content": [
         {
            "type": "text",
            "text": "360-Grad-Aufnahme"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_first_frame.jpeg"
            },
            "role": "first_frame"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_last_frame.jpeg"
            },
            "role": "last_frame"
        }
    ]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

Wenn Sie auf Ausführen klicken, werden Sie sofort ein Ergebnis erhalten, wie folgt:

```
{
    "success": true,
    "task_id": "f7096c6c-9430-4392-8201-d259632d7afd",
    "trace_id": "4a4a3721-00fb-43d2-aff2-3b516ac01a8a",
    "data": {
        "task_id": "cgt-20251222073134-54qcw",
        "status": "succeeded",
        "video_url": "https://platform.cdn.xhuoapi.ai/seedance/95f9f5f0-fc50-4c71-bc6f-e154582c141e.mp4",
        "model": "doubao-seedance-1-0-pro-250528"
    }
}
```

Sie können sehen, dass der generierte Effekt ein Charakter-zu-Video ist, das Ergebnis ist ähnlich wie oben.

## Asynchrone Rückrufe

Da die SeeDance Videos Generation API eine längere Generierungszeit hat (ca. 1-2 Minuten), können Sie das `callback_url` Feld verwenden, um den asynchronen Modus zu aktivieren und zu vermeiden, dass die HTTP-Verbindung lange Zeit belegt ist.

Gesamtprozess: Der Client gibt bei der Anfrage ein `callback_url` an, die API gibt sofort eine Antwort mit der `task_id` zurück; nach Abschluss der Aufgabe sendet die Plattform die generierten Ergebnisse in Form von POST JSON an das `callback_url`, das Ergebnis enthält ebenfalls die `task_id`, um die Zuordnung zu ermöglichen.

```json theme={null}
{
  "task_id": "f7096c6c-9430-4392-8201-d259632d7afd"
}
```

Wenn die Aufgabe abgeschlossen ist, sieht der Inhalt, den die Plattform an das `callback_url` sendet, wie folgt aus:

```json theme={null}
{
  "success": true,
  "task_id": "f7096c6c-9430-4392-8201-d259632d7afd",
  "trace_id": "4a4a3721-00fb-43d2-aff2-3b516ac01a8a",
  "data": {
    "task_id": "cgt-20251222073134-54qcw",
    "status": "succeeded",
    "video_url": "https://platform.cdn.xhuoapi.ai/seedance/95f9f5f0-fc50-4c71-bc6f-e154582c141e.mp4",
    "model": "doubao-seedance-1-0-pro-250528"
  }
}
```

Das `task_id` Feld im Ergebnis stimmt mit dem überein, das bei der Anfrage zurückgegeben wurde, und über dieses Feld kann die Zuordnung der Aufgabe erfolgen.

## Fehlerbehandlung

Wenn beim Aufruf der API ein Fehler auftritt, gibt die API den entsprechenden Fehlercode und die Informationen zurück. Zum Beispiel:

* `400 token_mismatched`: Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
* `400 api_not_implemented`: Ungültige Anfrage, möglicherweise aufgrund fehlender oder ungültiger Parameter.
* `401 invalid_token`: Unbefugt, ungültiger oder fehlender Autorisierungstoken.
* `429 too_many_requests`: Zu viele Anfragen, Sie haben das Kontingent überschritten.
* `500 api_error`: Interner Serverfehler, etwas ist auf dem Server schiefgelaufen.

### Beispiel für eine Fehlerantwort

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "Abruf fehlgeschlagen"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Fazit

Durch dieses Dokument haben Sie gelernt, wie Sie die SeeDance Videos Generation API verwenden können, um Videos durch Eingabe von Prompt-Wörtern und Referenzbildern zu generieren. Wir hoffen, dass dieses Dokument Ihnen hilft, die API besser zu integrieren und zu nutzen. Bei Fragen wenden Sie sich bitte jederzeit an unser technisches Support-Team.
