Uploading SRT and Other Subtitle Files
How to upload SRT and other subtitle formats and automatically convert them to VTT for web playback.
VTT (WebVTT) is the standard format for web video player captions. When you have subtitle files in other formats (SRT, SSA, TTML, etc.), Nomad Media can automatically convert them to VTT on upload.
Step 1 — Upload the Subtitle File
- Open the asset in the Admin application and select the Related Assets tab.
- Click the + button next to the Subtitles section.
- In the upload dialog, select the correct format and language for the file.
Important: The format selected in the upload dialog must match the actual format of the file. See the Identifying Subtitle File Formats section below for help determining the format.
Step 2 — Auto-Convert to VTT
After uploading the subtitle file, trigger conversion to VTT:
- Select Reprocess Asset from the top-right menu of the asset.
- Wait for the asset status to move from "Registering" to complete (usually a minute or less).
- The new VTT file will appear in the Related Assets tab alongside the original subtitle file.
The VTT file is what appears in the video playback UI as selectable captions.
Identifying Subtitle File Formats
Use the characteristics below to identify an unknown subtitle file's format.
SRT (SubRip Subtitle) — .srt
.srt- Structure: Sequential numeric index, timestamp line, text, blank line separator
- Timestamp format:
HH:MM:SS,mmm --> HH:MM:SS,mmm(comma before milliseconds) - Key identifier: Numbered blocks starting at
1, timestamps use-->with commas
1
00:00:06,523 --> 00:00:10,760
This is the first subtitle line.
WebVTT — .vtt
.vtt- Structure: Starts with
WEBVTTheader, optional cue identifiers, timestamp line, text - Timestamp format:
HH:MM:SS.mmm --> HH:MM:SS.mmm(dot before milliseconds) - Key identifier: File must begin with
WEBVTTon the first line; uses dots in timestamps
WEBVTT
00:00:06.523 --> 00:00:10.760
This is the first subtitle line.
SSA / ASS (SubStation Alpha) — .ssa / .ass
.ssa / .ass- Structure: INI-like sections:
[Script Info],[V4+ Styles],[Events] - Timestamp format:
H:MM:SS.cc(centiseconds) - Key identifier: Begins with
[Script Info]; dialogue lines prefixed withDialogue:
[Script Info]
Title: Example
[Events]
Dialogue: 0,0:00:06.52,0:00:10.76,Default,,0,0,0,,This is the first subtitle line.
TTML — .ttml / .xml / .dfxp
.ttml / .xml / .dfxp- Structure: XML-based with
<tt>root element and<body><div><p>content hierarchy - Key identifier: XML declaration +
<tt>root element withxmlnsnamespace
<tt xmlns="http://www.w3.org/ns/ttml">
<body>
<div>
<p begin="00:00:06.523" end="00:00:10.760">This is the first subtitle line.</p>
</div>
</body>
</tt>SCC (Scenarist Closed Captions) — .scc
.scc- Structure: Header
Scenarist_SCC V1.0, then timestamp + hex-encoded caption data - Key identifier:
Scenarist_SCC V1.0header; data is hex-encoded (not human-readable) - Use case: Broadcast television, FCC compliance
STL (EBU Subtitles) — .stl
.stl- Structure: Binary format (EBU Tech 3264)
- Key identifier: Binary file — not human-readable in a text editor
- Use case: European broadcast standard
MicroDVD — .sub
.sub- Structure: Frame-based timing in curly braces, pipe-delimited text
- Key identifier: Lines start with
{digits}{digits}
{100}{250}This is the first subtitle line.
Quick Identification Checklist
| Check | Format |
|---|---|
First line is WEBVTT | VTT |
Numbered blocks with --> and commas in timestamps | SRT |
Numbered blocks with --> and dots in timestamps (no WEBVTT header) | Malformed SRT or headerless VTT |
Starts with [Script Info] | SSA/ASS |
XML with <tt> root element | TTML/DFXP |
Starts with Scenarist_SCC V1.0 | SCC |
Lines start with {frame}{frame} | MicroDVD |
| Binary / not human-readable | Likely STL (EBU) |
