Install
git clone https://github.com/shang-zhu/violinInstall command taken from the project's README or registry entry. Always review code before running it.
README excerpt
Read full README on GitHub →🎻 Violin
Open-source Video Translation Skill.
🌐 Live demo · 📝 Blog post · 📜 MIT License
Upload a video. Violin transcribes the speech, translates it, synthesizes a native-sounding voice-over in the target language, and remuxes it back into the video — fully aligned, with optional SRT subtitles.
Available as a CLI, a FastAPI web app, and a Claude Code skill.
✨ Features
- 33 target languages with handpicked native-speaker voices for the 16 most-used ones (Cartesia Sonic 3 + ElevenLabs)
- In-video Q&A — ask questions about any moment in the dubbed video; answers use nearby subtitles plus sampled frames
- Natural-language voice picker — describe the voice you want, an LLM picks from the catalog
- 6 style profiles (experimental) — standard / kids / academic / casual / storyteller / news
- Pluggable stack — Together / OpenAI / ElevenLabs interchangeable for every stage, one YAML
🚀 Quick start
Try it without installing anything
The live demo runs at https://www.violin-ai.com — drop a short clip in, get a dubbed video out in a few minutes.
Run locally
Requires Python 3.10+ and ffmpeg on PATH.
curl -LsSf https://astral.sh/uv/install.sh | sh # install uv if you don't have it
uv tool install violin # recommended — faster, isolated
# or: pip install violin # if you'd rather install into your current Python env
export TOGETHER_API_KEY=... # get one at https://api.together.ai (add to ~/.zshrc to persist)
Three ways to use it:
1. CLI — translate one file:
violin lecture.mp4 lecture_zh.mp4 --language Chinese
2. Web app — full REST API + browser UI:
violin-api
# → http://127.0.0.1:8000 (browser UI)
# → http://127.0.0.1:8000/docs (interactive API docs)
3. Claude Code skill — invoke from any Claude Code session:
violin --install-skill # one-time: copies the skill into ~/.claude/skills/
claude
> please use the violin skill to translate path/to/video.mp4 into Chinese
Run from source (for hacking on the pipeline)
git clone https://github.com/shang-zhu/violin.git
cd violin
uv sync
cp .env.example .env # then fill in TOGETHER_API_KEY
uv run main.py lecture.mp4 lecture_zh.mp4 --language Chinese
To use the violin / violin-api commands globally while edits to your local source reflect immediately, install editable:
uv tool uninstall violin # if you've installed the PyPI version
uv tool install --editable .
After this, violin / violin-api run from your local checkout — edit any file and the next invocation picks it up; no rebuild needed. To switch back to PyPI: uv tool uninstall violin && uv tool install violin.
📝 To Do List
- [-] support voice cloning.
- [-] lip sync generation.
🎬 How Violin works
Similar plugs
Makes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.
Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local…
Why use many token when few token do trick. Viral skill + proxy for coding agents that cuts 65% of tokens by talking like a caveman.
Production-grade engineering skills for AI coding agents.
The 1st Collaborative AI Design Agent Workspace. Local-first and open source. Create prototypes, websites, apps, dashboards, presentations, images, and videos with your team…