@vdegenne/subtitles 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,33 @@
1
+ interface Subtitle extends Omit<sub.Subtitle, 'text'> {
2
+ text: string[];
3
+ }
4
+ interface SetTextOptions {
5
+ /**
6
+ * Id of the subtitle
7
+ */
8
+ id: number;
9
+ /**
10
+ * Text index of the subtitle
11
+ * (BEWARE) If `undefined` the text will be written to index 0
12
+ * and all other indexes will get deleted.
13
+ *
14
+ * @default undefined
15
+ */
16
+ index: number | undefined;
17
+ /**
18
+ * Text to change with
19
+ */
20
+ text: string;
21
+ }
22
+ export declare class SubtitleManager {
23
+ #private;
24
+ protected cutIndexWith: string;
25
+ constructor(subtitles?: sub.Subtitle[], cutIndexWith?: string);
26
+ getSubtitleFromId(id: number): Subtitle | undefined;
27
+ setText(options: SetTextOptions): boolean;
28
+ getScript(index?: number, clearEmptyLines?: boolean, joinIndexWith?: string): string;
29
+ rebuild(): sub.Subtitle[];
30
+ iterate(): Generator<Subtitle, void, unknown>;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=SubtitlesManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubtitlesManager.d.ts","sourceRoot":"","sources":["../src/SubtitlesManager.ts"],"names":[],"mappings":"AAAA,UAAU,QAAS,SAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;IACpD,IAAI,EAAE,MAAM,EAAE,CAAA;CACd;AAED,UAAU,cAAc;IACvB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAEzB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,qBAAa,eAAe;;IAK1B,SAAS,CAAC,YAAY;gBADtB,SAAS,GAAE,GAAG,CAAC,QAAQ,EAAO,EACpB,YAAY,SAAS;IAUhC,iBAAiB,CAAC,EAAE,EAAE,MAAM;IAI5B,OAAO,CAAC,OAAO,EAAE,cAAc;IAc/B,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,eAAe,UAAO,EAAE,aAAa,SAAO;IAYtE,OAAO,IAAI,GAAG,CAAC,QAAQ,EAAE;IASxB,OAAO;CAKR"}
@@ -0,0 +1,52 @@
1
+ export class SubtitleManager {
2
+ #subtitles = [];
3
+ constructor(subtitles = [], cutIndexWith = '\n\n') {
4
+ this.cutIndexWith = cutIndexWith;
5
+ this.#subtitles = subtitles.map((s) => {
6
+ return {
7
+ ...s,
8
+ text: s.text.split(this.cutIndexWith),
9
+ };
10
+ });
11
+ }
12
+ getSubtitleFromId(id) {
13
+ return this.#subtitles.find((s) => s.id === id);
14
+ }
15
+ setText(options) {
16
+ // if (options.id === undefined) return
17
+ const subtitle = this.getSubtitleFromId(options.id);
18
+ if (subtitle) {
19
+ if (options.index === undefined) {
20
+ subtitle.text = [options.text];
21
+ }
22
+ else {
23
+ subtitle.text[options.index] = options.text;
24
+ }
25
+ return true;
26
+ }
27
+ return false;
28
+ }
29
+ getScript(index, clearEmptyLines = true, joinIndexWith = '\n') {
30
+ const joined = this.#subtitles
31
+ .map((sub) => index === undefined ? sub.text.join(joinIndexWith) : sub.text[index])
32
+ .filter((text) => {
33
+ return !(!text && clearEmptyLines);
34
+ })
35
+ .join(joinIndexWith);
36
+ return joined;
37
+ }
38
+ rebuild() {
39
+ return this.#subtitles.map((s) => {
40
+ return {
41
+ ...s,
42
+ text: s.text.join(this.cutIndexWith),
43
+ };
44
+ });
45
+ }
46
+ *iterate() {
47
+ for (const item of this.#subtitles) {
48
+ yield item;
49
+ }
50
+ }
51
+ }
52
+ //# sourceMappingURL=SubtitlesManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubtitlesManager.js","sourceRoot":"","sources":["../src/SubtitlesManager.ts"],"names":[],"mappings":"AAyBA,MAAM,OAAO,eAAe;IAC3B,UAAU,GAAe,EAAE,CAAA;IAE3B,YACC,YAA4B,EAAE,EACpB,eAAe,MAAM;QAArB,iBAAY,GAAZ,YAAY,CAAS;QAE/B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACrC,OAAO;gBACN,GAAG,CAAC;gBACJ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;aACrC,CAAA;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAED,iBAAiB,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,OAAO,CAAC,OAAuB;QAC9B,uCAAuC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACnD,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACP,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAA;YAC5C,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,OAAO,KAAK,CAAA;IACb,CAAC;IAED,SAAS,CAAC,KAAc,EAAE,eAAe,GAAG,IAAI,EAAE,aAAa,GAAG,IAAI;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU;aAC5B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACZ,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CACpE;aACA,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAChB,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,eAAe,CAAC,CAAA;QACnC,CAAC,CAAC;aACD,IAAI,CAAC,aAAa,CAAC,CAAA;QACrB,OAAO,MAAM,CAAA;IACd,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAChC,OAAO;gBACN,GAAG,CAAC;gBACJ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;aACpC,CAAA;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAED,CAAC,OAAO;QACP,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,MAAM,IAAI,CAAA;QACX,CAAC;IACF,CAAC;CACD"}
package/lib/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export declare function numericTimeToTimecode(seconds: sub.NumericTime): sub.Timecode;
1
+ export declare function numericTimeToTimecode(seconds: sub.NumericTime, msSep?: string): sub.Timecode;
2
+ export declare function timecodeToNumericTime(timecode: string, msSep?: string): number;
2
3
  interface SubtitlesToVTTOptions {
3
4
  /**
4
5
  * A number between 0 and 1 that determines the y-position of all subtitles in the final VTT output.
@@ -7,8 +8,8 @@ interface SubtitlesToVTTOptions {
7
8
  verticalPosition: number;
8
9
  }
9
10
  export declare function subtitlesToVTT(subtitles: sub.Subtitles, options?: Partial<SubtitlesToVTTOptions>): string;
10
- export declare function numericTimeToSRTTimecode(seconds: sub.NumericTime): string;
11
11
  export declare function subtitlesToSRT(subtitles: sub.Subtitles): string;
12
+ export declare function SRTtoSubtitles(srt: string): sub.Subtitles;
12
13
  export declare function VTTtoSRT(vtt: string): string;
13
14
  export declare function SRTtoVTT(srt: string): string;
14
15
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,QAAQ,CAQ5E;AAED,UAAU,qBAAqB;IAC9B;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,cAAc,CAC7B,SAAS,EAAE,GAAG,CAAC,SAAS,EACxB,OAAO,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACtC,MAAM,CAkBR;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,GAAG,MAAM,CAMzE;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,MAAM,CAS/D;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAyB5C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAqB5C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CACpC,OAAO,EAAE,GAAG,CAAC,WAAW,EACxB,KAAK,SAAM,GACT,GAAG,CAAC,QAAQ,CAad;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,MAAM,CAuB3E;AAED,UAAU,qBAAqB;IAC9B;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,cAAc,CAC7B,SAAS,EAAE,GAAG,CAAC,SAAS,EACxB,OAAO,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACtC,MAAM,CAkBR;AAUD,wBAAgB,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,MAAM,CAS/D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,SAAS,CA2BzD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAyB5C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAqB5C"}
package/lib/index.js CHANGED
@@ -1,11 +1,37 @@
1
- export function numericTimeToTimecode(seconds) {
2
- return (String((seconds / 3600) | 0).padStart(2, '0') +
1
+ export function numericTimeToTimecode(seconds, msSep = '.') {
2
+ const hours = Math.floor(seconds / 3600);
3
+ const minutes = Math.floor(seconds / 60) % 60;
4
+ const secs = Math.floor(seconds % 60);
5
+ const millis = Math.floor(seconds * 1000) % 1000;
6
+ return (String(hours).padStart(2, '0') +
3
7
  ':' +
4
- String(((seconds / 60) | 0) % 60).padStart(2, '0') +
8
+ String(minutes).padStart(2, '0') +
5
9
  ':' +
6
- String((seconds | 0) % 60).padStart(2, '0') +
7
- '.' +
8
- String(((seconds * 1000) | 0) % 1000).padStart(3, '0'));
10
+ String(secs).padStart(2, '0') +
11
+ msSep +
12
+ String(millis).padStart(3, '0'));
13
+ }
14
+ export function timecodeToNumericTime(timecode, msSep = '.') {
15
+ const [main, msPart] = timecode.split(msSep);
16
+ if (main === undefined) {
17
+ throw new Error('invalid timecode');
18
+ }
19
+ const parts = main.split(':').map(Number);
20
+ let hours = 0, minutes = 0, seconds = 0, milliseconds = 0;
21
+ if (msPart)
22
+ milliseconds = parseInt(msPart.padEnd(3, '0'), 10);
23
+ if (parts.length === 3) {
24
+ ;
25
+ [hours, minutes, seconds] = parts;
26
+ }
27
+ else if (parts.length === 2) {
28
+ ;
29
+ [minutes, seconds] = parts;
30
+ }
31
+ else if (parts.length === 1) {
32
+ seconds = parts[0];
33
+ }
34
+ return hours * 3600 + minutes * 60 + seconds + milliseconds / 1000;
9
35
  }
10
36
  export function subtitlesToVTT(subtitles, options) {
11
37
  const opts = {
@@ -16,30 +42,54 @@ export function subtitlesToVTT(subtitles, options) {
16
42
  // Convert normalized 0–1 vertical position to WebVTT percent
17
43
  const lineValue = Math.round(opts.verticalPosition * 100);
18
44
  for (const s of subtitles) {
19
- if (s.id != null)
45
+ if (s.id !== undefined && s.id !== null)
20
46
  vtt += `${s.id}\n`;
21
47
  vtt += `${numericTimeToTimecode(s.start)} --> ${numericTimeToTimecode(s.end)} line:${lineValue}%\n`;
22
48
  vtt += `${s.text}\n\n`;
23
49
  }
24
50
  return vtt;
25
51
  }
26
- export function numericTimeToSRTTimecode(seconds) {
27
- const hours = String((seconds / 3600) | 0).padStart(2, '0');
28
- const minutes = String(((seconds / 60) | 0) % 60).padStart(2, '0');
29
- const secs = String((seconds | 0) % 60).padStart(2, '0');
30
- const millis = String(((seconds * 1000) | 0) % 1000).padStart(3, '0');
31
- return `${hours}:${minutes}:${secs},${millis}`;
32
- }
52
+ // export function numericTimeToSRTTimecode(seconds: sub.NumericTime): string {
53
+ // const hours = String((seconds / 3600) | 0).padStart(2, '0')
54
+ // const minutes = String(((seconds / 60) | 0) % 60).padStart(2, '0')
55
+ // const secs = String((seconds | 0) % 60).padStart(2, '0')
56
+ // const millis = String(((seconds * 1000) | 0) % 1000).padStart(3, '0')
57
+ // return `${hours}:${minutes}:${secs},${millis}`
58
+ // }
33
59
  export function subtitlesToSRT(subtitles) {
34
60
  let srt = '';
35
61
  for (let i = 0; i < subtitles.length; i++) {
36
62
  const s = subtitles[i];
37
63
  srt += `${i + 1}\n`;
38
- srt += `${numericTimeToSRTTimecode(s.start)} --> ${numericTimeToSRTTimecode(s.end)}\n`;
64
+ srt += `${numericTimeToTimecode(s.start, ',')} --> ${numericTimeToTimecode(s.end, ',')}\n`;
39
65
  srt += `${s.text}\n\n`;
40
66
  }
41
67
  return srt;
42
68
  }
69
+ export function SRTtoSubtitles(srt) {
70
+ const subtitles = [];
71
+ const blocks = srt
72
+ .replace(/\r\n/g, '\n')
73
+ .trim()
74
+ .split(/\n{2,}/);
75
+ for (const block of blocks) {
76
+ const lines = block.split('\n');
77
+ if (lines.length < 3)
78
+ continue;
79
+ const timeLine = lines[1];
80
+ const textLines = lines.slice(2);
81
+ const [startStr, endStr] = timeLine.split(' --> ');
82
+ if (!startStr || !endStr)
83
+ continue;
84
+ subtitles.push({
85
+ id: undefined,
86
+ start: timecodeToNumericTime(startStr, ','),
87
+ end: timecodeToNumericTime(endStr, ','),
88
+ text: textLines.join('\n'),
89
+ });
90
+ }
91
+ return subtitles;
92
+ }
43
93
  export function VTTtoSRT(vtt) {
44
94
  const lines = vtt.split(/\r?\n/);
45
95
  const srtLines = [];
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,16 @@
1
1
  {
2
2
  "name": "@vdegenne/subtitles",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "Small npm utility to work with subtitles.",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {
8
8
  "import": "./lib/index.js",
9
9
  "types": "./types.d.ts"
10
+ },
11
+ "./SubtitlesManager.js": {
12
+ "import": "./lib/SubtitlesManager.js",
13
+ "types": "./lib/SubtitlesManager.d.ts"
10
14
  }
11
15
  },
12
16
  "files": [
package/types.d.ts CHANGED
@@ -5,11 +5,11 @@ declare global {
5
5
  type NumericTime = number
6
6
 
7
7
  interface Subtitle {
8
- id?: number
8
+ id: number | undefined
9
9
  /** numeric time in seconds */
10
- start: NumericTime
10
+ start: sub.NumericTime
11
11
  /** numeric time in seconds */
12
- end: NumericTime
12
+ end: sub.NumericTime
13
13
  text: string
14
14
  }
15
15