Subtitle Generator

Turn a script into a timed SRT or VTT file that people can actually read at the pace of speech.

Runs in your browser

Input

Line breaks are respected as cue boundaries. Long lines are split further to fit the width limit.

Options

Width is measured in display units, where a full-width character such as a Chinese glyph counts as two. 42 units is about 42 Latin characters or 21 Chinese characters.

Recognises lines starting with 00:00:05 or with a range like 00:00:05 → 00:00:08, and uses those times.

Good to know

  • This tool lays out text you provide; it does not listen to audio. Transcribe first if you only have a recording.
  • Timings are an estimate based on reading speed, not measured against the audio. Check them against your video.
  • Width is measured per display unit, so mixed Chinese and English lines come out visually consistent.
  • Review the flagged cues before publishing. Automated splitting cannot know where a speaker pauses for effect.
Everything runs in your browser. Your files are never uploaded.

About this tool

Paste a transcript and get a timed subtitle file. This is not a speech recogniser — it lays out text you already have, which is why it can be trusted to get the reading pace right: durations come from how long each line takes to read at a speed you choose, not from an arbitrary fixed interval. Two details are handled deliberately. Line width is measured in display width, so a full-width Chinese character counts as two, which means "42" behaves the same on English and Chinese subtitles instead of letting Chinese lines run twice as wide. And the splitting looks at what actually ends a sentence, so a decimal point or an abbreviation does not cut a line in half.

How to use it

  1. 1Paste your transcript. One line per subtitle is a good starting point, but you can also paste whole paragraphs — they are split into readable cues for you.
  2. 2Set the reading speed and the maximum line width. Around 17 characters per second and 42 units wide are comfortable defaults for adult viewers.
  3. 3Check the flagged lines. Anything marked as too fast is worth shortening or splitting, since that is where viewers lose the thread. Then download SRT or VTT.

Frequently asked questions

Does it transcribe audio?

No. It takes text and produces timings. Transcription is a separate tool because the two fail in completely different ways: a recogniser gets words wrong, a layout tool gets timings wrong, and if you combine them you cannot tell which one to fix. If you have an audio file, run it through a transcription tool first, then paste the result here to get proper subtitle timings.

Why does the reading speed matter more than a fixed duration?

Because a fixed duration per cue ignores how much text is in it. Give every cue three seconds and a long line flashes past while a short one lingers, which is exactly what makes amateur subtitles tiring. Here each cue lasts as long as its own text needs at your chosen speed, with a floor so nothing is too brief to register and a ceiling so nothing sits on screen long enough that viewers think playback has frozen.

I already have a file with timestamps. Can it keep them?

Yes — leave the timestamp option on and paste lines beginning either with a start time like 00:00:05 or with a full range like 00:00:05 → 00:00:08. Existing timings are kept, and the text is still split to the width limit if a line is too long. Note that the tool checks for a plausible timestamp pattern before treating a value as one, so a line beginning "12:30 meeting" stays as text rather than becoming a cue that starts at twelve minutes thirty.

Related tools

Browse all tools