VTT is less widely accepted than SRT by desktop players and editors. CSV is plain text that every spreadsheet, database and script can read. VTT is at home in captions on web pages and in HTML video players; CSV is the usual choice for moving tabular data between systems.
The text is read as UTF-8 or UTF-16, whichever the file is. An older file in another code page is read using the charset it declares, or as Windows-1252 if it declares none, so accented letters in an unlabelled legacy file can come out wrong. A file that is not text, such as the picture-based subtitles of a DVD, is refused instead of being converted to nonsense. WebVTT comments, STYLE blocks and region definitions are skipped; the cues, their text and positions are kept. The result has the columns index, start, end and text, with times as HH:MM:SS.mmm, and starts with a byte-order mark so Excel reads accented letters correctly.