
What Is an LRC File? The .lrc Format Explained
Quick Answer
An LRC file is a plain text file that pairs song lyrics with timestamps so a music player can show each line at the moment it is sung.
The .lrc file extension is short for "lyrics". Every lyric line starts with a time tag like [00:12.50]. Put the file next to the audio with the same name. A player that supports the format picks it up and scrolls the words along with the song. And you can open or edit one in any text editor.
What Is an LRC File and Where Did It Come From
The LRC format goes back to 1998. It started as a Winamp plugin called Lyrics Displayer and then spread to MP3 players and phones, and later media servers. It stuck around because it's so simple. There's no binary data and no schema. Just text.
A .lrc file has two kinds of lines:
- ID tags at the top, in square brackets.
[ti:]for title,[ar:]for artist,[al:]for album,[by:]for whoever made the file,[offset:]for a global timing shift in milliseconds. - Time tags on each lyric line, in
[mm:ss.xx]form. Minutes, seconds and hundredths of a second.
So an LRC file is basically a list of lines, each one stamped with when it should show up.
People sometimes search for an "lcr file" too. That's just a typo for .lrc.
Ready to try it with your own file?
Upload audio, review the timing, and export the format you need.
A Real .lrc File
Here's a complete LRC file with nothing cut out.
[ti:Quiet Hours]
[ar:The Lantern Club]
[al:Low Tide]
[by:EasyLRC]
[offset:0]
[00:14.20]I left the porch light on for you
[00:18.05]In case you changed your mind
[00:21.90]The kettle's cold, the kitchen's blue
[00:25.60]And I'm still here, still waiting on a sign
[00:33.10]
[00:36.40]Quiet hours, quiet hours
[00:40.15]Nobody calls this late
The blank line at [00:33.10] clears the display during an instrumental gap. Timestamps use minutes and seconds with two decimal places. The header tags are optional, which means a file with only timestamped lines works fine.
Line LRC vs Enhanced LRC
Standard LRC times each line. Enhanced LRC adds a second timestamp for each word using angle brackets. The A2 Media Player introduced it, so you'll also see it called A2 LRC or word-level LRC.
| Standard LRC | Enhanced LRC | |
|---|---|---|
| Timing | One tag per line | One tag per line plus one per word |
| Tag syntax | [00:14.20] | [00:14.20]<00:14.20>I <00:14.55>left <00:14.90>the |
| Highlight style | Current line scrolls | Each word lights up, karaoke style |
| Player support | Nearly everything | Fewer players. Some skip the word tags and some show them as raw text |
| File size | Tiny | Still tiny, about 3x the characters |
Here are the same two lines from the example above in Enhanced LRC:
[00:14.20]<00:14.20>I <00:14.55>left <00:14.90>the <00:15.30>porch <00:15.80>light <00:16.40>on <00:16.90>for <00:17.30>you
[00:18.05]<00:18.05>In <00:18.40>case <00:18.85>you <00:19.30>changed <00:19.95>your <00:20.50>mind
Want the word-by-word effect? Check your player first. Standard LRC is the safer default. The Enhanced LRC word-level timing guide goes deeper.
How Players Find the File
Most players treat the .lrc as a sidecar file. It sits in the same folder as the audio and has the exact same filename. Only the extension is different.
Music/The Lantern Club/Low Tide/
03 - Quiet Hours.flac
03 - Quiet Hours.lrc
The player loads the track and looks for a file with the same name and .lrc on the end. If it finds one it reads the lyrics from it. You don't change any settings or import anything. But if you rename the audio file the lyrics stop showing until you rename the .lrc to match.
Some players also read lyrics embedded in the audio tags (USLT or SYLT frames in MP3, the LYRICS tag in FLAC). Embedded lyrics travel with the file. Sidecars are easier to edit and swap out.
Which Players Support .lrc Files
This is what I could confirm from official docs and release notes. If a player isn't listed it may still work.
| Player | Platform | Notes |
|---|---|---|
| Jellyfin | Server | External and embedded lyrics since 10.9.0. Clients need updating to show them |
| Navidrome | Server | Sidecar .lrc, .elrc, .ttml, .srt, .txt and embedded tags, ordered by LyricsPriority (the .ttml, .elrc and .srt sidecars need 0.63 or newer). The web UI shows line-synced lyrics. Word-level needs a client app |
| Plex / Plexamp | Server, apps | .lrc and .txt sidecars with a matching name. Simple LRC only, no word-level |
| Poweramp | Android | External .lrc and embedded synced lyrics. Rescan after adding files |
| Symfonium | Android | Synced lyrics from local files and from Jellyfin, Navidrome and other servers |
| MusicBee | Windows | Synced lyrics with the active line colored |
| foobar2000 | Windows | Through the OpenLyrics component. Honors offset and can fetch from LRCLIB |
| Samsung Music | Android | A matching .lrc turns on a "Synced lyrics" option. One late 2024 community report says an update stopped it reading .lrc files |
| VLC | All | No native .lrc support. Forum feature requests are still open |
Older hardware like Sony Walkman and Rockbox devices read .lrc as well. So do a lot of stock Android players.
How to Open and Edit an LRC File
Any text editor works. Notepad, TextEdit, VS Code, nano. You don't need special software.
- Right click the .lrc file, choose Open With and pick a text editor. On Mac, TextEdit may open it in rich text mode, so switch to plain text (Format > Make Plain Text) before you save.
- Edit the words or the timestamps. Keep the
[mm:ss.xx]shape intact. A missing bracket or a letter O where a zero should be makes a player skip that line. - Save as plain text with UTF-8 encoding and keep the
.lrcextension. Windows Notepad sometimes adds.txton the end. Check the filename after saving.
If you're retiming instead of typing, a dedicated LRC editor with a play button is faster. For a quick fix a text editor does the job.
How to Get an LRC File for a Song
There are two routes. Download one that already exists or make one from the audio.
Download an existing file
- Search LRCLIB, a free and open lyrics database with an API. Copy the synced lyrics into a text file and save it with the song's filename and the
.lrcextension. - For a whole library, run LRCGET. It scans a folder and pulls matching lyrics for each track from LRCLIB. Since version 2.0 it keeps them in its own database, so use its export to write the .lrc files beside the audio with the right names. It's free and open source and runs on Windows, Mac and Linux.
That's great for released music. It won't help with your own recordings or covers or demos, or podcasts, or anything else that isn't in the database.
Generate one from the audio
- Upload the track at easylrc.com/upload. The free plan covers 5 minutes of audio a month with no card and no watermark. You sign in with Google.
- Wait for transcription. 99+ languages are supported.
- Check the lines and export as LRC. Enhanced LRC with word timing is on the paid plans from $5 a month. SRT, WebVTT, TTML and ASS exports are there too.
If you'd like to see the output before uploading anything, there's a demo.
Common Problems With .lrc Files
Lyrics show as garbage characters or question marks. The file isn't UTF-8. Non-English lyrics get hit hardest. Open the file in a text editor, use Save As and pick UTF-8 (without BOM if you see that option). Plex specifically asks for UTF-8 sidecars.
Every line is early or late by the same amount. Add or change the [offset:] tag in the header. The value is in milliseconds. [offset:500] shifts lyrics earlier by half a second and [offset:-500] shifts them later. Not every player honors the tag though. If it does nothing you'll have to shift the timestamps themselves.
Lyrics start fine then slowly fall behind. That's drift, which is a different problem from offset. Usually the .lrc was made for another version of the track, like a remaster or a radio edit or a rip at a slightly different speed. One offset won't fix it. Find a file made for your exact version or regenerate the timing from your audio. The drift fix guide walks through it.
Nothing shows at all. Make sure the filename matches the audio exactly, including case. Make sure the extension is .lrc and not .lrc.txt. Rescan the library. Also look for embedded lyrics in the tags, since some players prefer those over the sidecar.
Word timestamps appear as text. Your player doesn't read Enhanced LRC. Convert it to standard LRC.
Frequently Asked Questions
What is an LRC file used for
An LRC file stores song lyrics with timestamps so a music player can show each line in sync with the audio. It sits next to the song file with the same name and a .lrc extension.
How do I open a .lrc file
With any text editor. Notepad on Windows, TextEdit on Mac (switch it to plain text mode), VS Code or nano. It's plain text so there's nothing to install.
Is an LRC file the same as a subtitle file
Close, but no. SRT and WebVTT subtitles give each cue a start and an end time and they're made for video. LRC only has a start time per line and it's made for music players. A free online converter will switch between them.
What is the difference between LRC and Enhanced LRC
Standard LRC has one timestamp per line. Enhanced LRC puts a timestamp in angle brackets before every word, so players that support it can highlight word by word. Players that don't may show the word tags as plain text.
Why are my LRC lyrics out of sync
If every line is off by the same amount, add an [offset:] tag in milliseconds at the top of the file. If the lyrics start in sync and slowly fall behind then the file was made for a different version of the track. You need a file timed to your audio.
Does Apple Music use LRC files
No. Apple Music gets timed lyrics from labels and distributors as TTML. LRC is for files you own and play locally or through a media server like Jellyfin, Navidrome or Plex. The LRC vs TTML guide covers the differences.
Ready to Create Your Own Enhanced LRC Files?
Try EasyLRC free—5 minutes of AI-powered word-level synchronization included.