An AI-powered video dubbing and subtitle extraction skill for coding agents like Claude Code, Cursor, and Codex. It automatically translates and dubs videos into multiple languages, handles large files by splitting and merging, and can extract SRT subtitles via speech-to-text.
AI video auto-dubbing plugin for coding agents — translate & dub videos into multiple languages via the Perso Dubbing API. Works with Claude Code, Cursor, Codex & Antigravity.
README
🎬 /dubbing — Perso Dubbing Video Translation
English | 한국어 | Español | Português | Русский | Bahasa Indonesia | Deutsch | ไทย | 日本語 | 繁體中文 | 简体中文 | Tiếng Việt | Français
A coding-agent skill that brings Perso Dubbing's AI dubbing to your agent. Install it once, then just say "dub this video into English".
- Dub into another language — a single file, a whole folder, or a URL
- Lip-sync the dubbed video so the mouth matches the new audio
- Separate voice from background audio
- Subtitles (
/srt) — extract an SRT via speech-to-text, then your agent translates it - Oversized and very long media is split, processed, and merged back automatically
Runs on Node.js 18+ and needs a Perso Dubbing API key. Built on the Agent Skills standard (SKILL.md), so it behaves identically on Claude, Codex, Cursor, and Antigravity.

Install
📖 Visual walkthrough → — pick your agent and copy the commands.
Claude desktop app — easiest, no terminal (~3 min)
In the Claude desktop app (paid plan):
-
Open the Code tab (top center), pick any folder, and choose the Local environment — plugins don't work in cloud sessions.
-
Paste each command into the prompt box and press Enter, one at a time:
claude marketplace add perso-ai/perso-dubbing-pluginclaude install perso-dubbing@perso-aiPrefer clicking? After the first command: + button → Plugins → Add plugin → perso-dubbing.
-
Ask for a dub — "Dub this video into English — C:\videos\clip.mp4". A YouTube URL or a folder works too. Results are saved next to the source video unless you pass
--out.
Claude Code CLI: use /plugin marketplace add perso-ai/perso-dubbing-plugin and /plugin install perso-dubbing@perso-ai instead.
Every other host
npx perso-dubbing
Detects which hosts you have and installs both skills into each, printing where each one landed. Add --claude / --codex / --cursor / --antigravity for one host, --all for every host, or --project for the current project only. Already cloned the repo? node scripts/install.mjs from the repo root does the same, offline.
🤖 To the agent: if you were handed only this repository's URL:
- Claude Code (desktop or CLI) — do not run npx, even if the user said "install this". Show them the two
claude …commands above and ask them to type each one themselves (they're user-typed slash commands you cannot execute), plus the click path: + button → Plugins → Add plugin. Use npx only if they still want you to handle it afterwards.- Codex · Cursor · Antigravity, or the user delegated the install — run
npx perso-dubbing(ornode scripts/install.mjsif the repo is already cloned).
First run — your API key
A browser page opens: sign in and click once, and your key is issued and stored on this machine, encrypted. Nothing to copy. If no browser can open, a key file opens instead — paste the key there and save, and the file is encrypted and deleted.
Never paste your API key into the chat. → Get an API key · verify anytime with npm run key:check
Usage
Just tell your agent what you want:
"Dub this video into English — C:\videos\clip.mp4"
"Dub every video in this folder into Japanese and Spanish"
"Dub this YouTube link into English, with lip-sync"
"Split the voice and background music out of this clip"
"Make me an English SRT for this video"
Or type /dubbing / /srt to start. For the full list of CLI options, ask your agent for the usage or run npm run dub -- --help.
Troubleshooting
More questions? See the FAQ.
| Symptom | Fix |
|---|---|
node not found |
Install the LTS from nodejs.org (or ask your agent "install Node.js for me"), then retry. |
| Claude desktop app asks for Git (Windows) | The Code tab needs Git for Windows on first use. Install it and restart the app. |
claude commands or the Plugins menu do nothing |
You're in a cloud session — plugins need a Local (or SSH) session. |
| Key rejected or missing | Register again: node skills/dubbing/scripts/connect.mjs. Check the stored key with npm run key:check. |
| ffmpeg error | ffmpeg normally installs itself; if it fails, run npm run doctor. |
| Stopped midway (out of credits, crash, killed process) | Progress is saved continuously. Run the --resume "<state-file>" command shown in the notice — finished parts are skipped and never re-billed. |
Privacy & Telemetry
/dubbing and /srt send usage events to improve the skills — for example, which action ran, whether it succeeded, media length, app version, and OS. Each event carries a random per-install ID and your workspace number. Your API key and your media are never included. Opt out anytime with PERSO_NO_TELEMETRY.
Repository layout
.claude-plugin/ Claude Code plugin + marketplace manifests
.codex-plugin/ Codex plugin manifest
.cursor-plugin/ Cursor plugin manifest
docs/ GitHub Pages landing + translated README · FAQ (12 languages)
skills/dubbing/ The dubbing skill (SKILL.md · lib/ · scripts/) — self-contained
skills/srt/ The SRT subtitle skill (SKILL.md · scripts/) — uses the dubbing skill's lib/
scripts/ Repo-level installer (install.mjs)
License
The skill code is MIT. Dubbing itself runs through the Perso Dubbing API, so API usage is subject to the Perso AI Terms of Service and pricing.
2 skills in this repo
Plugin marketplaceAuto-dub (voice-translate) videos into other languages, with lip-sync (Perso AI Dubbing).
/plugin marketplace add perso-ai/perso-dubbing-plugin
/plugin install dubbing
Extract subtitles (SRT) from video/audio/URLs and translate them into other languages (Perso AI STT).
/plugin marketplace add perso-ai/perso-dubbing-plugin
/plugin install srt
Comments (0)
Sign in to join the discussion.
No comments yet
Be the first to share your take.