> For the documentation index, fetch https://sync.so/docs/llms.txt. Append .md to a page URL for Markdown. Documentation-search MCP: https://sync.so/docs/_mcp/server.

# Synchronisation

> Übersetze das Audio eines Videos in eine andere Sprache und wende lipsync auf das synchronisierte Audio in einem einzigen API-Aufruf an.

Synchronisation wird nativ auf `POST /v2/generate` unterstützt. Übergebe das Objekt `dubParams` zusammen mit deiner normalen Generierungsanfrage und Sync Labs extrahiert Audio aus der Videoeingabe, synchronisiert es in die Zielsprache und führt dann lipsync auf dem synchronisierten Ergebnis aus, alles als ein Job.

> **Note**
>
> Ein Video mit Audio reicht aus, damit Synchronisation funktioniert. Eine reine Videoeingabe (mit eingebetteter Audiospur) ist zulässig. Du musst keine separate Audioeingabe angeben. Audioeingaben im Array `input` werden ignoriert, wenn `dubParams` vorhanden ist. Du musst die Synchronisation-Parameter (`dubParams`) übergeben, um Synchronisation zu aktivieren.

## Wann Synchronisation verwendet werden sollte

* **Nativer `dubParams`-Flow (diese Seite)**: einzelner API-Aufruf, empfohlen für standardmäßige Übersetzung-plus-lipsync-Workflows.
* **Manuelle Orchestrierung**: wenn du individuelle Kontrolle über Transkription, TTS Stimmenklonen oder Zwischenschritte brauchst, siehe das [Tutorial für Übersetzung und Synchronisation](/docs/tutorials/translation), das ElevenLabs, OpenAI und Sync Labs manuell verbindet.

## Workflow

#### Ein Video mit Audio vorbereiten

Stelle sicher, dass deine Quelldatei ein Video ist, dessen Audiospur du übersetzen möchtest. Eine separate Audioeingabe ist nicht erforderlich.

#### Eine Zielsprache auswählen

Wähle einen der unterstützten `targetLang`-Codes (die vollständige Liste findest du im Enum [`DubLanguage`](/api-reference/api/generate-api/create#request.body.dubParams.targetLang) in der API-Referenz).

#### Die Generierungsanfrage senden

Nimm `dubParams` in den Request-Body auf. `providerName` und `targetLang` sind erforderlich, `sourceLang` ist standardmäßig `auto`.

#### Auf Abschluss pollen

Polle `GET /v2/generate/{id}`, bis `status` `COMPLETED` ist. `outputUrl` enthält dann das synchronisierte und lipsyncte Video.

## DubDto-Felder

Siehe die vollständige API-Referenz für [`dubParams`](/api-reference/api/generate-api/create#request.body.dubParams).

* `providerName` (`DubProviderName`, erforderlich): Synchronisationsanbieter, der verwendet wird. Aktuell ist `elevenlabs` der einzige unterstützte Wert.
* `targetLang` (`DubLanguage`, erforderlich): Zielsprachcode für Synchronisation, zum Beispiel `es`, `fr`, `ja`.
* `sourceLang` (`DubSourceLanguage`, optional, Standard `auto`): Quellsprachcode oder `auto`, damit die Engine ihn erkennt.
* `numSpeakers` (`integer`, optional): veraltet und wird ignoriert. Synchronisation v2 erkennt Sprecher automatisch. Nur zur Abwärtskompatibilität akzeptiert.

Wenn du eine Zielsprache brauchst, die nicht in `DubLanguage` aufgeführt ist, generiere oder nimm das übersetzte Audio selbst auf und übermittle es als normale `audio`-Eingabe anstatt `dubParams` zu verwenden. Lipsync-Modelle können klares Audio in jeder Sprache abgleichen.

## Anfragebeispiele

#### TypeScript SDK

```typescript
import { SyncClient } from "@sync.so/sdk";

const sync = new SyncClient();

const response = await sync.generations.create({
  model: "lipsync-2",
  input: [
    { type: "video", url: "https://assets.sync.so/docs/example-video.mp4" }
  ],
  dubParams: {
    providerName: "elevenlabs",
    targetLang: "es"
  }
});
```

#### Python SDK

```python
from sync import Sync

client = Sync()

response = client.generations.create(
    model="lipsync-2",
    input=[
        {"type": "video", "url": "https://assets.sync.so/docs/example-video.mp4"}
    ],
    dub_params={
        "provider_name": "elevenlabs",
        "target_lang": "es"
    },
)
```

#### cURL (HTTP)

```bash
curl -X POST https://api.sync.so/v2/generate \
  -H "x-api-key: $SYNC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "lipsync-2",
    "input": [
      { "type": "video", "url": "https://assets.sync.so/docs/example-video.mp4" }
    ],
    "dubParams": {
      "providerName": "elevenlabs",
      "targetLang": "es"
    }
  }'
```

## Verhaltenshinweise

* Wenn `dubParams` gesetzt ist, wird Audio aus der Videoeingabe extrahiert, über ElevenLabs in die Zielsprache synchronisiert und lipsync gegen dieses synchronisierte Audio ausgeführt.
* Audioeingaben im Array `input` werden ignoriert, wenn Synchronisation aktiviert ist. Übergib nur die Videoeingabe.
* Für das Quellvideo ist eine ermittelte Audiodauer erforderlich. Synchronisationsanfragen ohne dekodierbare Audiospur werden abgelehnt.
* Die Abrechnung erfolgt pro ausgegebener Minute für Synchronisation. Details findest du auf der Seite [Abrechnung](/docs/product/abrechnung).

## Siehe auch

* [Modelle → Lipsync](/docs/models/lipsync) - zugrunde liegendes lipsync-Modell, das nach Synchronisation verwendet wird.
* [Tutorial für Übersetzung und Synchronisation](/docs/tutorials/translation) - ältere Orchestrierung über mehrere Dienste mit granularer Kontrolle.