SubFlow Logo

TXT to SRT Converter

Turn a plain-text transcript (one line per cue) into a working .srt subtitle file. Timing is estimated from character count at 15 cps — the broadcast standard — so the output is a usable starting point you can fine-tune in any SRT editor.

Last updated

The timing problem (and how we solve it)

A plain transcript has no timing information. To turn it into a valid .srt, every cue needs a start and end timestamp — and the converter has to invent them from nothing.

We use a characters-per-second reading speed heuristic. Each cue’s on-screen duration is set to length / 15 seconds (with a 1-second minimum), and consecutive cues are stacked with a 100ms gap between them. 15 cps is the same default Netflix, the BBC, and Aegisub use for accessibility captions — it’s the rate a competent reader can comfortably keep up with.

The resulting timing is a plausible approximation, not a match to any specific audio. If you’re building subtitles for a video that actually exists, plan to open the output in an SRT editor and adjust each cue to land on the real speech.

Side-by-side example

Input on the left, generated .srt on the right:

Source — transcript.txt
Hello and welcome.
My guest today is Alice Chen.
She runs a robotics lab.
Output — transcript.srt
1
00:00:00,000 --> 00:00:01,133
Hello and welcome.

2
00:00:01,233 --> 00:00:03,067
My guest today is Alice Chen.

3
00:00:03,167 --> 00:00:04,567
She runs a robotics lab.

Each non-blank line in the input becomes one SRT cue. The first cue starts at 00:00:00,000; the rest stack sequentially. Cue durations scale with text length (the second line is the longest, so it gets the longest on-screen time).

How to convert plain text to SRT

  1. Prepare your .txt file: one cue per line. Blank lines are ignored. If your text is a wall of prose, break it into lines first (use Find & Replace to swap . with .\n in your text editor as a starting point).
  2. Drop the file onto the drop zone above (or click to open the file picker).
  3. The converter generates a sequenced .srt with estimated timing and offers it as a download. Open it in your video editor or a dedicated SRT editor to verify and adjust the timing.

When TXT to SRT is the right tool

Use this converter when:

  • You have a transcript from a service that doesn’t output timed subtitle files (a manual transcriber, a court reporter, an LLM-generated transcript).
  • You need an .srt structure quickly and the audio either doesn’t exist yet or isn’t the source of truth.
  • You’re bootstrapping subtitles you’ll then refine in an SRT editor — the heuristic timing saves you from typing out 200+ timestamps by hand.

When this is not the right tool:

  • You have the audio and want accurate timing — use a transcription tool that listens (Whisper, Deepgram, or Subflow inside After Effects) instead. They produce timing that actually matches the audio.
  • You need broadcast-grade timing (frame-snapped, aspect-ratio-aware) — heuristic timing won’t pass QC. Use a proper subtitle workflow for compliance work.

Frequently asked questions

Each cue's on-screen duration is estimated from its character count using a 15 characters-per-second reading speed — the broadcast standard that the BBC, Netflix, and most subtitle authoring tools use as a default. Cues get a minimum 1-second on-screen time even if they're very short, and a 100ms gap is inserted between consecutive cues.

Working in After Effects?

If your audio source still exists, Subflow generates accurate timing inside After Effects in 30 seconds — no heuristic, no manual cleanup. This converter is for the cases where you don't have the audio.

See Subflow