auto-dubbing

Installation
SKILL.md

Sonilo Dubbing

Dub a video into one or more other languages: the speech is translated and re-voiced, producing a new .mp4 per target language (not just an audio track or subtitles). If the user already has approved translations, pass them as subtitles and the dub speaks those lines instead of translating the source itself.

Setup: See the setup-api-key skill.

⚠️ Cost — read before calling: this is billed per language. The only free run is a 15-second preview: a self-serve account's first call with ONE language and no subtitles translates just the first 15 seconds of the video, at no charge, and the result carries trial_preview with what the whole video would cost. Every call after that — and any call with several languages or scripts — is charged. Requesting four languages costs four times as much as one. Confirm the exact language list with the user before calling; do not guess a long list "to be helpful."

⏱ This call is slow. It polls for at least two hours internally regardless of any shorter TIME_OUT_SECONDS — that's the backend's own ceiling for the dubbing pipeline. A call that sits for an hour or more is normal, not a hang. Do not cancel it: the job keeps running and charging either way, and cancelling just loses the easy path to the result (use get_sfx_task, or get_generation_task on the hosted server, to recover it instead).

Transport: MCP or CLI

Pick one at the start of the session and stay on it. Do not mix the two inside a single job, and do not announce the choice.

  1. Sonilo MCP tools visible in this session (dubbing and friends) — use them. This is the preferred path: it needs no shell, and it is the only one that survives a very long generation. If a call fails to authenticate — rather than failing on its inputs — this transport is not usable in this session: go to 2 instead of retrying it.
  2. No usable Sonilo MCP tools, but sonilo account exits 0 — use the CLI commands below. Same API, same account, same credential file. Probe with sonilo account, not sonilo whoami: whoami exits 0 even when signed out, so it cannot tell the two states apart.
  3. Neither — stop and run the setup-api-key skill. Do not call api.sonilo.com with curl to work around it; both transports handle uploads, polling and retries that a bare request does not.
Installs
1.1K
GitHub Stars
117
First Seen
Aug 13, 2026