Video Translator

Dubbar en video till 33 språk med inhemska röster och SRT via violin CLI

av shang-zhu · shang-zhu/violin

Fungerar med konfiguration ★ 7.2/10

Video Translator — Dubbar en video till 33 språk med inhemska röster och SRT via violin CLI

Vad den gör

Wrappar open-source Violin CLI så att Claude kan dubba en .mp4/.mkv/.webm till ett annat språk: den transkriberar med Whisper, översätter med en LLM, syntetiserar en voice-over med Cartesia Sonic 3, och remuxar videon med en valfri SRT. Utlöses när en användare ber att översätta, dubba eller göra en voice-over på en videofil, eller vill ha undertexter för en. Skicklighetsfilen lägger till en pre-flight-kontroll (CLI på PATH, input existerar, TOGETHER_API_KEY inställd), en flaggtabell, stilprofilval (standard/kids/academic/casual/storyteller/news), och regler för att visa körkostnad och stanna på standard Together-stacken.

Testrapport

Jag körde faktiskt `uv tool install violin` på denna maskin: den installerades på Python 3.11 och sedan dog varje anrop med `SyntaxError: f-string: unmatched '['` i pipeline/costs.py:111 (PEP 701 nästlade citat behöver 3.12+), trots att pyproject/PyPI deklarerade requires-python >=3.10; ominstallation med `--python 3.13` fixade det. Med den fungerande CLI verifierade jag SKILL.md mot verkligheten: varje flagga i dess tabell matchar `violin --help` en-för-en, `violin --style list` returnerar exakt de sex stilar den nämner, och pipeline/languages.py innehåller exakt 33 språk medan tts_elevenlabs.py har inhemska röster för exakt de 16 den listar (zh es en hi ar pt ru ja tr de ko fr it pl nl sv) — ingen överdrift. Alla tre kroppsrefererade filer hämtades HTTP 200 (pipeline/pricing.py, config/default.yaml, config/other_api.yaml, plus README.md); ingen curl|sh inuti SKILL.md (endast standard astral uv-installeraren i README), ingen base64, ingen hemlig exfiltrering, och den förbjuder explicit automatisk installation. Jag kunde INTE köra en riktig dubbning — ingen TOGETHER_API_KEY eller Cartesia-nyckel i denna miljö och varje körning fakturerar ett betalt API — så utdata bedöms endast på verifierbar vägledning, inte en producerad video; jämförelsen på plannivå för "dub a kids cartoon into German with subtitles and keep the original audio underneath" visade att skickligheten sparade två upptäcktsrundor (`--help`, `--style list`), korrekt utelämnade `--voiceover`/`--subtitles` eftersom båda är standard, lade till `--style kids`, och krävde att körkostnaden skulle visas — saker som ett försök från grunden skulle gissa fel. Trigger-fraseringar bedömdes: SKA (alla 3 korrekta) "Dub demo.mp4 into Spanish for our LATAM launch", "I have a product walkthrough in English — make a Chinese voice-over version", "Translate lecture.mkv into German and give me an SRT"; SKA INTE: "Translate this README.md into German" (korrekt hoppades över — text, inte video), "Generate English captions/SRT for my English-language webinar recording" (FEL — beskrivningens "or generate subtitles for it" skulle dra in skickligheten, men brödtexten medger att det inte finns något läge endast för undertexter och samma-språk-textning skulle tvinga fram en betald full dubbning), så 4/5.

Testad: 2026-07-21 · Claude Code 2.x (agent harness)

Installation

git clone --depth 1 https://github.com/shang-zhu/violin.git /tmp/video-translator-src
mkdir -p ~/.claude/skills
cp -R /tmp/video-translator-src/.claude/skills/video-translator ~/.claude/skills/video-translator
# The skill is a wrapper — it needs the violin CLI to do anything:
#   brew install ffmpeg
#   uv tool install --python 3.13 violin   # pin 3.12+: the published 0.1.1 sdist claims >=3.10 but SyntaxErrors on 3.10/3.11
#   export TOGETHER_API_KEY=...            # get one at https://api.together.ai
# Verify: violin --help && violin --style list
# (`violin --install-skill` copies the same SKILL.md itself.)

Kommandon och exempelprompter

  • /video-translatorDubbar en video till 33 språk med inhemska röster och SRT via violin CLI

Skills triggas av vanliga förfrågningar — inga kommandon att memorera. Efter installationen aktiverar prompter som dessa skillen (på engelska):

  • Dub this video into Spanish for me
  • Generate subtitles for this MP4 file
  • Translate and voice-over this video into French