Lyrics translation requires an AI provider API key. Configure your provider and key in Settings → AI before using this feature. See AI settings for the full setup guide.
How to enable translation
1
Configure an AI provider
Go to Settings → AI, select a provider, and enter your API key. Choose a model from the presets or type a custom model name.
2
Set your target language
In Settings → AI → Target language, pick the language you want lyrics translated into. Metrolist maps language codes to full names (e.g.,
ja → Japanese) for better AI comprehension.3
Open the lyrics view
Start playing a song and open the lyrics panel by tapping the lyrics icon in the player.
4
Trigger translation
Tap the translate button in the lyrics panel. Translation begins immediately and lines populate progressively as the AI responds.
Supported AI providers
Metrolist supports the following providers for translation:OpenRouter
Routes requests to any model available on OpenRouter (e.g., Gemini, GPT, LLaMA). Default provider. Supports streaming for progressive line-by-line display.
OpenAI
Direct OpenAI API. Supports GPT-4o-mini, GPT-4o, and GPT-4 Turbo. Uses streaming.
Mistral
Mistral AI API, added in v13.3.0. Models include
mistral-large-latest, mistral-medium-latest, mistral-small-latest, and mistral-tiny-latest. Non-streaming path.Google Gemini
Google Generative Language API. Supports Gemini Flash, Gemini 2.5 Flash, and preview models. Uses streaming.
Anthropic Claude
Anthropic API. Supports Claude Opus, Sonnet, and Haiku families. Uses streaming.
Perplexity
Perplexity AI API. Sonar model family. Uses streaming.
xAI (Grok)
xAI API. Grok models. Uses streaming.
DeepL
Neural machine translation — not a chat model. Only supports Literal translation mode. Requires a separate DeepL API key and optionally a formality setting (default, more formal, or less formal).
Custom
Point Metrolist at any OpenAI-compatible endpoint by entering a base URL and model name. Non-streaming.
Translation modes
For AI chat providers (all except DeepL), choose between two translation strategies in Settings → AI → Translation mode:Romanization
Romanization converts non-Latin scripts to their phonetic Latin equivalents so you can sing along without knowing the script. Supported scripts include:- Japanese — Hiragana/Katakana via Kuromoji tokenizer; Kanji read via furigana
- Chinese — Hanzi to Pinyin via the PinyinHelper library
- Korean — Hangul to Romaja using the Revised Romanization system
- Cyrillic — Covers Russian, Ukrainian, Serbian, Bulgarian, Belarusian, Kyrgyz, and Macedonian with language-aware rules
- Devanagari — Hindi/Sanskrit phonetic mapping
- Gurmukhi — Punjabi phonetic mapping
Customizing the AI prompt
You can override the system prompt Metrolist sends to the AI. In Settings → AI → System prompt, enter your own instructions. This was added in v13.4.0. If you leave the field blank or tap Reset, Metrolist reverts to its built-in default prompt optimized for line-by-line lyric translation.Reverting to original lyrics
To undo a translation, tap the untranslate button in the lyrics panel. This clears the translated text and restores the original lyrics. Untranslation support was introduced in v13.2.0.Caching and persistence
Translated lyrics are:- Cached in memory during the session to avoid repeated API calls for the same song.
- Persisted to the local database so translations survive app restarts.
Translations are stored per song, per language, and per mode. Changing any of these three values triggers a new API call.