# Show HN: Ask your coding agent to subtitle, translate, and clip video (FFmpeg)

> Source: <https://github.com/perso-ai/perso-dubbing-plugin>
> Published: 2026-08-10 02:02:56+00:00

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

**English** ｜ [한국어](/perso-ai/perso-dubbing-plugin/blob/main/docs/ko/README.md) ｜ [Español](/perso-ai/perso-dubbing-plugin/blob/main/docs/es/README.md) ｜ [Português](/perso-ai/perso-dubbing-plugin/blob/main/docs/pt/README.md) ｜ [Русский](/perso-ai/perso-dubbing-plugin/blob/main/docs/ru/README.md) ｜ [Bahasa Indonesia](/perso-ai/perso-dubbing-plugin/blob/main/docs/id/README.md) ｜ [Deutsch](/perso-ai/perso-dubbing-plugin/blob/main/docs/de/README.md) ｜ [ไทย](/perso-ai/perso-dubbing-plugin/blob/main/docs/th/README.md) ｜ [日本語](/perso-ai/perso-dubbing-plugin/blob/main/docs/ja/README.md) ｜ [繁體中文](/perso-ai/perso-dubbing-plugin/blob/main/docs/zh-TW/README.md) ｜ [简体中文](/perso-ai/perso-dubbing-plugin/blob/main/docs/zh-CN/README.md) ｜ [Tiếng Việt](/perso-ai/perso-dubbing-plugin/blob/main/docs/vi/README.md) ｜ [Français](/perso-ai/perso-dubbing-plugin/blob/main/docs/fr/README.md)

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

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](https://skills.sh/perso-ai/perso-dubbing-plugin):

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

Requires **Node.js 18+**, nothing else. [Visual walkthrough](https://dubbing-plugin.perso.ai/en/) · [FAQ](/perso-ai/perso-dubbing-plugin/blob/main/FAQ.md)

FREE · RUNS LOCALLY

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.

FREE · RUNS LOCALLY

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.

FREE · RUNS LOCALLY

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.

PERSO API

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.

PERSO API

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.

PERSO API

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.

**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](https://developers.perso.ai/api-keys).

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](/perso-ai/perso-dubbing-plugin/blob/main/LICENSE). API usage is subject to the [Perso AI Terms of Service](https://perso.ai) and pricing.
