XConvert
Downloads
Pricing

Convert VTT to STL Online

Turn WebVTT (.vtt) subtitles into STL subtitle files in a few clicks—fast conversion with a simple upload and instant download.

Input (VTT)
Output (STL)

How to Convert VTT to STL Online

  1. Upload Your VTT File: Drag and drop the .vtt file or click "Add Files" to select it from your device. Batch upload is supported, so you can queue several episodes or language tracks in one pass. Files are processed in your browser session — nothing is uploaded to a server.
  2. Confirm Output Format STL: STL is preselected as the target. xconvert outputs the Spruce STL Text Script flavour used by Apple DVD Studio Pro — a plain-text format with $-prefixed configuration commands and HH:MM:SS:FF timecodes. This is the same dialect EZTitles documents for DVD/NLE authoring exchange, not the binary EBU N19 (.stl) used by broadcast subtitle exchange.
  3. Review the Generated Timecodes (Optional): WebVTT uses millisecond timestamps (HH:MM:SS.mmm) and Spruce STL uses frame-based timecodes (HH:MM:SS:FF). The converter quantises millisecond cues to the nearest frame at 29.97 fps (NTSC) by default — open the output in a text editor afterwards to spot-check any cue boundary that lands between frames.
  4. Convert and Download: Click "Convert" and grab the resulting .stl file. Drop it straight into DVD Studio Pro's subtitle import dialog, Adobe Encore, or any tool that accepts the Spruce script syntax. No sign-up, no watermark, no email gating.

Why Convert VTT to STL?

WebVTT (.vtt) is the captioning format the W3C standardised for HTML5 video — every major browser plays it natively, and YouTube, Vimeo, and Brightcove all accept it. Spruce STL, by contrast, was authored by Spruce Technologies for DVD authoring and lives on inside Apple DVD Studio Pro, Adobe Encore, and several professional captioning suites. Going from VTT to STL is the bridge between "modern web caption file" and "DVD/Blu-ray or legacy NLE authoring track."

  • DVD and Blu-ray authoring — Apple's DVD Studio Pro and Sonic Scenarist both import the Spruce script (.stl) as a subtitle stream. If your project was captioned on the web with WebVTT and now needs a physical-media master, STL is the input the authoring app expects.
  • NLE round-trip — EZTitles, Spot, and FAB Subtitler all read and write Spruce STL, making it a common interchange format when you're handing a captioning vendor a project that started in a web pipeline.
  • Legacy archives — Many post-production houses archived caption stems in the Spruce .stl script through the late 2000s; converting your web-era WebVTT captions to that format lets you slot them next to existing assets in the same library.
  • Strip web-only cue settings — WebVTT supports cue positioning (line, position, align, vertical:rl), region blocks, and CSS-style ::cue selectors. None of these survive into a DVD subtitle track, and Spruce STL ignores them cleanly — handy when you want a baseline caption file without any browser-specific styling.
  • Predictable frame-accurate timing — DVD subtitles are scheduled against a tape or program timecode, not a millisecond clock. Converting to STL realigns your cues to the HH:MM:SS:FF grid that authoring tools schedule against.

WebVTT vs Spruce STL — Format Comparison

Property WebVTT (.vtt) Spruce STL (.stl)
Container UTF-8 plain text Plain text (ANSI code pages or UTF-8/UTF-16 per EZTitles' export options)
Timestamp format HH:MM:SS.mmm (millisecond, no frame rate) HH:MM:SS:FF (frame-accurate, tied to a display standard)
Frame rate awareness None — milliseconds Yes — $DisplayStandard declares NTSC / NTSC-drop / PAL
Styling CSS-style ::cue selectors, <b>, <i>, <u>, <c.classname> Global font/colour set once at file head; italic via ^I…^I tags
Positioning Per-cue: line:, position:, align:, vertical:rl Per-cue X/Y offsets via $HorzAlign / $VertAlign / coordinates
Multi-line text Newlines inside the cue body `
Specification owner W3C (Candidate Recommendation Draft, WHATWG draft since 2010) — public spec Spruce Technologies, never published as a public standard; the de facto reference is DVD Studio Pro's manual
Typical players Browsers, HTML5 <track>, YouTube, Vimeo DVD Studio Pro, Adobe Encore, EZTitles, FAB Subtitler

Source for the WebVTT spec details: W3C WebVTT: The Web Video Text Tracks Format. Source for the Spruce STL command set: EZTitles — Apple DVD Studio Pro / Spruce STL Text Script export reference.

Spruce STL Command Quick Reference

These are the $-prefixed directives at the top of every Spruce script. xconvert writes sensible defaults; open the output and tune any of them if your authoring tool expects different values.

Command What it controls Typical value
$DisplayStandard Frame rate / TV standard for the timecode grid NTSC (29.97 non-drop), NDF (drop frame), or PAL (25 fps)
$TapeOffset Whether timecodes are tape-offset (True) or zero-based (False) False for media-relative subtitles; DVD Studio Pro often needs this to import past minute 0
$FontName Global font family for all cues Arial, Helvetica, or a font installed in the authoring app
$FontSize Point size for the cue text 26–32 is typical for 720×480 NTSC
$HorzAlign / $VertAlign Default horizontal / vertical alignment Center / Bottom
$ColorIndex1…$ColorIndex4 The four-colour palette used for the subtitle bitmap on DVD Tool-defined; DVD Studio Pro renders the script against these
^I … ^I Inline italic open/close inside a cue line Inserted automatically when xconvert detects <i> in WebVTT

Frequently Asked Questions

Does xconvert output Spruce STL or EBU STL?

Spruce STL Text Script — the plain-text dialect Apple DVD Studio Pro and Adobe Encore consume. EBU STL (formally EBU Tech 3264 / N19) is a completely different file: a binary, broadcast-exchange format with a fixed 1024-byte General Subtitle Information (GSI) block followed by 128-byte Text and Timing Information (TTI) blocks. The two formats share the .stl extension by historical accident, which trips up a lot of subtitling pipelines. If your downstream tool is a broadcast playout system asking for "EBU STL," you need a different converter — Spruce STL won't import.

What frame rate does the converter assume?

The default is NTSC at 29.97 fps non-drop, which matches the most common North American DVD authoring profile. WebVTT cues are in milliseconds with no frame-rate concept, so converting to STL requires a target rate; if your project is PAL (25 fps) or true 24 fps, open the resulting file and change $DisplayStandard to PAL or FILM before importing into your authoring tool. Quantisation error in the conversion is at most one half-frame (~17 ms at 29.97 fps), which is below the perceptual threshold for caption timing.

Will WebVTT styling (<b>, <i>, ::cue selectors) survive the conversion?

Italics survive — xconvert wraps the cue text in ^I…^I tags so DVD Studio Pro renders them in italic. Bold, underline, and colour spans do not survive, because Spruce STL applies a single global font and style at the file head; you cannot vary it cue-by-cue in the script. Region blocks, line:, position:, and align: cue settings are dropped — DVD subtitles place text via the authoring tool's render settings, not per-cue positioning.

My DVD Studio Pro import fails with "subtitle is beyond the video asset" — what's going wrong?

DVD Studio Pro requires that every subtitle's in-cue timecode fall within the running time of the video asset it's attached to. If your VTT file was captured against a longer master and you've since trimmed the video, late cues will be rejected. The other common cause is the $TapeOffset directive: when it's left at the default True, DSP expects the timecodes to be tape-relative rather than zero-based. Open the .stl in a text editor and add $TapeOffset = False near the header — that's the fix Apple's own DVD Studio Pro 4 docs prescribe for media-relative subtitle imports.

Why are non-Latin characters (Greek, Cyrillic, Arabic) garbled after import?

The classic Spruce script was written for ANSI code pages (Windows-1250 through Windows-1257, plus the East Asian DBCS pages 932 / 936 / 949 / 950). Modern exporters — including xconvert — write UTF-8 instead, but older builds of DVD Studio Pro and some legacy authoring tools default to interpreting the file as Windows-1252. If you see mojibake, re-save the file as the code page that matches your language (Windows-1253 for Greek, Windows-1251 for Cyrillic, Windows-1256 for Arabic) or, if your tool supports it, save as UTF-16 BOM with the matching encoding declaration. EZTitles' export panel documents this exact workflow.

How do multi-line WebVTT cues get represented in STL?

In WebVTT, a newline inside the cue body produces a line break. The Spruce STL Text Script uses the pipe character | to separate lines within a single subtitle, so xconvert maps each newline to |. A two-line cue like Hello there\nHow are you? becomes Hello there|How are you? in the .stl output. The pipe is reserved for this purpose — if your source text contains a literal |, the converter escapes it (different DVD authoring tools handle escaping inconsistently; spot-check the output if your captions contain bar characters).

Can I round-trip — VTT to STL and back — without losing information?

Mostly, but expect to lose styling and positioning. Going VTT → STL drops cue positioning, region blocks, and CSS styling (only italics survive). Going STL → VTT recovers the text and timing but cannot reconstruct the WebVTT cue settings you originally had. For a non-destructive workflow, keep your master in WebVTT (or TTML / DFXP, which preserve far more metadata) and treat STL as a one-way export for DVD/NLE delivery.

Is the file actually processed in my browser?

Yes. Both WebVTT and the Spruce STL Text Script are plain-text formats with simple grammars, so the parse-and-rewrite happens entirely in JavaScript on the page. Nothing is uploaded to xconvert's servers, no account is required, and there are no watermarks, daily-file caps, or hidden Pro tiers on the converter. Close the tab and the file is gone.

Related Convert tools
VTT ConverterConvert Vtt To SrtConvert Vtt To AssConvert Vtt To SsaConvert Vtt To SbvConvert Srt To StlConvert Ass To StlConvert Ssa To Stl

Image Tools

Image CompressorCompress JPEGCompress PNGCompress GIFCompress WebPImage ConverterJPG ConverterImage Resizer

Video Tools

Video CompressorCompress MP4MP4 to GIFVideo to GIFVideo ConverterMP4 ConverterVideo Cutter

Audio Tools

Audio CompressorCompress MP3Compress WAVAudio ConverterMP3 ConverterFLAC to MP3Audio Cutter

Document Tools

Compress PDFMerge Images to PDFSplit PDFPDF to JPGUnzip FilesRAR Extractor

Converters

Time Zone ConverterMeeting PlannerIST to ESTTime Zone AbbreviationsUnit ConverterLength ConverterFlow Rate Converter
© 2026 XConvert.com. All Rights Reserved.
About UsPrivacy PolicyTerms of ServiceContactHelp Us Grow