dubbing
Dub audio and video into other languages using the ElevenLabs Dubbing API (dubbing_v2), preserving the original speakers' voices.
Skill by elevenlabsOfficial
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/elevenlabs-dubbing
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, writing, audio-video, translation
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/dubbing
What's inside
- Skill name
dubbing- Description
- Dub audio and video into other languages using the ElevenLabs Dubbing API (dubbing_v2), preserving the original speakers' voices. Use when translating videos, podcasts, or recordings into other languages, localizing media content, reviewing or correcting dubbing transcripts and translations, or regenerating a dub after edits.
- License
- MIT
- Compatibility
- Requires internet access and an ElevenLabs API key (ELEVENLABS_API_KEY).
- Instructions
- 266 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (3)
- SKILL.md
- api-reference.md · references/
- installation.md · references/
SKILL.md (first lines)
# ElevenLabs Dubbing
Dub audio or video into other languages while preserving the original speakers' voices. Create a project from a file or URL, review and edit the source transcript, add one or more target languages, refine translations per segment, and regenerate outputs.
> **Important:** Use the Dubbing Projects API — `elevenlabs.dubbing.project.*` in the SDKs, or the `/v1/dubbing/project` REST endpoints. Do **not** use the legacy v1 dubbing surface (`client.dubbing.create()`, `client.dubbing.get()`, `client.dubbing.audio.get()`, or bare `/v1/dubbing` routes) — that is the older dubbing API, now under Legacy in the API reference.
> **Setup, before writing any code:** if `ELEVENLABS_API_KEY` isn't set for this project, run `npx -y @elevenlabs/cli@latest onboard init` from the app's folder first and follow what it prints: it signs the user in and stores a key for the project, so nobody copies one by hand. Otherwise see the [Installation Guide](references/installation.md). The `elevenlabs` CLI and the SDKs read `ELEVENLABS_API_KEY` automatically; REST base URL is `https://api.elevenlabs.io` with your API key in the `xi-api-key` header.
## Concepts
| Concept | Meaning |
|---------|---------|
| **Project** | One source of media (file or URL) plus its source transcript. Prepared (transcribed) once, then rests in `ready` while you add languages. |
| **Source transcript** | Editable segments (text, speaker, timing) transcribed from the source. The single source of truth every language is translated from. |
| **Language (target)** | One dubbed output language. Each has its own transcript (source segments + a translation per segment) and its own dubbed audio output. |
| **Revisions** | Independent monotonic counters. The project's `revision` bumps on source-transcript edits; a language's `revision` bumps on translation edits or source edits that affect it. A language's `output_revision` is the revision its current audio was generated from — when it's behind `revision`, the output is out of date. |
**Recommended order of operations:** finalize the source transcript **before** adding any languages. Translations are produced from the source, so correcting the source first means every language starts from the right text — editing the source after a language completes marks it `stale` and requires a (charged) regeneration.
> **Enterprise:** Transcript editing and regeneration are available to enterprise workspaces only. Creating projects, adding languages, and downloading dubs work on all plans.
## Workflow
1. **Create** the project from a file or URL → `queued`
2. **Poll** the project until `ready`
3. **Review and finalize the source transcript** (edit/add/delete segments)
4. **Add** one language per target → `queued` → `processing` → `completed`
5. **Download** each language's `outputs.lossless_audio` when `completed`
6. **Refine** translations per segment if needed → the language goes `stale`
7. **Regenerate** the language → `completed` again with fresh output
## Quick Start (Python)
```python
import os
import time
import requests
from elevenlabs.client import ElevenLabs
elevenlabs = ElevenLabs(api_key=os.getenv("ELEVENLABS_API_KEY"))
# 1. Create a project from a local file (or pass source_url=... instead of file)
with open("promo.mp4", "rb") as f:
project = elevenlabs.dubbing.project.create(
file=f,
source_language="en",
reference="Q3 marketing video",
)
# 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")
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")
time.sleep(5)
# 5. Download the dubbed audio (signed URL, valid ~1 hour — re-fetch the language for a fresh one)
audio = requests.get(language.outputs.lossless_audio)
with open("promo_es.wav", "wb") as f:
f.write(audio.content)
```
## Quick Start (JavaScript)
```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
import { writeFile } from "fs/promises";
const elevenlabs = new ElevenLabsClient();
// 1. Create a project (sourceUrl shown; file upload is also supported)
let project = await elevenlabs.dubbing.project.create({
sourceUrl: "https://example.com/promo.mp4",
sourceLanguage: "en",
reference: "Q3 marketing video",
});
// 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");
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");
await new Promise((resolve) => setTimeout(resolve, 5000));
}
// 5. Download the dubbed audio from the signed URL
const response = await fetch(language.outputs!.losslessAudio!);From elevenlabs/skills, MIT.
More from elevenlabs/skills
- 0.814score
sound-effects
elevenlabsOfficial
Generate sound effects from text descriptions using ElevenLabs.
SkillAFreshness: A★ 508Claude Code +9 - 0.814score
music
elevenlabsOfficial
Generate music using ElevenLabs Music API.
SkillAFreshness: A★ 508Claude Code +9 - 0.814score
realtime
elevenlabsOfficial
Use ElevenLabs Realtime models (`eleven_realtime_v1_mini`, `eleven_realtime_v1_max`), the low-latency models built for voice conversation.
SkillAFreshness: A★ 508Claude Code +9 - 0.814score
voice-isolator
elevenlabsOfficial
Remove background noise and isolate vocals/speech from audio using ElevenLabs Voice Isolator (audio isolation) API.
SkillAFreshness: A★ 508Claude Code +9 - 0.814score
voice-changer
elevenlabsOfficial
Transform the voice in an audio recording into a different target voice while preserving emotion, timing, and delivery using the ElevenLabs Voice Changer…
SkillAFreshness: A★ 508Claude Code +9 - 0.814score
text-to-speech
elevenlabsOfficial
Convert text to speech using ElevenLabs voice AI.
SkillAFreshness: A★ 508Claude Code +9 - 0.814score
speech-to-text
elevenlabsOfficial
Transcribe audio to text using ElevenLabs Scribe v2.
SkillAFreshness: A★ 508Claude Code +9 - 0.814score
speech-engine
elevenlabsOfficial
Add real-time voice conversations to a custom agent runtime with ElevenLabs Speech Engine.
SkillAFreshness: A★ 508Claude Code +9 - 0.808score
onboarding
elevenlabsOfficial
Add ElevenLabs to a project from scratch.
SkillAFreshness: A★ 508Claude Code +9 - 0.808score
setup-api-key
elevenlabsOfficial
Fix or hand-configure an existing ElevenLabs API key.
SkillAFreshness: A★ 508Claude Code +9 - 0.803score
agents
elevenlabsOfficial
Build voice AI agents with ElevenLabs.
SkillAFreshness: A★ 508Claude Code +9 - 0.800score
update-skills-from-changelog
elevenlabsOfficial
Update ElevenLabs agent skills from a merged weekly changelog in elevenlabs-dx, then open a pull request in elevenlabs/skills.
SkillAFreshness: A★ 508Claude Code +9
Signals
- Stars
- 508
- Forks
- 85
- Open issues
- 1
- Last commit (this folder)
- Oct 22, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/elevenlabs/skills
- Website
- elevenlabs.io
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from elevenlabs
- 0.814score
voice-isolator
elevenlabsOfficial
Remove background noise and isolate vocals/speech from audio using ElevenLabs Voice Isolator (audio isolation) API.
SkillAFreshness: A★ 508Claude Code +9 - 0.814score
voice-changer
elevenlabsOfficial
Transform the voice in an audio recording into a different target voice while preserving emotion, timing, and delivery using the ElevenLabs Voice Changer…
SkillAFreshness: A★ 508Claude Code +9 - 0.814score
text-to-speech
elevenlabsOfficial
Convert text to speech using ElevenLabs voice AI.
SkillAFreshness: A★ 508Claude Code +9 - 0.814score
speech-to-text
elevenlabsOfficial
Transcribe audio to text using ElevenLabs Scribe v2.
SkillAFreshness: A★ 508Claude Code +9 - 0.814score
speech-engine
elevenlabsOfficial
Add real-time voice conversations to a custom agent runtime with ElevenLabs Speech Engine.
SkillAFreshness: A★ 508Claude Code +9 - 0.814score
sound-effects
elevenlabsOfficial
Generate sound effects from text descriptions using ElevenLabs.
SkillAFreshness: A★ 508Claude Code +9
Cite this page
dubbing skill. Agent Mart. https://agentmart.dev/skills/elevenlabs-dubbing (last updated 2026-10-24)