Skip to content
INDXR.AI
All docs

VTT

VTT is the web-native subtitle format — it's what an HTML5 video player loads for on-screen captions through a <track> element. Reach for it when your video plays in a browser; for a desktop editor, SRT is the sibling to use. The file starts with a required WEBVTT header, an optional NOTE block carrying the title and language, then numbered cues with HH:MM:SS.mmm time ranges — a dot before the milliseconds, unlike SRT's comma.

Timestamp format & header

VTT uses a dot before the milliseconds: HH:MM:SS.mmm (SRT uses a comma). The file always opens with WEBVTT; the NOTE block is added when a title or language is known. Cue text uses the same re-segmentation — breaking the transcript into short, subtitle-sized cues — and ~42-character line wrapping as SRT.

WEBVTT

NOTE
title: Vector Databases Explained
language: en

1
00:00:00.000 --> 00:00:07.500
Welcome to this short introduction to
vector databases. A vector database stores embeddings and retrieves them by similarity.

2
00:00:07.500 --> 00:00:12.099
That makes it the backbone of most
retrieval augmented generation systems.

Sources

  • W3Cthe WebVTT format (WEBVTT header, dot-millisecond timestamps)
  • INDXR (own code)NOTE block, re-segmentation, line wrappingVerified against packages/shared/src/utils/formatTranscript.ts (generateVtt, resegmentTranscript)