How rzatf/jora-universal-lyric-romanizer works
JORA is a lyric-cleaning and romanization application with a desktop GUI and a separate offline command-line converter. The main GUI workflow accepts pasted JSON/LRC or fetches lyrics from LRCLIB, extracts available metadata, unescapes and processes lyric lines while preserving timestamps, romanizes supported scripts, and displays and copies the result. The README documents Japanese, Korean, Mandarin, and Latin handling; the sampled GUI source shows those conversion branches. The CLI is narrower: it converts Japanese text and writes an output file. GUI details outside the sampled excerpts are represented only where documented.
Main entry points: jora_gui.py Desktop GUI · jora.py Offline converter
Components 17
Desktop app
- Desktop GUI
jora_gui.py - Lyric input
jora_gui.py - Online search
jora_gui.py - Result display
jora_gui.py
Lyric processing
- JSON unescape
jora_gui.py - Metadata extraction
jora_gui.py - Line processing
jora_gui.py - Timestamp preservation
jora_gui.py - Script detection
jora_gui.py - Japanese romanizer
jora_gui.py - Korean romanizer
jora_gui.py - Mandarin romanizer
jora_gui.py
External services
- Clipboard
- LRCLIB API
Offline CLI
- Offline converter
jora.py - output.lrc file
jora.py
Other components
- User
Connections 21
- User → Desktop GUI: uses
- Desktop GUI → Lyric input: accepts input
- Desktop GUI → Online search: dispatches search
- Online search → LRCLIB API: requests lyrics
- LRCLIB API → Online search: returns JSON
- Online search → Lyric input: inserts response
- Desktop GUI → JSON unescape: processes input
- JSON unescape → Metadata extraction: extracts tags
- JSON unescape → Line processing: processes lyrics
- Line processing → Timestamp preservation: preserves times
- Line processing → Script detection: converts text
- Script detection → Japanese romanizer: routes Japanese
- Script detection → Korean romanizer: routes Korean
- Script detection → Mandarin romanizer: routes Mandarin
- JSON unescape → Result display: returns result
- User → Result display: views output
- Desktop GUI → Clipboard: copies result
- User → Offline converter: provides text
- Offline converter → Line processing: converts Japanese
- Offline converter → Clipboard: copies result
- Offline converter → output.lrc file: writes file