Skip to content

VTT to STL Subtitle Converter

Turn timestamped WebVTT cues into text-based Spruce STL entries.

Drag & drop your VTT file here

or click to browse

Supports .vtt files up to 50 MB

Core Engine Architecture

Free Online VTT to STL Converter

This browser-based converter reads timestamped WebVTT cue blocks and writes a text-based Spruce STL file. Each cue becomes one start-time, end-time, and text entry. Timing is quantized to a 29.97 fps frame grid, cue line breaks become vertical bars, and VTT cue identifiers and settings are discarded.

Payload & Syntax Inspector

VTT to STL Code Syntax & Structure Inspection

Side-by-side code inspection illustrating header definitions, timestamp syntax, and cue payload formatting

Millisecond Sync
input.vtt
VTT SOURCE
WEBVTT
 
00:00:01.000 --> 00:00:04.000
Hello, world!
 
00:00:04.500 --> 00:00:08.000
This is a subtitle file.
 
00:00:08.500 --> 00:00:12.000
Converted locally!
output.stl
STL RESULT
// Spruce Subtitle File
// Format: Start Time, End Time, Subtitle Text
 
00:00:01:00 , 00:00:04:00 , Hello, world!
00:00:04:15 , 00:00:08:00 , This is a subtitle file.
00:00:08:15 , 00:00:12:00 , Converted locally!
Specification Sheet

VTT vs STL Technical Specifications

Standard Compliant
Input Format

VTT

VTT

VTT (WebVTT) is a text subtitle format for web video. A VTT file starts with a WEBVTT header and uses HH:MM:SS.mmm --> HH:MM:SS.mmm cue timing. It can also contain cue identifiers, cue settings, inline tags, NOTE blocks, and style metadata.

Output Format

STL

STL

The output is Spruce STL, a plain-text subtitle format with cue entries written as start time, end time, and text. It is not EBU Tech 3264 binary STL and does not contain EBU GSI or TTI structures.

Format Differences

VTT uses a WEBVTT header and cue blocks; Spruce STL uses plain-text cue entries.
VTT timing uses milliseconds; this STL output uses HH:MM:SS:FF frame values.
VTT supports cue settings and positioning; those settings are discarded.
VTT line breaks become vertical bars in the STL text field.
VTT inline tags remain literal text rather than becoming STL styling.
VTT comments and identifiers are not carried over.

Conversion Troubleshooting & Gotchas

Practical solutions for player compatibility, character encoding, and timing synchronization

4 Common Gotchas
GOTCHA #1

Subtitle timing drifts or appears out of sync on media players

Video files frequently differ in framerate (e.g., 23.976 fps vs 25 fps). If the timing drifts steadily, use our Subtitle Sync tool to adjust the global offset or framerate stretch.

GOTCHA #2

Characters appear as garbled symbols or question marks (Mojibake)

Legacy files saved in Windows-1252, Shift-JIS, or GBK may render incorrectly. Our exporter standardizes output to clean UTF-8. Use our Subtitle Encoding Converter if the source file is corrupted.

GOTCHA #3

Overlapping captions when multiple speakers talk simultaneously

Different formats handle overlapping dialogue differently. If your target player cannot render stacked cues cleanly, open the file in our Subtitle Editor to adjust individual cue timings.

GOTCHA #4

Video editing software (Premiere, DaVinci, Final Cut) rejects the file

Professional NLE software enforces strict syntax rules. Our converter eliminates malformed line breaks and non-standard tags, producing clean, standardized files.

Features

Reads timestamped WebVTT cue blocks directly in your browser
Writes text-based Spruce STL cue entries
Converts timing to HH:MM:SS:FF values on a 29.97 fps frame grid
Converts cue line breaks to vertical bars
Discards VTT cue identifiers and cue settings
Processes files up to 50 MB without uploading them

Why Convert?

Some DVD and legacy subtitling workflows accept Spruce STL text files.
STL cue entries separate start time, end time, and text in a compact line.
Vertical-bar line separators are common in text-based authoring workflows.
A frame-grid timing version can be easier to compare with video timing.
Converting locally avoids uploading program material or caption text.
Keeping VTT and STL copies supports different playback environments.
Scenarios

Common Use Cases

Basic STL Draft

Create a text-based Spruce STL draft from web subtitles before checking it in the target authoring tool.

Legacy Tool Interchange

Move timestamped VTT cues into a workflow that requests Spruce STL input.

Text Review

Produce a plain-text file with cue timing and text on one line for quick inspection.

Local Conversion

Convert subtitles without uploading them to a separate conversion service.

Web and STL Copies

Keep a VTT version for web playback while producing a basic STL copy for another workflow.

Frame-Grid Timing Review

Review millisecond VTT timing after quantization to a 29.97 fps frame grid.

Format Ecosystem

Related Formats

VTT (WebVTT)

The readable web-video input format used by this converter.

SRT (SubRip)

A widely supported timestamped subtitle format for media players.

SCC (Scenarist Closed Captioning)

A CEA-608 caption format used in some North American caption workflows.

How It Works

  1. 1

    Select or drop a .vtt file; its contents stay on your device.

  2. 2

    The parser finds timestamped cue blocks and reads their text.

  3. 3

    Cue identifiers and settings such as line, position, and align are discarded.

  4. 4

    Start and end times are written on a 29.97 fps frame grid.

  5. 5

    Physical cue line breaks become vertical-bar separators.

  6. 6

    Each cue is written as one Spruce STL text entry.

Frequently Asked Questions

No. The output is text-based Spruce STL. It does not create the binary EBU Tech 3264 format or EBU GSI and TTI structures.

Cue identifiers and settings such as line, position, size, and align are discarded. The STL output contains timing and text only.

No. NOTE blocks do not contain displayable cue text for this converter and are ignored.

Each cue start and end is converted to HH:MM:SS:FF values on a 29.97 fps frame grid. This converter does not expose a frame-rate selector.

Physical cue line breaks are converted to vertical bars in the STL text field. VTT inline tags remain as literal source text.

No. VTT styling, cue settings, and CSS blocks are not mapped to STL styling. Tags present inside cue text remain literal text.

Ready to convert your subtitles?

Drop your VTT file here and convert to STL instantly.