How to Make an SRT Lyrics File for Your Song (Step by Step)

Published:

Every lyric video starts with timing: the video needs to know exactly when each line is sung. The most widely supported way to store that information is an SRT file. This tutorial explains the format and shows three ways to make one for your song.

What an SRT file looks like

SRT (SubRip Text) is a plain-text subtitle format. A file is a list of numbered blocks, each with a time range and the text to show:

1
00:00:12,400 --> 00:00:15,900
Under the summer sky we ran

2
00:00:16,050 --> 00:00:19,800
Chasing the light until the end

Each block has four parts:

  1. A sequence number starting at 1.
  2. Start and end time in the form hours:minutes:seconds,milliseconds, separated by -->. Note the comma before the milliseconds.
  3. One or more lines of text.
  4. An empty line that ends the block.

Save the file with UTF-8 encoding so that accented letters, Japanese, Chinese or Korean characters display correctly.

Decide how to split the lyrics

Before timing anything, decide what one "phrase" on screen should be. In a lyric video, a phrase is not always a full line from the lyric sheet:

Method 1: Time it by hand in a text editor

For a short song this is surprisingly fast and gives the most precise result.

  1. Paste the lyrics into a text editor with one phrase per line.
  2. Play the song in a player that shows time with decimals (most audio editors and many media players do). Write down the time when each phrase starts.
  3. Use the start of the next phrase as the end of the current one, or end it a little earlier if there is an instrumental gap.
  4. Add numbers and convert everything to the SRT layout shown above.

Tip: humans react late. If a line appears slightly after the vocal, move every start time about 0.1–0.2 seconds earlier. Text that appears just before the voice feels "on time".

Method 2: Use a subtitle editor

Free subtitle editors such as Subtitle Edit or Aegisub show the waveform of your audio, so you can see where each phrase begins. Typical workflow:

  1. Open the audio file and import your lyrics as plain text (one phrase per line).
  2. Play the song and press the "set start" / "set end" key on each phrase as it is sung.
  3. Zoom into the waveform to snap starts to the attack of each word.
  4. Export as SubRip (.srt) with UTF-8 encoding.

Method 3: Generate it automatically

Speech recognition models like Whisper can transcribe singing and produce timestamps. In LyricsFlow MVMaker you can do this with the Groq or OpenAI API, or completely in the browser without any key. The output is a good first draft, but sung lyrics are harder to recognise than speech, so expect to correct words and some timings. We cover this in detail in Auto-generate lyric subtitles with Whisper.

Common mistakes and how to fix them

ProblemCauseFix
File won't loadMissing blank line between blocks, or a period instead of a comma in the timeCheck every block follows the exact format
Garbled charactersFile saved as Shift_JIS, Big5 or ANSIRe-save as UTF-8
Everything is a few seconds offSRT made for a different version of the track (intro length differs)Re-time against the exact audio file you will use
Lines flash too quicklyPhrase shorter than ~0.7 sMerge it with the next phrase or extend its end time

Using your SRT in LyricsFlow MVMaker

Load your audio with 🎵 Load Audio, then the SRT with 📄 Load SRT/LRC. Every block becomes a phrase on the timeline, which you can fine-tune in the Phrase Inspector. If you already have an LRC file from a karaoke app, that works too — see SRT vs LRC.

Ready to make your own lyric video? It runs entirely in your browser — free, no sign-up.

⚡ Open the Editor