Skip to content
This repository has been archived by the owner on Mar 14, 2024. It is now read-only.

📌 This library takes in a string and validates it against the SRT spec 📄

License

Notifications You must be signed in to change notification settings

socialchorus/srt-validator

 
 

Repository files navigation

SrtValidator

npm node issues license jest codecov code-style build-and-test publish-to-npm


Installation

yarn add srt-validator

Or

npm install srt-validator --save

Examples

SRT file (also known as SubRip Subtitle file) is a plain-text file that contains subtitles with the start and end timecodes of the text to ensure the subtitles match the audio. It also inclues the sequential number of subtitles. A sample SRT looks like this:

1
00:02:17,440 --> 00:02:20,375
Senator, we're making
our final approach into Coruscant.

2
00:02:20,476 --> 00:02:22,501
Very good, Lieutenant.

This library only exposes a single util function srtValidator(input) which takes a string as an input and validates it against the SRT spec. The output of this function is an array of error objects. If the array is empty then there are no errors and the SRT is valid.

Valid SRT

import srtValidator from 'srt-validator';

const srtString = `1
00:02:17,440 --> 00:02:20,375
Senator, we're making
our final approach into Coruscant.

2
00:02:20,476 --> 00:02:22,501
Very good, Lieutenant.`;

srtValidator(srtString);

This will return:

[];

Invalid SRT

import srtValidator from 'srt-validator';

const srtString = `1
02:01:17,440 --> 02:00:20,375
Forget it, Jake.
It's Chinatown.`;

srtValidator(srtString);

This will return:

[
  {
    errorCode: 'validatorErrorStartTime',
    lineNumber: 2,
    message: 'start time should be less than end time',
    validator: 'CaptionTimeSpanValidator',
  },
];

Documentation

Attribution

License

MIT licensed.

About

📌 This library takes in a string and validates it against the SRT spec 📄

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 52.6%
  • TypeScript 46.2%
  • Shell 1.2%