Check out my personal blogsVisit maxrave.dev
SimpMusicSimpMusic Docs
For Developers

Lyrics pipeline

The lyrics providers, the community database, voting, and AI translation.

Lyrics come from several independent sources behind one client, SimpMusicLyricsClient, in the :lyricsService module.

Providers

ProviderConstantFetched via
SimpMusic LyricssimpmusicgetLyrics(videoId) — the project's own database
YouTube TranscriptyoutubeThe InnerTube scraper in :kotlinYtmusicScraper
LRCLIBlrclibsearchLrclibLyrics(...)
BetterLyricsbetter_lyricssearchBetterLyrics(...)

The active provider is stored as lyricsProvider and defaults to SimpMusic Lyrics. Spotify lyrics sit outside this list — they need a Spotify login and are toggled separately.

The client also reaches Apple Music artist endpoints (searchAMArtist, getAMArtist) for artist metadata, with its own token manager.

Sync formats

Depending on the source, a track resolves to word-by-word, line-synced, or unsynced lyrics. LrcTextParser handles LRC timing.

Community database

The client is not read-only. It can write back:

  • insertLyrics / insertTranslatedLyrics — contribute what you have
  • voteLyrics / voteTranslatedLyrics — upvote or downvote an entry

Contributions are opt-in behind Help SimpMusic lyrics build the lyrics database (off by default), with an optional contributor name and email.

AI translation

Translation is separate from fetching. The app calls the user's own provider through :aiService:

SettingValues
aiProvidergemini (default), openai, custom_openai
aiApiKeyUser's key — required
customModelIdOptional model override
customOpenAIBaseUrl / customOpenAIHeadersCustom endpoints only

useAITranslation cannot be switched on without a key, and turns itself back off if the key is removed — so the feature can never be enabled in a state where it would fail on every call.

Translated lyrics can also be fetched from the shared database (getTranslatedLyrics) rather than generated, which avoids spending API quota on a translation someone already contributed.

Community

Get involved in our community. Everyone is welcome!

SimpMusic is sponsored by:

Get free $200 credit over 60 days on DigitalOcean: GET NOW

Crowdin and Sentry both have a free enterprise plan for Open-source projects. Follow the URLs:

Check out the Vercel open-source program

SimpMusic app is FOSS and under GPL-3.0 license.

© 2023-2026 SimpMusic - @maxrave-dev

We are not affiliated with or endorsed by Google, YouTube, Spotify, or any other third-party brands or applications.