← All tools / Lyrics timestamp
Lyrics timestamp editor
Play your track, tap each line as it arrives, then fix the stragglers with ±0.1s nudges. Export LRC for players, SRT for editors, VTT for the web. Everything happens in this tab — no upload, no account.
Load audio
File: — · Nothing loaded
Time your lyrics
Blank lines are ignored. A line that is only a bracketed tag — [Chorus] — becomes a section marker and is not timed. Lines that already start with [00:12.40] keep that stamp.
Preview & export
Stamp at least one line to see output.
Cue end times are the next line's start, capped at 8 seconds and at the track length. LRC is line-level: one stamp per line, the format karaoke players expect.
Write the lyrics into the MP3 itself
Load an MP3 above and this tool can stamp the words straight into the file's ID3v2.3 tag: USLT for the plain lyric sheet every player shows, plus an optional SYLT frame carrying one millisecond timestamp per line. Existing tags are read first and kept; only the lyric frames are replaced. Everything happens in this tab.
Load an MP3 from your device to enable tagging.
How the three formats differ
| Format | Best for | What it stores |
|---|---|---|
.lrc | Music players, karaoke apps, phone lockscreens | One [mm:ss.xx] start per line. No end times — the next line ends the previous one. |
.srt | Video editors, Premiere, DaVinci, YouTube uploads | Numbered cues with 00:00:00,000 start and end times. |
.vtt | HTML5 <track> captions on the web | Same cues as SRT with a WEBVTT header and . instead of , for milliseconds. |
Working faster
- Tap loosely first, fix later. Get every line roughly in place in one pass, then use the global offset — most first passes are late by a consistent 0.2–0.4s because of reaction time. That is why the offset box defaults to
-0.3. - Slow the track down. At 0.75× dense verses stop outrunning you, and the stamps stay valid at full speed because they are stored as real seconds.
- Use the red warning. If a stamp lands earlier than the line above it, the editor says so — that almost always means a double tap.
- Re-import to continue. Paste an existing LRC or SRT into the lyrics box and press Import to pick up where a previous session stopped.
Common questions
Is my audio uploaded anywhere?
No. A local file is read straight from disk by the browser. Only the "public URL" option touches the network, and that request goes through this site's proxy purely so the browser is allowed to decode a cross-origin file.
Why are the download buttons greyed out?
At least one line needs a timestamp. Load lyrics, press Start timing, play the track and tap a line.
Is my work saved if I close the tab?
The lyrics and every stamp are kept in this browser's local storage and restored automatically. The audio file itself cannot be stored, so you re-select it on return. Clear draft wipes the saved copy.
Can I edit the words after timing them?
Yes, but re-running Start timing rebuilds the row list from scratch and drops the stamps. To keep them, export an LRC first, edit the words in that file, then import it back.
Why does my exported subtitle sit on screen so long?
A cue runs until the next one begins. After a long instrumental gap that would be many seconds, so cues are capped at 8 seconds — add a short filler line if you want a gap timed precisely.
What exactly goes into the MP3 when I embed the lyrics?
A fresh ID3v2.3 tag written by this page. It always contains a USLT frame — the plain, unsynchronised lyric sheet that phones, car stereos and desktop players display — and, when the box is ticked, a SYLT frame holding every line with a millisecond timestamp. SYLT is a real part of the ID3 standard but far fewer players read it, so treat it as a bonus rather than a guarantee. Any other frames already in the file (title, artist, artwork) are read first and written back out; only the lyric frames are replaced, and the audio bytes are copied across untouched. Press Read lyrics out of the loaded MP3 to see exactly what a reader gets back.