๐ต A Spotify web extension for Chromium browsers to style, translate, and romanize lyrics. Supports Chinese, Japanese, Korean, Cyrillic, and more!
https://github.com/sglkc/moegi.git
An extension for Chromium browsers to customize lyrics in Spotify Web Player.
Report a Bug ยท Request a Feature
Features lyrics translation for over 100 languages powered by Google Translate and \ romanization for Chinese, Korean, Japanese, Cyrillic, and many more non-latin scripts! \ Tested on Google Chrome (135.0.7049.52) and Brave Browser (137.1.79.119) on Linux
Most of the changes affects developer experience instead of users, you may not notice anything different from version 1 except some layout or text changes. My main focus is to migrate the framework from CRXJS to WXT for more streamlined development.
There are some things to do:
Chromium browsers doesn't support installing extensions directly outside of Chrome Web Store, so follow these steps carefully:
Show full extension features screenshot
The most basic feature to customize your Spotify lyrics screen:
| Feature | Default | Options |
|---|---|---|
| Text Align | Left | Left, Center, Right |
| Font Size | 1em | 0.5-2.5em |
| Spacing | 0px | 0-64px |
| Colors | None | Background, Passed, Active, Inactive, Translation, Romanization |
There is an integration issue with the colors, so if you want to reset the colors, use the Reset to defaults button
Library used: google-translate-api-x
Translate lyrics line-by-line using Google Translate, successful translations are cached temporarily in storage to avoid Google Translate limit. Note that translations are not accurate and should not be used literally! Read about privacy policy.
| Feature | Default | Options |
|---|---|---|
| Font Size | 1em | 0.5-1.5em |
| Language Target | auto | Over 100 languages |
Romanize lyrics automatically by detecting the script of each text segment. The extension will apply the appropriate romanization system based on the detected Unicode script.
Supported scripts:
Other scripts will use the Any-ASCII fallback.| Feature | Default | Options |
|---|---|---|
| Auto-detection | Enabled | Automatic based on Unicode script |
| Font Size | 1em | 0.5-1.5em |
Libraries used: @sglkc/kuroshiro, @sglkc/kuroshiro-analyzer-kuromoji
Note that Japanese romanization may not be accurate, particularly on kanji!
| Feature | Default | Options |
|---|---|---|
| To | Romaji | Romaji, Hiragana, Katakana |
| Mode | Spaced | Normal, Spaced, Okurigana, Furigana |
| Romaji System | Hepburn | Nippon, Passport, Hepburn |
| Okurigana Delimiter | ( ) | Custom delimiters |
Original Text: ๆใๅใใใๆใ็นใใใ้ใชใใฎใฏไบบ็ใฎใฉใคใณ and ใฌใใชใขๆ้ซ๏ผ
Read about romaji romanization systems (for nerds).
Library used: @romanize/korean
| Feature | Default | Options |
|---|---|---|
| Hangul System | Revised | Revised, McCune, Yale |
Original Text: ์ฐ๋์ปค๋ ๊ทธ ์๋ฆฌ์ ์์ ๊ธฐ๋ค๋ฆฌ๋ ค๋ ๋ด
Library used: cyrillic-to-translit-js
| Feature | Default | Options |
|---|---|---|
| Language | Russian | Russian, Ukrainian |
Library used: pinyin-pro
| Feature | Default | Options |
|---|---|---|
| Ruby text | OFF | ON, OFF |
Library used: any-ascii
Provides a lot of conversions at the cost of accuracy, read more from the package repository.
npm install -g pnpm
If you wish to make modifications or just want to build the extension yourself:
git clone https://github.com/sglkc/moegi.git
cd moegi
pnpm install
pnpm dev
pnpm build
Any kind of contributions are greatly appreciated! You can start by forking this repository then create a pull request.
git checkout -b feat/new-feature)git commit -m 'feat: add this and that')git push origin feat/new-feature)Moegi is not affiliated with Spotify in any way. Moegi is for educational purposes only and should not be used to violate Spotify's terms of service.
Distributed under the MIT License. See LICENSE for more information.