Perso Dubbing Plugin

August 14, 2026 · View on GitHub

Perso Dubbing Plugin

Every video, every language. Dub, subtitle, and clip right from your coding agent. "Dub this video into English" is the whole workflow.

Perso AI Node.js Agent Skills Hosts MIT skills.sh

English한국어EspañolPortuguêsРусскийBahasa IndonesiaDeutschไทย日本語繁體中文简体中文Tiếng ViệtFrançais


FeatureYou sayYou get
Dubbing"Dub this video into Japanese"The same video, re-voiced
Lip-sync"…with lip-sync"Mouth matched to the dubbed audio
Voice separation"Split the voice from the music"Voice and background tracks
Subtitles from speech"Make me an English SRT"An SRT extracted via STT
Subtitle translation"Translate subs.srt into Spanish"Translated SRT, timing intact, QA includedFREE
Styled subtitles"Burn these subtitles onto the video"Styled subtitles on the videoFREE
Short clips"Cut 2:00–3:00 as a short"A 9:16 clip, reframedFREE
AI highlights"Pick the best moments as shorts"AI-selected highlight clips

Files, folders, and YouTube/TikTok URLs all work.


Install

Agent installing from this repo URL? In Claude Code, run this now (non-interactive, safe to re-run):

claude plugin marketplace add perso-ai/perso-dubbing-plugin && claude plugin install perso-dubbing@perso-ai

Have the user restart so /dubbing, /srt, /clip load. Other hosts: npx perso-dubbing. No terminal (ChatGPT / Gemini): docs/chatgpt-setup.md · docs/gemini-setup.md

Claude desktop app (paid plan): open the Code tab, pick a folder, choose Local, paste:

claude marketplace add perso-ai/perso-dubbing-plugin && claude install perso-dubbing@perso-ai

Claude Code CLI: /plugin marketplace add perso-ai/perso-dubbing-plugin, then /plugin install perso-dubbing@perso-ai

Codex · Antigravity · anything else: npx perso-dubbing detects your hosts and installs into each — or, cross-agent via skills.sh:

npx skills add perso-ai/perso-dubbing-plugin

Requires Node.js 18+, nothing else. Visual walkthrough · FAQ


Styled subtitles

Pick one of twelve presets, or just describe the look in plain words: "yellow text, black outline, bottom." The burn runs locally on ffmpeg: no upload, no queue, no account. Several languages? Each SRT gets its own finished video.

12 subtitle style presets


Translate subtitles

Hand over any SRT and name the languages you want. Several at once is fine, one pass covers them all. Every line keeps its exact original timing, appearing and disappearing at the same moments as before. Before delivery, the result is checked for lines that run too long or read too fast.

Subtitle translation demo


Short clips

Timecodes in, vertical shorts out: reframed 16:9 → 9:16, named, and ready for subtitles. Or hand over the transcript and AI picks the moments that work as shorts: opens on a hook, rides the reaction to its peak, cuts before the energy drops. 30–90 seconds each.

Short clips demo: ask in chat, highlights picked on the timeline, 9:16 shorts out


Dubbing and lip-sync

One run takes a file, a whole folder, or a YouTube/TikTok URL and dubs it into several languages from a single upload. Videos over the plan limit split, process, and merge back on their own; an interrupted run resumes exactly where it stopped, never re-billing finished parts. Dubbing clones the original voice into the new language, and lip-sync moves the mouth to match that cloned audio.


Subtitles from speech (STT)

No subtitles yet? Speech-to-text runs on Perso's servers and uses credits to turn the video's audio into an SRT in the original language, for one file or a whole folder. Every step after the SRT exists is free: translating, styling, burning.


Voice separation

Splits a video or audio into clean tracks: the voice and the background. With several speakers, each person's voice comes out as its own track. Swap the soundtrack, remaster the dialogue, or reuse any track on its own.


Free where it can be. Paid where it must be.

MIT, free and open-source. Everything that runs on your machine costs nothing and needs no account: styling and burning subtitles, translating an SRT you have, cutting clips at timecodes. Credits come in only when a job runs on Perso's servers: dubbing, lip-sync, voice separation, and speech-to-text, billed per processed second via the Perso Dubbing API.

No setup ceremony. The first time a server job runs, a browser opens: sign in, one click, key stored encrypted. Free steps never ask.



Privacy: /dubbing, /srt, and /clip send usage events to improve the skills, covering what ran and how it went, media length, style choices, coarse locale, app version/OS, and whether a Perso API key was used (and registered). Each event has a random per-install ID and your workspace number; never your key, media, filenames, or subtitle text. Opt out with PERSO_NO_TELEMETRY.

License: the skill code is MIT. API usage is subject to the Perso AI Terms of Service and pricing.