
Jellyfin Synced Lyrics: How to Add LRC Files That Scroll
Quick Answer
Jellyfin synced lyrics come from a .lrc file saved next to the song with the same file name, or from lyrics embedded in the audio tags. You need Jellyfin 10.9 or newer.
Drop Song.lrc beside Song.mp3 and scan the library. A lyrics button shows up in the player. If lyrics show but don't scroll, the file has no timestamps. And if nothing shows at all it's almost always the file name or a scan you haven't run.
Jellyfin Lyrics Support by Version
Lyrics arrived in Jellyfin 10.9. Before that the server ignored .lrc files completely. Here's what each release added, going by the official release posts.
| Version | What it added |
|---|---|
| 10.9 | Scans local lyrics, embedded or in external files. The web client gets a lyrics button. |
| 10.10 | Lyric provider plugins. You choose per library which plugins can supply lyrics. The web client gets auto scrolling lyrics and a lyrics editor. |
| 10.11 | The lyrics API gained cues for individual words. Finamp uses this for word by word highlighting. |
The official docs list three sidecar formats: .lrc, .elrc and .txt. A .txt file gives you static lyrics that don't scroll, so for synced display you want .lrc. Metadata tags inside the file like [ar:] and [ti:] are allowed. Clients just don't display them.
Embedded lyrics are messier. Jellyfin reads tags with TagLib and forum reports say it picks up USLT and SYLT frames in MP3. Custom tags like lyrics-eng weren't read. Given the choice I'd go with a sidecar file.
Ready to try it with your own file?
Upload audio, review the timing, and export the format you need.
Which Clients Show Synced Lyrics
The server stores the lyrics. How they get drawn is up to the client.
| Client | Synced lyrics |
|---|---|
| Jellyfin web | Yes. A lyrics button (a speech bubble with a music note) appears in the playback bar once a track with lyrics starts. It stays hidden when a track has none. Auto scrolling since 10.10. |
| Jellyfin Media Player (desktop) | Users on the Jellyfin forum report lyrics working here since 10.9. |
| Finamp (Android, iOS) | Yes. Its lyrics support was built for the 10.9 API. Word level highlighting arrived in the 0.9.19 beta and needs server 10.11. |
| Symfonium (Android) | Yes. Version 10.1.5 (from Beta 1) fixed lyrics for the 10.9 endpoint. |
| Jellyfin Android TV | Lyrics arrived in 0.18 and need server 10.10 or newer. |
| Feishin (desktop) | Lists synchronized and unsynchronized lyrics as a feature. |
Client not in the table? Play the song in the web client first. If lyrics show there then the app is what's broken.
How to Add Jellyfin Synced Lyrics With .lrc Files
- Get an
.lrcfile for the song. Download one from LRCLIB or make one (more on that below). - Name it exactly like the audio file.
01 Blue Train.flacgets01 Blue Train.lrcand only the extension changes. Jellyfin does tolerate an extra dotted suffix like01 Blue Train.en.lrc, but keep it simple. - Put it in the same folder as the audio file. Jellyfin doesn't check a
Lyricssubfolder. - Scan the library. Open the album in the web client, pick Refresh metadata and run Scan for new and updated files. Or run a full library scan from the Dashboard.
- Play the song and click the lyrics button at the bottom right of the playback bar.
Early 10.9 builds had a bug where embedded lyrics needed two metadata refreshes before they showed. 10.9.7 fixed that. Lyrics not updating after you edit a file is still an open issue (#12148), so if a change doesn't show, run the metadata refresh again.
The LrcLib Plugin for Lyrics You Do Not Have
Jellyfin 10.10 added lyric providers. There's one official plugin, LrcLib. It pulls from lrclib.net, a free community database of synced lyrics.
- Update to 10.10 or newer. The plugin targets 10.10 and won't appear in the catalog on 10.9.
- Go to Dashboard > Plugins > Catalog and install LrcLib. Restart the server.
- The plugin's own page only has search options (strict search, prefer synced lyrics, exclude artist or album). The Save lyrics into media folders checkbox lives in the library's settings instead, under Dashboard > Libraries > your music library > Manage Library. By default the downloaded
.lrcfiles go into the Jellyfin data folder under metadata instead of next to your music. Turn it on if you want the files where other players can read them. - Run the scheduled task Download missing lyrics.
- Run a library scan so the new lyrics attach to the tracks.
Both tasks also run on their own schedule, so running them by hand just gets you lyrics sooner. How many songs you get depends on what LRCLIB has.
What a Working .lrc Looks Like
Each lyric line starts with a timestamp in [mm:ss.xx] form. Save the file as UTF-8.
[ar:Sharon Jones]
[ti:100 Days, 100 Nights]
[00:12.40]100 days, 100 nights
[00:16.10]To know a man's heart
[00:20.75]And a little more
You can skip the header lines. Jellyfin reads them but doesn't show them. It's the timestamps that make lines clickable and scrolling.
.elrc is the enhanced version with a timestamp on every word. Jellyfin accepts it as a sidecar. Since 10.11 it also passes the word cues through to clients that can use them, Finamp being one.
The LRC format guide has the full breakdown of the format.
Jellyfin Lyrics Not Showing
No lyrics button at all. Compare the file name to the audio file name character by character. Check the folder. Then scan again. The button only appears for tracks the server has flagged as having lyrics.
Button missing after upgrading to 10.9 or 10.10. Your browser is probably serving the old web client from cache. Hard reload or clear site data for your Jellyfin address.
Lyrics show but don't scroll. The file has no timestamps. It's either a .txt file or an .lrc someone saved as plain text. Open it in a text editor and look for [00: at the start of lines.
Embedded lyrics are ignored. Run Search for missing metadata on the album, because a plain scan for new files isn't enough for tags. An external .lrc in the folder also takes priority and the embedded text gets skipped. Raw Opus files have had tag reading problems too. Remuxing to .ogg fixed it for one user on the forum.
Works in the web client but not in an app. The app is behind. Check the table above and update the client.
Garbled characters. Re-save the .lrc as UTF-8.
LrcLib plugin isn't in the catalog. You're on 10.9 and it needs 10.10.
Plugin downloaded lyrics but the player shows nothing. Run a library scan. The download task writes the files and the scan is what attaches them.
Songs With No Lyrics Online
LRCLIB covers a lot. Not everything though.
For a whole library there's LRCGET, the desktop app from the LRCLIB maintainer. Point it at your music folder, let it fetch what it can, then use its export to write a matching .lrc beside each file (since 2.0 it doesn't write sidecars on its own). It runs on Windows, Linux or macOS. Scan Jellyfin afterwards and every song it matched is sorted.
Then there are the ones it couldn't match. Live recordings, bootlegs, a friend's band, your own tracks. There's no file to download for those so you have to make one from the audio. We built EasyLRC for exactly this. Upload the song, wait about 10 to 20 seconds and download an .lrc with line timestamps. It handles 99+ languages. The free plan gives you 5 minutes of audio a month with no card and no watermark. Paid plans from $5 a month add Enhanced LRC export with word timestamps, which you'd want for the 10.11 word cues in Finamp.
Rename the downloaded file to match the audio, drop it in the folder and scan. Timing early or late across the whole song is an offset problem and it's easy to fix. See fixing lyrics time drift.
Frequently Asked Questions
Which Jellyfin version supports synced lyrics
Jellyfin 10.9 added lyrics from .lrc sidecar files and embedded tags. 10.10 added lyric provider plugins and a lyrics editor, plus auto scrolling in the web client. 10.11 added word level cues to the lyrics API.
Does Jellyfin download lyrics automatically
Yes on 10.10 or newer, if the official LrcLib plugin is installed. The Download missing lyrics scheduled task fetches them from lrclib.net and a library scan attaches them. Without the plugin there's no built in downloader.
Why do my Jellyfin lyrics show but not scroll
The file has no timestamps. A .txt sidecar or an .lrc without [mm:ss.xx] prefixes shows up as static text. Replace it with a real synced .lrc and scan again.
Does Jellyfin read embedded lyrics in MP3 and FLAC
Yes. It needs a Search for missing metadata scan to pick them up though, and for MP3s forum reports say only the standard USLT and SYLT frames get read. If there's an external .lrc in the folder it wins and the embedded text is ignored.
Where does the LrcLib plugin save .lrc files
By default they go in the Jellyfin data folder under metadata. If you want the .lrc files next to the audio so other players can use them, turn on Save lyrics into media folders in the library's settings (Dashboard > Libraries > Manage Library), not the plugin page.
Can I edit lyric timing inside Jellyfin
Jellyfin 10.10 added a lyrics editor in the web client. For bigger fixes it's quicker to edit the .lrc in a text editor or regenerate it from the audio. Then scan the library again.
Ready to Create Your Own Enhanced LRC Files?
Try EasyLRC free—5 minutes of AI-powered word-level synchronization included.