Package Exports
- srt-parser-2
- srt-parser-2/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (srt-parser-2) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
srt-parser-2
An SRT parser for Javascript.
It reads an .srt file into an array.
Install
npm
npm install srt-parser-2or yarn
yarn add srt-parser-2Example
This is a srt format file:
1
00:00:11,544 --> 00:00:12,682
Helloit would become:
[{
id: '1',
startTime: '00:00:11,544',
startSeconds: 11.544,
endTime: '00:00:12,682',
endSeconds: 12.682,
text: 'Hello'
}]Enviroment support
Since it only process text,
it should work in both Browser and Node.js enviroment
Usage
let srt = `
1
00:00:11,544 --> 00:00:12,682
Hello
`;
import srtParser2 from "srt-parser-2";
var parser = new srtParser2();
var srt_array = parser.fromSrt(srt);
console.log(srt_array);
// turn array back to SRT string.
var srt_string = parser.toSrt(srt_array);
console.log(srt_string);You can run this example using node example/1.Comma.js
CLI
npx srt-parser-2 -i input.srt -o output.json --minifyOptions:
| Option | Required | Default |
|---|---|---|
| --input or -i | Yes | |
| --output or -o | No | output.json |
| --minify | No | false |
License
MIT
Why?
Why this one special? There are plently SRT parser on npm:
What's wrong with them?
Nothing wrong.
All of them can handle this format:
1
00:00:11,544 --> 00:00:12,682
HelloBut I want to handle format like these:
00:00:11.544This is wrong format, it use period as separator
Or this:
00:00:11,5440This is also wrong format, millisecond has 4 digit (should be 3)
Or this:
1:00:11,5Similiar, hour & millisecond is only 1 digit (wrong)
Or this
00:00:00.05etc
Format Support
| Format | Other parser | srt-parser-2 | srt-parser-2 would turn this into |
|---|---|---|---|
| 00:00:01,544 | Yes ✅ | Yes ✅ | 00:00:01,544 |
| 00:00:01.544 | ❓ Yes for some of them | Yes ✅ | 00:00:01,544 |
| 00:00:01.54 | ❓ Yes for some of them | Yes ✅ | 00:00:01,544 |
| 00:00:00.3333 | No ❌ | Yes ✅ | 00:00:00,333 |
| 00:00:00.3 | No ❌ | Yes ✅ | 00:00:00,300 |
| 1:2:3.4 | No ❌ | Yes ✅ | 01:02:03,400 |
Basic principle:
- If hour,minute,second is shorter than 2 digit, pad start with "0", if longer than 2 digit, only save first 2 digit.
- Millisecond is the same, but it's 3 digit.
- Seperator can be
.(periods) or,(comma), periods(incorrect) will be replace with comma(correct)
Conclusion
- Support more time format (even wrong format)
- Have extensive test