Convert WebVTT (The Web Video Text Tracks Format, aka html5 video subtitles) into SubRip SRT.
npm install node-vtt-to-srtt
# or set it up globally
npm install node-vtt-to-srt --global
You may use it from the terminal if vtt-to-str was installed globally
node-vtt-to-srt example.vtt example.srt
cat example.vtt | vtt-to-srt > example.str
node-vtt-to-srt example.str < example.vtt
If converting from a text file:
import fs from 'fs';
import vtt2srt from 'node-vtt-to-srt';
fs.createReadStream(__dirname + '/subtitles.vtt')
.pipe(vtt2srt())
.pipe(fs.createWriteStream(__dirname + '/subtitles.srt'));
If converting from an string:
import fs from 'fs';
import vtt2srt from 'node-vtt-to-srt';
const vttString = 'WEBVTT FILE\r\n1\r\n00:00:01.000 --> 00:00:02.000\r\nthis is WebVTT';
const srtStream = vtt2srt();
srtStream.write(vttString);
srtStream.end();
srtStream.pipe(fs.createWriteStream(__dirname + '/subtitles.srt'));
If converting to an string:
import fs from 'fs';
import vtt2srt from 'node-vtt-to-srt';
const vttString = 'WEBVTT FILE\r\n1\r\n00:00:01.000 --> 00:00:02.000\r\nthis is WebVTT';
const srtStream = vtt2srt();
srtStream.write(vttString);
srtStream.end(() => console.log(srtStream.read().toString('utf-8'));
Note: these examples are available in the examples
folder. Run them with babel-node
npm run test