localize
Skill2 starsChanged 27 days agoMITView on GitHub
Translate and dub a finished video into other languages - a meaning-first translation that keeps every number from facts.json, a naturalness audit (a native listener, or one clearly labelled model-only), the creator's dubbing voice, a back-transcription check and a timing check that each dubbed paragraph fits the original picture. Use for "dub this video", "translate the narration", "make a Spanish version" or "add audio tracks in other languages".
22 other projects use a version of this.
Adopted by
Most recently taken up by
- optiflowic/keyturntheir own version, first seen Nov 8, 2026
- Mharbulous/probanda-devtheir own version, first seen Nov 8, 2026
- striderZA/OpenCodeGameStudiostheir own version, first seen Nov 4, 2026
- JoblessJoe/local-llm-workertheir own version, first seen Nov 1, 2026
- JoblessJoe/localizetheir own version, first seen Oct 20, 2026
- Donchitos/Claude-Code-Game-Studiostheir own version, first seen Oct 19, 2026
Used with
Projects with it also use soak-test, team-live-ops and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
lilangMaxSkillsoak-test
Generate a soak test protocol for extended play sessions. Defines what to observe, measure, and log during long play sessions to surface slow leaks, fatigue effects, and edge cases that only appear after sustained play. Primarily used in Polish and Release phases.
Also in 9 projects that use this
lilangMaxSkillteam-live-ops
Orchestrate the live-ops team for post-launch content planning: coordinates live-ops-designer, economy-designer, analytics-engineer, community-manager, writer, and narrative-director to design and plan a season, event, or live content update.
Also in 9 projects that use this
- +10 more from lilangMax
Other versions22 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 22
- Donchitos/Claude-Code-Game-Studios★ 27ksame name
- ryokun6/ryos★ 1.3ksame name
- pixel-cellar/Claude-Code-Game-Studios★ 324same name
- striderZA/OpenCodeGameStudios★ 118same name
- tranhieutt/software_development_department★ 71same name
- cenconq25/claude-code-app-studio★ 40same name
- rainday/smart-blog-skills★ 35same name
- CoralGame/Claude-Code-Game-Studios★ 19same name
- dawn840705/codex-code-studios★ 17same name
- lilangMax/ClaudeCodeGameStudios★ 8same name
12 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository13 other files it gives its agents.
- channel-pulseSkill
- check-renderSkill
- check-thumbnailSkill
- check-voiceoverSkill
- find-topicSkill
- make-shortsSkill
- morph-clipsSkill
- produce-videoSkill
- research-factsSkill
- retention-by-sceneSkill
- setupSkill
- upload-privateSkill
- write-scriptSkill
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 4 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 21 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 30
Keep exactly: every number, unit and date in facts.json.
- Distinctive: line 33
Keep each sentence in its own paragraph: every paragraph has to fit its own slot in the picture.
- Distinctive: line 40
Read every paragraph twice, first against the source for meaning, then aloud for naturalness:
- Distinctive: line 44
No subject drift: who sells, who pays, who owns is still clear.
- Distinctive: line 45
No translationese: calqued idioms, source word order, bureaucratic verbs.
- Very specific: line 53
Read the dubbing station from ~/.tubecrew/stack.json (run the setup skill if it is missing):
- Very specific: line 60
Only clone a voice whose owner agreed.
- Very specific: line 82
Write each language's title (at most 100 characters) and description (at most 5000 bytes) into upload.json localizations.
“Common” is measured: kept by at least 6 in 10 of the 21 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Localize a video
The viewer should hear a narrator who talks the way people in their country talk, saying exactly the same facts, in time with the same pictures. Start from the final script (after the fact-check) and the final render: a later change to the source means re-translating and re-voicing every changed paragraph.
$SKILL below is this skill's folder.
Files
dub/<lang>/script.md translation, same paragraph ids (P01, P02, ...) as script.md
dub/<lang>/tts.md the text sent to the voice engine (numbers spelled out), if it differs
dub/<lang>/voice/P01.wav one audio file per paragraph, named by its id
dub/<lang>/narration.wav the paragraphs joined into one track (for the voice check and YouTube Studio)
dub/<lang>/captions.srt captions timed to the dub
qa/voice-check-<lang>.json, qa/dub-fit-<lang>.json
upload.json "localizations": {"<lang>": {"title": ..., "description": ...}}1. Translate for meaning, not word by word
- Rebuild each sentence the way a native narrator would say it: word order, idiom, form of address and rhythm of the target language. Keep the creator's questions, doubts and emphasis; never invent experiences or evidence.
- Keep exactly: every number, unit and date in
facts.json; the currency (a US company's dollars stay dollars); the country and institutions of the events; hedges ("about", "reportedly", "the company says"); product names and commands. - Keep each sentence in its own paragraph: every paragraph has to fit its own slot in the picture.
- Length targets per language, the number table and the regional variant:
$SKILL/references/translation.md. Shorten by cutting filler and repetition, never a number, a name, a direction (up/down, profit/loss) or a hedge. - Title and description say the same promise in the target language, with the same chapter times and links.
2. Native-listener audit
Read every paragraph twice, first against the source for meaning, then aloud for naturalness:
- Hedges kept: "can keep" did not become "keeps".
- Time direction right: "years ahead" did not become "years ago".
- No subject drift: who sells, who pays, who owns is still clear.
- No translationese: calqued idioms, source word order, bureaucratic verbs.
- Names, terms and numbers read the way this language says them.
A model-only naturalness check is not human review. Unless a native speaker listened, write "model audit, not a native speaker" in the report.
3. Voice
Read the dubbing station from ~/.tubecrew/stack.json (run the setup skill if it is missing):
cosyvoice: local, free, one job at a time on the GPU. Use a clean reference clip of the creator's own voice.elevenlabs: costs credits. Estimate them first (about one credit per character oftts.md), tell the creator the number and the remaining balance, and generate only after a yes.none: stop after translated captions, title and description.
Only clone a voice whose owner agreed. Detail and retry rules: $SKILL/references/voice-and-timing.md.
4. Check each language
Back-transcribe the dub with the check-voiceover skill, then check the timing:
python <check-voiceover>/scripts/voice_check.py dub/es/script.md dub/es/narration.wav --language es \
--out qa/voice-check-es.json
python $SKILL/scripts/dub_fit.py script.md qa/voice-check-transcript.json dub/es/voice --lang esvoice_check.py takes the paragraph files joined in order (or the assembled track). dub_fit.py needs the
original narration's word-timed transcript (voice_check.py saves one when it transcribes audio). It FAILs a
paragraph that needs more than 1.25x speed-up or starts more than 4 s from where the original paragraph started,
and says about how much shorter to rewrite it. Fix by rewriting the translation, never by speeding the voice past
the cap; then re-voice only the changed paragraphs and run both checks again. A high back-transcription score
does not prove natural delivery: list the lines that need a human listen.
5. Package
- Captions follow the dubbed timing; a number stays on one line with its unit.
- Write each language's title (at most 100 characters) and description (at most 5000 bytes) into
upload.jsonlocalizations;upload-privatesends them with the video. - YouTube's API cannot attach extra audio tracks: the creator adds each dubbed track in YouTube Studio. Nothing here publishes anything.
Report back
Per language: status (text ready, audio ready or blocked), the voice_check and dub_fit verdict lines, the paragraphs re-voiced, lines that need a human listen, credits spent, and who did the native audit.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

