This guide explains how Selfhost Music searches for lyrics and how you can easily add them to your music files.
Selfhost Music supports:
.lrc or .txt)By default, Selfhost Music searches in this order:
.lrc β .txt β embedded
This is controlled by the environment variable:
ND_LYRICSPRIORITY
Default value:
.lrc,.txt,embedded
This is the best option if you want synchronized (karaoke-style) lyrics.
The lyric file must:
Example:
01 - My Song.mp3 01 - My Song.lrc
β οΈ On Linux systems, filenames are case-sensitive.
Example:
[00:12.00] First line of lyrics [00:34.50] Second line of lyrics
Format:
[mm:ss.xx] Lyrics line
Selfhost Music will automatically sync the lyrics during playback.
Use this if you only want static lyrics (no timing).
Lyrics are stored inside the audio file metadata:
USLT tagLYRICS or UNSYNCEDLYRICS fieldLYRICS fieldeyeD3mid3v2vorbiscommentUseful for bulk scripting.
You can change the search order using:
ND_LYRICSPRIORITY
Example values:
.lrc,.txt,embedded embedded,.lrc
services:
navidrome:
image: deluan/navidrome:latest
environment:
- ND_LYRICSPRIORITY=.lrc,.txt,embedded
πͺ Windows PowerShell (temporary)
$env:ND_LYRICSPRIORITY = ".lrc,.txt,embedded"
Restart-Service navidrome
4οΈβ£ Force a Library Rescan
After adding lyrics:
Restart Selfhost Music
Use the Scan option in the Admin panel
Modify the file date to trigger re-indexing
5οΈβ£ Minimal LRC Example
[00:00.00] Intro
[00:15.20] Verse 1 line 1
[00:22.50] Verse 1 line 2
π§ Troubleshooting
βοΈ Filenames must match exactly
βοΈ Check ND_LYRICSPRIORITY
βοΈ If embedded lyrics donβt show, confirm correct tag field
βοΈ Enable debug logs with:
ND_LOGLEVEL=debug
π Useful Link
Selfhost Music Configuration Options:
https://www.navidrome.org/docs/usage/configuration/options/