This repository contains a Chrome extension and a Node/Express backend that add pronunciation-based romaji captions to YouTube videos.
The old active Kuroshiro path has been retired from production. The only authoritative romanization path is now:
content.jsasks the backend for romaji cues.server/index.jsresolves Musixmatch lyrics.server/lib/romaji-client.jsinvokes the Python sidecar.server/python/romaji_service/pipeline.pyproduces pronunciation-aware ASCII Hepburn romaji.
The canonical path separates the following stages:
- normalization
- script/content inspection
- contextual analysis
- tokenization/reading extraction
- override handling
- fallback routing
- pronunciation resolution
- romaji rendering
- cleanup/formatting
Project overrides live in server/config/romaji-overrides.json.
- Public API and extension integration stay in Node/Express.
- Japanese NLP lives in the Python sidecar CLI at
server/python/romanize_cli.py. - The standalone desktop tool in
romaji_gui_tool.pywas migrated to the same Python pipeline, so there is no remaining OpenAI-only romanization path in the repo.
こんにちは→konnichiwaこんばんは→konbanwa元気?→genki?大丈夫→daijoubu学校→gakkouしんよう→shinyou東京→toukyouコンピューター→konpyuutaa
Install extension dependencies:
npm ciInstall backend dependencies:
cd server && npm ciOptional full NLP stack for the Python sidecar:
python -m pip install -r server/python/requirements.optional-nlp.txtRun linting:
npm run lintRun all tests:
npm testRun only the Python pipeline tests:
npm run test:pythonRun the backend only:
cd server && npm start