Skip to the content.

🎡 Adding Lyrics to Self-hosted Music

This guide explains how self-hosted music servers search for lyrics and how you can easily add them to your music files.


βœ… Quick Overview

self-hosted music servers support:

By default, self-hosted music servers search in this order:

.lrc β†’ .txt β†’ embedded

This is controlled by the environment variable:

ND_LYRICSPRIORITY

Default value:

.lrc,.txt,embedded


1️⃣ External Synced Lyrics (.lrc)

This is the best option if you want synchronized (karaoke-style) lyrics.

πŸ“Œ Step 1 β€” Match the filename exactly

The lyric file must:

Example:

01 - My Song.mp3 01 - My Song.lrc

⚠️ On Linux systems, filenames are case-sensitive.


πŸ“Œ Step 2 β€” Use correct LRC format

Example:

[00:12.00] First line of lyrics [00:34.50] Second line of lyrics

Format:

[mm:ss.xx] Lyrics line

self-hosted music servers will automatically sync the lyrics during playback.


2️⃣ Embedded Lyrics (Unsynchronized)

Use this if you only want static lyrics (no timing).

Lyrics are stored inside the audio file metadata:


πŸ›  Tools to Add Embedded Lyrics

Mp3tag (Windows)

Kid3 (Windows / Linux / macOS)

CLI Tools (for advanced users)

Useful for bulk scripting.


3️⃣ Configure Lyrics Priority

You can change the search order using:

ND_LYRICSPRIORITY

Example values:

.lrc,.txt,embedded embedded,.lrc


Restart-Service

4️⃣ Force a Library Rescan

After adding lyrics:

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