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

# डबिंग क्विकस्टार्ट

यह गाइड दिखाती है कि डबिंग API से किसी मीडिया फ़ाइल को दूसरी भाषा में कैसे डब करें। इस उदाहरण में आप एक अंग्रेज़ी ऑडियो फ़ाइल से डबिंग प्रोजेक्ट बनाते हैं और स्पैनिश डब जनरेट करते हैं।

डबिंग प्रोजेक्ट के दो हिस्से होते हैं: एक **प्रोजेक्ट**, जिसमें मीडिया का एक स्रोत और उसका ट्रांसक्रिप्ट होता है, और एक या अधिक **लक्ष्य भाषाएं**, जिनमें से हर एक किसी एक भाषा में डब आउटपुट बनाती है। आप प्रोजेक्ट बनाते हैं, उसके स्रोत के ट्रांसक्राइब होने का इंतज़ार करते हैं, एक भाषा जोड़ते हैं, फिर तैयार डब डाउनलोड करते हैं।

> **Note**
>
> प्रोजेक्ट बनाने पर आपसे पहले ही एक भाषा का शुल्क लिया जाता है — यह डबिंग प्रोजेक्ट का न्यूनतम शुल्क है।
> इससे आपकी पहली लक्ष्य भाषा का अग्रिम भुगतान हो जाता है: आपकी जो पहली भाषा जोड़ते हैं, उसमें यह इस्तेमाल होता है, और हर
> अतिरिक्त भाषा का शुल्क अलग से लिया जाता है। जानकारी के लिए [डबिंग की कीमत कितनी है?](/docs/hi/help-center/product/dubbing/how-much-does-dubbing-cost) देखें।

भाषाएं BCP-47 टैग के रूप में दी जाती हैं, जैसे `es` या `fr-CA`। स्वीकार किए गए सभी मानों के लिए [समर्थित भाषाएं और बोलियां](/docs/hi/overview/capabilities/dubbing#supported-languages) देखें।

## डबिंग API का इस्तेमाल

#### API कुंजी बनाएं

[यहां डैशबोर्ड में API की बनाएं](https://elevenlabs.io/app/settings/api-keys), जिसका उपयोग आप सुरक्षित रूप से [API एक्सेस करने](/docs/hi/api-reference/authentication) के लिए करेंगे।

अपनी पसंद के अनुसार की को मैनेज्ड सीक्रेट के रूप में स्टोर करें और उसे SDKs में `.env` फ़ाइल के ज़रिए एनवायरनमेंट वेरिएबल के रूप में या सीधे अपने ऐप के कॉन्फ़िगरेशन में पास करें।

**`.env`**

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

#### SDK इंस्टॉल करें

#### SDK

हम अपने API key को environment variable से लोड करने के लिए `dotenv` library का भी इस्तेमाल करेंगे।

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

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

#### CLI

ElevenLabs CLI इंस्टॉल करें। Homebrew (macOS) और Scoop (Windows) की सलाह दी जाती है।

**`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**
>
> AI कोडिंग असिस्टेंट के साथ काम कर रहे हैं? अपने प्रोजेक्ट में `elevenlabs generate-skills` चलाएं। इससे हर कमांड ग्रुप के लिए `skills/` में एक
> `SKILL.md` लिखा जाएगा, ताकि आपके असिस्टेंट को डॉक्यूमेंटेशन पेस्ट किए बिना CLI की पूरी जानकारी मिल सके। उन्हें कहीं और रखने के लिए `--output-dir` इस्तेमाल करें। यह CLI की अपनी
> एम्बेडेड API डेफ़िनिशन पढ़ता है, इसलिए इसे API key की ज़रूरत नहीं होती और यह ऑफ़लाइन भी काम करता है — साथ ही आपके इंस्टॉल किए गए CLI वर्शन के अनुसार बना रहता है।

फिर authenticate करें — CLI को authorize करने के लिए इससे आपका browser खुलेगा:

```bash
elevenlabs auth login
```

> **Note**
>
> डब किया हुआ ऑडियो डाउनलोड करने के लिए Python उदाहरण `requests` लाइब्रेरी का इस्तेमाल करता है। इसे
> `pip install requests` से इंस्टॉल करें।

#### API रिक्वेस्ट करें

#### SDK

अपनी चुनी हुई भाषा के अनुसार `example.py` या `example.mts` नाम की नई फ़ाइल बनाएं और उसमें यह कोड जोड़ें:

```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**
>
> `outputs.lossless_audio` में डाउनलोड URL साइन किया हुआ है और जारी होने के करीब एक घंटे बाद एक्सपायर हो जाता है।
> अगर यह एक्सपायर हो गया है, तो नया URL पाने के लिए भाषा को फिर से पाएं।

फिर इसे चलाएं:

```python
python example.py
```

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

डब किया हुआ ऑडियो आपकी वर्किंग डायरेक्टरी में `dubbed.wav` के रूप में सेव हो जाता है।

#### CLI

CLI इसी फ़्लो को दोहराता है। हर चरण JSON प्रिंट करता है — रिस्पॉन्स से `project_id` और
`language_id` को अगले कमांड में कॉपी करें और स्टेटस स्थिर होने तक `get` कमांड को
पोल करें।

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

डब किया हुआ ऑडियो आपकी वर्किंग डायरेक्टरी में `dubbed.wav` के रूप में सेव हो जाता है।

## विफलताओं को संभालना

अगर भाषा जोड़ना सफल नहीं होता है, तो नया प्रोजेक्ट बनाने के बजाय उसी मौजूदा प्रोजेक्ट में वही भाषा फिर से जोड़ें। प्रोजेक्ट और उसका ट्रांसक्राइब किया हुआ स्रोत दोबारा इस्तेमाल किए जा सकते हैं, इसलिए भाषा को फिर से आज़माना तेज़ है और दूसरी बार [एक-भाषा न्यूनतम शुल्क](/docs/hi/help-center/product/dubbing/how-much-does-dubbing-cost) देने से बचाता है।

नया प्रोजेक्ट केवल तभी बनाएं जब तैयारी के दौरान प्रोजेक्ट खुद `failed` पर पहुंच जाए, जिसका मतलब है कि उसके स्रोत को ट्रांसक्राइब नहीं किया जा सका। स्रोत फ़ाइल या URL जांचें, फिर नया प्रोजेक्ट बनाएं।

> **Tip**
>
> Enterprise वर्कस्पेस भाषा जोड़ने से पहले स्रोत ट्रांसक्रिप्ट की समीक्षा और सुधार कर सकते हैं, जिससे
> अनुवाद अधिक सटीक होते हैं। [डब को सुधारें और फिर से जनरेट करें](/docs/hi/eleven-api/guides/how-to/dubbing/refine-and-regenerate) देखें।

## अगले चरण

#### [अपना ट्रांसक्रिप्ट इस्तेमाल करें](/docs/hi/eleven-api/guides/how-to/dubbing/bring-your-own-transcript)

मौजूदा ट्रांसक्रिप्ट से प्रोजेक्ट बनाएं और अपने अनुवाद दें

#### [डब को सुधारें और फिर से जनरेट करें](/docs/hi/eleven-api/guides/how-to/dubbing/refine-and-regenerate)

स्रोत ट्रांसक्रिप्ट और अनुवाद संपादित करें, फिर डब को दोबारा जनरेट करें

#### [कई भाषाओं में डब करें](/docs/hi/eleven-api/guides/how-to/dubbing/multiple-languages)

एक ही प्रोजेक्ट में कई लक्ष्य भाषाएं जोड़ें

#### [API रेफरेंस](/docs/hi/api-reference/dubbing/create-project)

डबिंग API के सभी पैरामीटर और रिस्पॉन्स फ़ॉर्मैट देखें