What this does
Sometimes there is no subtitle file to convert — only a transcript. A meeting recording, a YouTube transcript panel, a translated script, a set of narration lines. This tool turns that text into a structurally valid .srt so it can be loaded into an editor, handed to a client or played back immediately. The timing it produces is evenly spaced, which means it is a scaffold to align rather than a finished sync.
How to use it
- Paste the transcript into the box — one caption per line. Blank lines are ignored, so pasted documents do not produce empty cues.
- Set how many seconds each cue should last, an optional start offset, and a maximum line length if you want long lines wrapped automatically.
- Copy the result or download it as a
.srt, then align it to the audio in your editor.
Good to know
- One line becomes one cue. Blank lines and lines that are only whitespace are skipped entirely.
- Cue duration applies to every cue equally. There is no per-line override — if you need variable durations, generate the file and adjust the cues you care about in an editor.
- Maximum line length defaults to 42 characters, the long-standing subtitling convention — longer lines are split on word boundaries into as many lines as needed, and each piece becomes its own cue. Set it to
0to disable wrapping and keep one source line per cue. - The start offset shifts the whole file later, which is useful when a recording opens with silence or a title card. It does not add an initial gap of its own.
- No transcription happens here. This tool formats text you already have; it does not listen to audio.
Evenly spaced timing is a scaffold, not a sync
Be clear about what this does. The tool cannot know when each line is spoken, because a plain transcript contains no timing information. So it assigns every cue the same duration, back to back. If your cue duration is 2.5 seconds and you have 200 lines, the file runs to roughly eight minutes and twenty seconds — regardless of how long the recording actually is.
What that is genuinely useful for. A scaffold gets you past the part of the job that is pure typing. Import the generated file into Subtitle Edit, Aegisub, Premiere or DaVinci Resolve and you have numbered cues with real timestamps to drag against the waveform. Retiming a cue that already exists is far faster than authoring one from an empty track, and it guarantees the numbering and structure are valid from the start.
Fixing the timing afterwards. If the whole file is uniformly too early or too late, the shift tool adds or subtracts a fixed offset in one step. If the text was transcribed at the wrong speed — a common outcome when a transcript is generated from a clip played back at the wrong rate — the resync tool scales every timestamp by a ratio instead.
Where the defaults come from. 2.5 seconds per cue is roughly 150 words per minute, which sits comfortably inside the reading speeds broadcasters work to. A maximum line length of 42 characters is the long-standing convention for subtitling and captions, chosen because it keeps a line inside the safe area of a 16:9 frame at typical font sizes. Wrapping is done on word boundaries, never mid-word.
If you already have a subtitle file, use a different tool. Text that already contains timestamps is not plain text, and running it through here would turn every timestamp line into its own cue. Use VTT to SRT or SBV to SRT instead.
Worked example
Input — plain text
Welcome back to the channel. Today we are converting captions. Let's start with the timing.
Output — .srt
1 00:00:00,000 --> 00:00:02,500 Welcome back to the channel. 2 00:00:02,500 --> 00:00:05,000 Today we are converting captions. 3 00:00:05,000 --> 00:00:07,500 Let's start with the timing.
Three lines became three cues at the default 2.5 seconds each. The timestamps are placeholders — the next step is aligning them to the audio.
FAQ
Will the timing line up with my audio?
Where do I get a transcript to start from?
How do I keep a long sentence in one cue?
Does my text get uploaded anywhere?
Can I go the other way — strip a subtitle file down to plain text?
Troubleshooting
- Every cue is exactly the same lengthThat is the design. A transcript has no timing data, so the duration you set is applied to every cue. Retime them in your editor, or use the shift and resync tools if the error is uniform.
- Lines were split in the middle of a sentenceThe maximum line length is doing it. Wrapping only happens when a line exceeds that value, so raise it or set it to 0 to keep each source line as a single cue.
- The first cue starts at 00:00:00 when I wanted a delaySet the start offset to the number of seconds of silence at the top of the recording. That value is added to every cue, so the gap stays consistent.
- Some lines are missing from the outputBlank lines are treated as separators and skipped, and so is any line that is only spaces. If a line you expected is gone, it was empty in the source.
- The output looks like a normal subtitle file but nothing lines upExpected for the reason above. This tool produces valid structure with placeholder timing. Use the shift tool for a constant offset, or resync if the whole track is compressed or stretched.
Related tools
Remove Timestamps from Subtitles
Strip timestamps and cue numbers to get a clean, readable transcript.
SRT to VTT Converter
Convert .srt subtitle files to WebVTT (.vtt) for HTML5 video, right in your browser.
Shift Subtitle Timing
Move every subtitle cue earlier or later to fix out-of-sync captions.