> 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を使用してメディアファイルを別の言語に吹き替える方法を説明します。この例では、英語の音声ファイルからダビングプロジェクトを作成し、スペイン語の吹き替えを生成します。

ダビングプロジェクトは2つの要素で構成されます。1つのメディアソースとそのトランスクリプトを保持する**プロジェクト**と、それぞれが1つの言語で吹き替え出力を生成する1つ以上の**言語ターゲット**です。プロジェクトを作成し、ソースの文字起こしが完了するのを待ってから言語を追加し、完成した吹き替えをダウンロードします。

> **Note**
>
> プロジェクトを作成すると、ダビングプロジェクトの最低料金として、最初に1言語分の料金が発生します。この料金は最初の言語ターゲットに充当されます。最初に追加する言語で消費され、追加の言語にはそれぞれ別途料金がかかります。詳しくは、[ダビングの料金は？](/docs/ja/help-center/product/dubbing/how-much-does-dubbing-cost)を参照してください。

言語は、`es`や`fr-CA`などのBCP-47タグで指定します。使用できるすべての値については、[対応言語と方言](/docs/ja/overview/capabilities/dubbing#supported-languages)を参照してください。

## ダビングAPIを使用する

#### APIキーを作成する

[ダッシュボードでAPIキーを作成](https://elevenlabs.io/app/settings/api-keys)し、安全に[APIへアクセス](/docs/ja/api-reference/authentication)するために使用します。

キーは管理されたシークレットとして保存し、好みに応じて`.env`ファイルによる環境変数として、またはアプリの設定で直接SDKに渡してください。

**`.env`**

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

#### SDKをインストールする

#### SDK

`dotenv`ライブラリも使用して、環境変数からAPIキーを読み込みます。

```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`を実行すると、各コマンドグループ用の
> `SKILL.md`が`skills/`に作成されます。これにより、ドキュメントを貼り付けなくても、アシスタントがCLIのすべての機能を把握できます。
> 別の場所に配置するには`--output-dir`を使ってください。CLIに組み込まれたAPI定義を読み取るため、APIキーは不要で、オフラインでも動作します。また、
> インストールしているCLIのバージョンに常に対応します。

次に認証します。ブラウザが開き、CLIを承認できます。

```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は署名付きで、発行から約1時間で期限切れになります。期限切れの場合は、言語を再度取得して新しい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`に保存されます。

## 失敗への対処

言語の追加に失敗した場合は、新しいプロジェクトを作成するのではなく、既存のプロジェクトに同じ言語を再度追加してください。プロジェクトと文字起こし済みのソースは再利用できるため、言語を再試行する方が速く、[1言語分の最低料金](/docs/ja/help-center/product/dubbing/how-much-does-dubbing-cost)を再度支払う必要もありません。

新しいプロジェクトを作成するのは、準備中にプロジェクト自体が`failed`になった場合だけです。これはソースを文字起こしできなかったことを意味します。ソースファイルまたはURLを確認してから、新しいプロジェクトを作成してください。

> **Tip**
>
> エンタープライズワークスペースでは、言語を追加する前にソーストランスクリプトを確認・修正できるため、より正確な翻訳を生成できます。詳しくは、[吹き替えを調整して再生成する](/docs/ja/eleven-api/guides/how-to/dubbing/refine-and-regenerate)を参照してください。

## 次のステップ

#### [独自のトランスクリプトを使用する](/docs/ja/eleven-api/guides/how-to/dubbing/bring-your-own-transcript)

既存のトランスクリプトからプロジェクトを作成し、独自の翻訳を指定する

#### [吹き替えを調整して再生成する](/docs/ja/eleven-api/guides/how-to/dubbing/refine-and-regenerate)

ソーストランスクリプトと翻訳を編集してから、吹き替えを再生成する

#### [複数の言語に吹き替える](/docs/ja/eleven-api/guides/how-to/dubbing/multiple-languages)

1つのプロジェクトに複数のターゲット言語を追加する

#### [APIリファレンス](/docs/ja/api-reference/dubbing/create-project)

ダビングAPIのすべてのパラメーターとレスポンス形式を確認する