ListFan
Text · Free

Plain-text subtitle format converter

Convert plain-text SRT and WebVTT subtitles locally.

01Enter your values

Runs in your browser

Runs offline in your browser. Once the page and required files have loaded, processing needs no internet.

Parse every cue, preserve text and millisecond timing, then write the selected format. SRT cues are renumbered; WebVTT gets its required header.

Example
Subtitle text

How it works

Convert plain-text SRT and WebVTT subtitles locally.

SRT ↔ WebVTT · 1 ms

Runs in your browser

Discovery source

Your data stays yours

Inputs are processed on this page and are never sent to a server.

About this tool

Convert plain-text SRT and WebVTT subtitles locally.

Parse every cue, preserve text and millisecond timing, then write the selected format. SRT cues are renumbered; WebVTT gets its required header.

Use tool ↑

How to use it

  1. Enter your values

    Subtitle text · Output format

  2. Calculate / generate

    Convert plain-text SRT and WebVTT subtitles locally.

  3. Result

    WEBVTT 00:00:01.000 --> 00:00:03.000 12345 00:00:04.000 --> 00:00:06.000 67890

Calculation method

  1. Parse every cue, preserve text and millisecond timing, then write the selected format.
  2. SRT cues are renumbered; WebVTT gets its required header.
SRT ↔ WebVTT · 1 ms
Example scenario

Plain-text subtitle format converter

Subtitle text
1 00:00:01,000 --> 00:00:03,000 12345 2 00:00:04,000 --> 00:00:06,000 67890
Output format
vtt
Result
WEBVTT

00:00:01.000 --> 00:00:03.000
12345

00:00:04.000 --> 00:00:06.000
67890

Frequently asked questions

Scope and common mistakes

Paste plain-text SRT or WebVTT, up to 100,000 characters. Markup, entities, positioning, STYLE, REGION and NOTE blocks are rejected, not silently removed. Cue starts must be ordered; overlaps are allowed. This is not transcription or a media player. For no speed change use 100%, not 1%; positive offset delays subtitles. A linear transform cannot repair edits or irregular drift. Readability thresholds are your policy, not an accessibility certificate.

Where does my data go?

Calculations run on your device. Form inputs are not sent to a server.

Terms and definitions

Enter your values

Subtitle text

Parse every cue, preserve text and millisecond timing, then write the selected format.

Enter the source text; it is processed locally.

Output format

Parse every cue, preserve text and millisecond timing, then write the selected format.

Choose the mode that matches the data you entered.

Options: vtt · srt

Result

Result

Parse every cue, preserve text and millisecond timing, then write the selected format. SRT cues are renumbered; WebVTT gets its required header.

Calculated from your entries using the method below.

Cues

SRT cues are renumbered; WebVTT gets its required header.

Calculated from your entries using the method below.

Common mistakes and quick fixes

Scope and common mistakes

Mistake: Treating a result as valid outside the described scope.

Fix: Paste plain-text SRT or WebVTT, up to 100,000 characters. Markup, entities, positioning, STYLE, REGION and NOTE blocks are rejected, not silently removed. Cue starts must be ordered; overlaps are allowed. This is not transcription or a media player. For no speed change use 100%, not 1%; positive offset delays subtitles. A linear transform cannot repair edits or irregular drift. Readability thresholds are your policy, not an accessibility certificate.

Limits and key assumptions

  • Paste plain-text SRT or WebVTT, up to 100,000 characters. Markup, entities, positioning, STYLE, REGION and NOTE blocks are rejected, not silently removed. Cue starts must be ordered; overlaps are allowed. This is not transcription or a media player. For no speed change use 100%, not 1%; positive offset delays subtitles. A linear transform cannot repair edits or irregular drift. Readability thresholds are your policy, not an accessibility certificate.