Convert LRC to SRT
Turn an LRC lyrics file into SRT subtitles with real start and end times. Handles offsets, repeated timestamps and enhanced word tags. No upload.
An LRC file marks when each lyric starts and says nothing about when it ends, because a music player only ever highlights the current line. A subtitle player needs both ends of every cue, so converting means deciding where each line stops. The rule here is the same one LRC players follow on screen: a line runs until the next one begins, and an explicit bare timestamp — the marker that clears the display — ends it early.
Worth knowing
- Each lyric ends where the next one starts, so the timing you see in a music player is exactly the timing you get as subtitles.
- Repeated timestamps on a single line ([00:12.00][01:20.00]Chorus) are expanded into separate cues, which is how a chorus written once ends up appearing every time it is sung.
- The [offset:] tag is applied the way players apply it: a positive offset shifts the lyrics earlier, not later, because it is a correction to the player rather than to the file.
- Metadata tags such as [ti:], [ar:] and [al:] describe the song rather than any moment in it, so they are dropped rather than turned into a first subtitle.
- Enhanced LRC word timings written inline as <00:12.34> are removed from the text — the words stay, the per-word stamps have no SRT equivalent.
FAQ
Why is the last line exactly four seconds long?
Nothing in the file says when it ends: there is no following timestamp to bound it and no duration field in the format. Four seconds is the conventional hold, and you can change it afterwards in the cue editor if the line needs longer.
The lyrics are all a little early or late. How do I fix that?
Convert first, then shift the resulting SRT by the constant offset — or set the offset visually against your own video, which is faster than working out the number. If they drift progressively instead, that is a framerate problem, not an offset one.