> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Dubbing-Schnellstart

Dieser Leitfaden zeigt Ihnen, wie Sie mit der Dubbing API eine Mediendatei in eine andere Sprache synchronisieren. In diesem Beispiel erstellen Sie ein Synchronisationsprojekt aus einer englischen Audiodatei und generieren eine spanische Synchronisation.

Ein Synchronisationsprojekt besteht aus zwei Teilen: einem **Projekt**, das eine Medienquelle und ihr Transkript enthält, und einem oder mehreren **Sprachzielen**, die jeweils einen synchronisierten Output in einer einzelnen Sprache erzeugen. Sie erstellen ein Projekt, warten auf die Transkription der Quelle, fügen eine Sprache hinzu und laden dann die fertige Synchronisation herunter.

> **Note**
>
> Das Erstellen eines Projekts berechnet Ihnen im Voraus eine Sprache — die Mindestgebühr eines Synchronisationsprojekts.
> Damit ist Ihr erstes Sprachziel vorausbezahlt: Die erste hinzugefügte Sprache wird damit abgedeckt, jede
> weitere Sprache wird separat berechnet. Details finden Sie unter [Wie viel kostet Dubbing?](/docs/de/help-center/product/dubbing/how-much-does-dubbing-cost).

Sprachen werden als BCP-47-Tags angegeben, zum Beispiel `es` oder `fr-CA`. Alle akzeptierten Werte finden Sie unter [unterstützte Sprachen und Dialekte](/docs/de/overview/capabilities/dubbing#supported-languages).

## Dubbing API verwenden

#### API-Schlüssel erstellen

[Erstellen Sie hier im Dashboard einen API-Schlüssel](https://elevenlabs.io/app/settings/api-keys), den Sie für den sicheren [Zugriff auf die API](/docs/de/api-reference/authentication) verwenden.

Speichern Sie den Schlüssel als verwaltetes Secret und übergeben Sie ihn den SDKs – je nach Wunsch entweder als Umgebungsvariable über eine `.env`-Datei oder direkt in der Konfiguration Ihrer App.

**`.env`**

```js title=".env"
ELEVENLABS_API_KEY=<your_api_key_here>
```

#### SDK installieren

#### SDK

Wir verwenden außerdem die Bibliothek `dotenv`, um unseren API-Schlüssel aus einer Umgebungsvariable zu laden.

```python
pip install elevenlabs
pip install python-dotenv
```

```typescript
npm install @elevenlabs/elevenlabs-js
npm install dotenv
```

#### CLI

Installieren Sie die ElevenLabs CLI. Homebrew (macOS) und Scoop (Windows) werden empfohlen.

**`Homebrew (macOS)`**

```bash title="Homebrew (macOS)"
brew install elevenlabs/tap/elevenlabs
```

**`Scoop (Windows)`**

```powershell title="Scoop (Windows)"
scoop bucket add elevenlabs https://github.com/elevenlabs/scoop-bucket
scoop install elevenlabs
```

**`npm`**

```bash title="npm"
npm install -g @elevenlabs/cli
```

**`curl`**

```bash title="curl"
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/elevenlabs/cli/releases/latest/download/elevenlabs-cli-installer.sh | sh
```

> **Tip**
>
> Arbeiten Sie mit einem KI-Coding-Assistenten? Führen Sie in Ihrem Projekt `elevenlabs generate-skills` aus, um für jede Befehlsgruppe eine
> `SKILL.md` in `skills/` zu schreiben. So kennt Ihr Assistent den gesamten Funktionsumfang der CLI,
> ohne dass Sie Dokumentation einfügen müssen. Mit `--output-dir` können Sie sie an einem anderen Ort ablegen. Dies liest die eigene
> eingebettete API-Definition der CLI, benötigt also keinen API-Schlüssel und funktioniert offline — und bleibt mit
> der von Ihnen installierten CLI-Version synchron.

Authentifizieren Sie sich anschließend — dadurch wird Ihr Browser geöffnet, um die CLI zu autorisieren:

```bash
elevenlabs auth login
```

> **Note**
>
> Das Python-Beispiel verwendet die Bibliothek `requests`, um die synchronisierte Audiodatei herunterzuladen. Installieren Sie sie
> mit `pip install requests`.

#### API-Anfrage erstellen

#### SDK

Erstellen Sie je nach bevorzugter Sprache eine neue Datei mit dem Namen `example.py` oder `example.mts` und fügen Sie folgenden Code hinzu:

```python maxLines=0
# example.py
import os
import time
import requests
from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs

load_dotenv()

elevenlabs = ElevenLabs(
    api_key=os.getenv("ELEVENLABS_API_KEY"),
)

# 1. Create a project from a source URL
project = elevenlabs.dubbing.project.create(
    source_url="https://storage.googleapis.com/eleven-public-cdn/audio/marketing/nicole.mp3",
    source_language="en",
    reference="Quickstart dub",
)

# 2. Wait for the source media to be transcribed
while True:
    project = elevenlabs.dubbing.project.get(project.project_id)
    if project.status == "ready":
        break
    if project.status == "failed":
        raise RuntimeError("Project preparation failed")
    print("Preparing project...")
    time.sleep(5)

# 3. Add a Spanish language target
language = elevenlabs.dubbing.project.language.create(
    project.project_id,
    target_language="es",
)

# 4. Wait for the dub to finish generating
while True:
    language = elevenlabs.dubbing.project.language.get(
        project.project_id, language.language_id
    )
    if language.status == "completed":
        break
    if language.status == "failed":
        raise RuntimeError("Dub generation failed")
    print("Generating dub...")
    time.sleep(5)

# 5. Download the dubbed audio from the signed URL
audio = requests.get(language.outputs.lossless_audio)
with open("dubbed.wav", "wb") as f:
    f.write(audio.content)

print("Saved dubbed audio to dubbed.wav")
```

```typescript maxLines=0
// example.mts
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
import { writeFile } from "fs/promises";
import "dotenv/config";

const elevenlabs = new ElevenLabsClient();

// 1. Create a project from a source URL
let project = await elevenlabs.dubbing.project.create({
  sourceUrl:
    "https://storage.googleapis.com/eleven-public-cdn/audio/marketing/nicole.mp3",
  sourceLanguage: "en",
  reference: "Quickstart dub",
});

// 2. Wait for the source media to be transcribed
while (true) {
  project = await elevenlabs.dubbing.project.get(project.projectId);
  if (project.status === "ready") break;
  if (project.status === "failed") throw new Error("Project preparation failed");
  console.log("Preparing project...");
  await new Promise((resolve) => setTimeout(resolve, 5000));
}

// 3. Add a Spanish language target
let language = await elevenlabs.dubbing.project.language.create(project.projectId, {
  targetLanguage: "es",
});

// 4. Wait for the dub to finish generating
while (true) {
  language = await elevenlabs.dubbing.project.language.get(
    project.projectId,
    language.languageId
  );
  if (language.status === "completed") break;
  if (language.status === "failed") throw new Error("Dub generation failed");
  console.log("Generating dub...");
  await new Promise((resolve) => setTimeout(resolve, 5000));
}

// 5. Download the dubbed audio from the signed URL
const response = await fetch(language.outputs!.losslessAudio!);
const buffer = Buffer.from(await response.arrayBuffer());
await writeFile("dubbed.wav", buffer);

console.log("Saved dubbed audio to dubbed.wav");
```

> **Note**
>
> Die Download-URL in `outputs.lossless_audio` ist signiert und läuft etwa eine Stunde nach ihrer
> Ausstellung ab. Rufen Sie die Sprache erneut ab, um eine neue URL zu erhalten, wenn sie abgelaufen ist.

Führen Sie es dann aus:

```python
python example.py
```

```typescript
npx tsx example.mts
```

Die synchronisierte Audiodatei wird in Ihrem Arbeitsverzeichnis als `dubbed.wav` gespeichert.

#### CLI

Die CLI bildet denselben Ablauf ab. Jeder Schritt gibt JSON aus — übernehmen Sie `project_id` und
`language_id` aus den Antworten in den nächsten Befehl und fragen Sie die `get`-Befehle ab,
bis der Status abgeschlossen ist.

```bash
# 1. Create a project from a source URL (note the returned project_id)
elevenlabs dubbing project create \
  --source-url https://storage.googleapis.com/eleven-public-cdn/audio/marketing/nicole.mp3 \
  --source-language en \
  --reference "Quickstart dub"

# 2. Poll until the project status is "ready"
elevenlabs dubbing project get --project-id <project_id> --query status

# 3. Add a Spanish language target (note the returned language_id)
elevenlabs dubbing project language create --project-id <project_id> --target-language es

# 4. Poll until the language status is "completed"
elevenlabs dubbing project language get \
  --project-id <project_id> --language-id <language_id> --query status

# 5. Get the signed download URL, then save the dubbed audio
elevenlabs dubbing project language get \
  --project-id <project_id> --language-id <language_id> --query outputs.lossless_audio

curl -o dubbed.wav "<lossless_audio_url>"
```

Die synchronisierte Audiodatei wird in Ihrem Arbeitsverzeichnis als `dubbed.wav` gespeichert.

## Umgang mit Fehlern

Wenn das Hinzufügen einer Sprache nicht gelingt, fügen Sie dieselbe Sprache erneut zum bestehenden Projekt hinzu, statt ein neues Projekt zu erstellen. Das Projekt und seine transkribierte Quelle sind wiederverwendbar. Ein erneuter Versuch für die Sprache ist daher schneller und vermeidet, dass Sie die [Mindestgebühr für eine Sprache](/docs/de/help-center/product/dubbing/how-much-does-dubbing-cost) ein zweites Mal zahlen.

Erstellen Sie nur ein neues Projekt, wenn das Projekt selbst bei der Vorbereitung den Status `failed` erreicht. Das bedeutet, dass seine Quelle nicht transkribiert werden konnte. Prüfen Sie die Quelldatei oder URL und erstellen Sie dann ein neues Projekt.

> **Tip**
>
> Enterprise-Arbeitsbereiche können das Quelltranskript prüfen und korrigieren, bevor eine Sprache hinzugefügt wird. Das
> führt zu genaueren Übersetzungen. Weitere Informationen finden Sie unter [Synchronisation verfeinern und neu generieren](/docs/de/eleven-api/guides/how-to/dubbing/refine-and-regenerate).

## Nächste Schritte

#### [Eigenes Transkript verwenden](/docs/de/eleven-api/guides/how-to/dubbing/bring-your-own-transcript)

Erstellen Sie ein Projekt aus einem vorhandenen Transkript und verwenden Sie eigene Übersetzungen

#### [Synchronisation verfeinern und neu generieren](/docs/de/eleven-api/guides/how-to/dubbing/refine-and-regenerate)

Bearbeiten Sie das Quelltranskript und die Übersetzungen und generieren Sie die Synchronisation neu

#### [In mehrere Sprachen synchronisieren](/docs/de/eleven-api/guides/how-to/dubbing/multiple-languages)

Fügen Sie einem einzelnen Projekt mehrere Zielsprachen hinzu

#### [API-Referenz](/docs/de/api-reference/dubbing/create-project)

Entdecken Sie alle Parameter und Antwortformate der Dubbing API