@gibme/tablo.tv 20.0.3 → 22.0.0

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.
@@ -18,15 +18,6 @@
18
18
  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
19
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
20
  // SOFTWARE.
21
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
- return new (P || (P = Promise))(function (resolve, reject) {
24
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
- step((generator = generator.apply(thisArg, _arguments || [])).next());
28
- });
29
- };
30
21
  var __importDefault = (this && this.__importDefault) || function (mod) {
31
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
32
23
  };
@@ -41,6 +32,22 @@ const which_1 = __importDefault(require("which"));
41
32
  const crypto_1 = require("crypto");
42
33
  const timer_1 = __importDefault(require("@gibme/timer"));
43
34
  class LiveTranscoder extends events_1.EventEmitter {
35
+ id;
36
+ device;
37
+ channel_id;
38
+ output_path;
39
+ filename;
40
+ auto_restart;
41
+ static instances = new Map();
42
+ ffmpeg_path;
43
+ process;
44
+ timer;
45
+ emitter = new events_1.EventEmitter();
46
+ restart_count = 0;
47
+ stopping = false;
48
+ static MAX_RESTARTS = 5;
49
+ static READY_TIMEOUT = 30_000;
50
+ static MIN_KEEPALIVE = 60;
44
51
  /**
45
52
  * Creates a new live transcoder instance.
46
53
  *
@@ -64,69 +71,75 @@ class LiveTranscoder extends events_1.EventEmitter {
64
71
  this.output_path = output_path;
65
72
  this.filename = filename;
66
73
  this.auto_restart = auto_restart;
67
- this.ffmpeg_path = ffmpeg_static_1.default !== null && ffmpeg_static_1.default !== void 0 ? ffmpeg_static_1.default : which_1.default.sync('ffmpeg');
68
- this.emitter = new events_1.EventEmitter();
69
- this._use_count = 0;
70
- this._active = false;
71
- this._full_path = '';
72
- this.emitter.on('abort', () => __awaiter(this, void 0, void 0, function* () {
73
- var _a, _b;
74
+ try {
75
+ this.ffmpeg_path = ffmpeg_static_1.default ?? which_1.default.sync('ffmpeg');
76
+ }
77
+ catch {
78
+ throw new Error('ffmpeg is not installed. Install ffmpeg or ensure ffmpeg-static provides a valid binary.');
79
+ }
80
+ this.emitter.on('abort', async () => {
81
+ this.stopping = true;
74
82
  if (this.process) {
75
- (_a = this.process.stdin) === null || _a === void 0 ? void 0 : _a.write('q', error => {
76
- if (error) {
77
- this.emit('error', error);
78
- }
79
- });
80
83
  try {
81
84
  if (!this.process.killed) {
82
85
  this.process.kill();
83
86
  }
84
87
  }
85
- catch (_c) {
88
+ catch {
86
89
  }
87
90
  delete this.process;
88
- (_b = this.timer) === null || _b === void 0 ? void 0 : _b.destroy();
91
+ this.timer?.destroy();
89
92
  delete this.timer;
90
93
  if (this.session) {
91
- yield this.device.deleteSession(this.session);
94
+ await this.device.deleteSession(this.session);
92
95
  }
93
96
  this.active = false;
94
97
  this.emitter.emit('stopped');
95
98
  }
96
- }));
99
+ });
97
100
  this.emitter.on('stopped', () => {
98
101
  try {
99
- const current_path = (0, path_1.resolve)(output_path, `./${this.id}`);
100
- if ((0, fs_1.existsSync)(current_path)) {
102
+ const current_path = (0, path_1.resolve)(this.output_path, `./${this.id}`);
103
+ const base = (0, path_1.resolve)(this.output_path);
104
+ if (current_path.startsWith(base) && (0, fs_1.existsSync)(current_path)) {
101
105
  (0, fs_1.rmSync)(current_path, { recursive: true, force: true });
102
106
  }
103
107
  }
104
- catch (_a) {
108
+ catch {
105
109
  }
110
+ LiveTranscoder.instances.delete(this.id);
106
111
  this.emit('stopped');
107
112
  });
113
+ const base_path = (0, path_1.resolve)(output_path);
108
114
  this.full_path = (0, path_1.resolve)(output_path, `./${this.id}`);
115
+ if (!this.full_path.startsWith(base_path)) {
116
+ throw new Error('Resolved output path escapes the base output directory');
117
+ }
109
118
  if ((0, fs_1.existsSync)(this.full_path)) {
110
119
  (0, fs_1.rmSync)(this.full_path, { recursive: true, force: true });
111
120
  }
112
121
  (0, fs_1.mkdirSync)(this.full_path, { recursive: true });
113
122
  this.full_path = (0, path_1.resolve)(this.full_path, `./${this.filename}`);
114
123
  }
124
+ _use_count = 0;
115
125
  get use_count() {
116
126
  return this._use_count;
117
127
  }
128
+ _active = false;
118
129
  get active() {
119
130
  return this._active;
120
131
  }
121
132
  set active(active) {
122
133
  this._active = active;
123
134
  }
135
+ _full_path = '';
124
136
  get full_path() {
125
137
  return this._full_path;
126
138
  }
127
139
  set full_path(path) {
128
140
  this._full_path = path;
129
141
  }
142
+ _session;
130
143
  get session() {
131
144
  return this._session;
132
145
  }
@@ -134,8 +147,7 @@ class LiveTranscoder extends events_1.EventEmitter {
134
147
  this._session = session;
135
148
  }
136
149
  get channel() {
137
- var _a;
138
- return (_a = this.session) === null || _a === void 0 ? void 0 : _a.channel;
150
+ return this.session?.channel;
139
151
  }
140
152
  get relative_path() {
141
153
  if (this.id) {
@@ -163,22 +175,20 @@ class LiveTranscoder extends events_1.EventEmitter {
163
175
  * @param filename
164
176
  * @param auto_restart
165
177
  */
166
- static instance(device_1, channel_id_1, output_path_1) {
167
- return __awaiter(this, arguments, void 0, function* (device, channel_id, output_path, filename = 'stream.m3u8', auto_restart = true) {
168
- const info = yield device.info();
169
- if (!info) {
170
- throw new Error('Failed to retrieve device information');
171
- }
172
- const id = (0, crypto_1.createHash)('sha256')
173
- .update(JSON.stringify({ server_id: info.server_id, channel_id }))
174
- .digest('hex');
175
- let instance = this.instances.get(id);
176
- if (!instance) {
177
- instance = new LiveTranscoder(id, device, channel_id, output_path, filename, auto_restart);
178
- this.instances.set(id, instance);
179
- }
180
- return instance;
181
- });
178
+ static async instance(device, channel_id, output_path, filename = 'stream.m3u8', auto_restart = true) {
179
+ const info = await device.info();
180
+ if (!info) {
181
+ throw new Error('Failed to retrieve device information');
182
+ }
183
+ const id = (0, crypto_1.createHash)('sha256')
184
+ .update(JSON.stringify({ server_id: info.server_id, channel_id }))
185
+ .digest('hex');
186
+ let instance = this.instances.get(id);
187
+ if (!instance) {
188
+ instance = new LiveTranscoder(id, device, channel_id, output_path, filename, auto_restart);
189
+ this.instances.set(id, instance);
190
+ }
191
+ return instance;
182
192
  }
183
193
  on(event, listener) {
184
194
  return super.on(event, listener);
@@ -196,47 +206,54 @@ class LiveTranscoder extends events_1.EventEmitter {
196
206
  *
197
207
  * If a session is successfully started, the live transcoder will attempt to start a new transcoding process.
198
208
  */
199
- start() {
200
- return __awaiter(this, void 0, void 0, function* () {
201
- if (this.active) {
202
- this._use_count++;
203
- this.emit('ready');
204
- return true;
205
- }
206
- this.session = yield this.device.watchChannel(this.channel_id);
207
- if (!this.session) {
208
- this.emit('error', new Error('Failed to start session'));
209
- return false;
210
- }
211
- this.timer = new timer_1.default((this.session.keepalive - 30) * 1000);
212
- this.timer.on('tick', () => __awaiter(this, void 0, void 0, function* () {
213
- if (this.session) {
214
- yield this.device.keepaliveSession(this.session);
215
- }
216
- }));
209
+ async start() {
210
+ if (this.active) {
217
211
  this._use_count++;
218
- const started = this.start_ffmpeg();
219
- if (started) {
220
- const check = () => setTimeout(() => {
221
- if ((0, fs_1.existsSync)(this.full_path)) {
222
- this.active = true;
223
- this.emit('ready');
224
- }
225
- else {
226
- check();
227
- }
228
- }, 100);
229
- check();
212
+ this.emit('ready');
213
+ return true;
214
+ }
215
+ this.session = await this.device.watchChannel(this.channel_id);
216
+ if (!this.session) {
217
+ this.emit('error', new Error('Failed to start session'));
218
+ return false;
219
+ }
220
+ const keepalive_interval = Math.max(this.session.keepalive - 30, LiveTranscoder.MIN_KEEPALIVE) * 1000;
221
+ this.timer = new timer_1.default(keepalive_interval);
222
+ this.timer.on('tick', async () => {
223
+ if (this.session) {
224
+ await this.device.keepaliveSession(this.session);
230
225
  }
231
- return started;
232
226
  });
227
+ this._use_count++;
228
+ this.restart_count = 0;
229
+ const started = this.start_ffmpeg();
230
+ if (started) {
231
+ const deadline = Date.now() + LiveTranscoder.READY_TIMEOUT;
232
+ const check = () => setTimeout(() => {
233
+ if ((0, fs_1.existsSync)(this.full_path)) {
234
+ this.active = true;
235
+ this.emit('ready');
236
+ }
237
+ else if (Date.now() >= deadline) {
238
+ this.emit('error', new Error('Timed out waiting for ffmpeg to produce output'));
239
+ this.emitter.emit('abort');
240
+ }
241
+ else {
242
+ check();
243
+ }
244
+ }, 100);
245
+ check();
246
+ }
247
+ return started;
233
248
  }
234
249
  /**
235
250
  * Stops the live transcoder.
236
251
  */
237
252
  stop() {
238
- this._use_count--;
239
- if (this.active && this.use_count <= 0) {
253
+ if (this._use_count > 0) {
254
+ this._use_count--;
255
+ }
256
+ if (this.active && this._use_count <= 0) {
240
257
  this.emitter.emit('abort');
241
258
  }
242
259
  }
@@ -262,28 +279,34 @@ class LiveTranscoder extends events_1.EventEmitter {
262
279
  windowsHide: false,
263
280
  stdio: ['pipe', 'ignore', 'ignore']
264
281
  });
265
- this.process.on('error', error => {
266
- this.emit('error', error);
282
+ const handle_restart = () => {
283
+ if (this.stopping) {
284
+ return;
285
+ }
267
286
  if (!this.auto_restart) {
268
287
  this.emitter.emit('abort');
288
+ return;
269
289
  }
270
- else {
271
- this.start_ffmpeg();
290
+ this.restart_count++;
291
+ if (this.restart_count > LiveTranscoder.MAX_RESTARTS) {
292
+ this.emit('error', new Error(`ffmpeg exceeded maximum restart attempts (${LiveTranscoder.MAX_RESTARTS})`));
293
+ this.emitter.emit('abort');
294
+ return;
272
295
  }
296
+ const delay = Math.min(1000 * Math.pow(2, this.restart_count - 1), 30_000);
297
+ setTimeout(() => this.start_ffmpeg(), delay);
298
+ };
299
+ this.process.on('error', error => {
300
+ this.emit('error', error);
301
+ handle_restart();
273
302
  });
274
303
  this.process.on('exit', code => {
275
304
  this.emit('exit', code);
276
- if (!this.auto_restart) {
277
- this.emitter.emit('abort');
278
- }
279
- else {
280
- this.start_ffmpeg();
281
- }
305
+ handle_restart();
282
306
  });
283
307
  return true;
284
308
  }
285
309
  }
286
- exports.LiveTranscoder = LiveTranscoder;
287
- LiveTranscoder.instances = new Map();
288
310
  exports.default = LiveTranscoder;
311
+ exports.LiveTranscoder = LiveTranscoder;
289
312
  //# sourceMappingURL=live_transcoder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"live_transcoder.js","sourceRoot":"","sources":["../src/live_transcoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live_transcoder.js","sourceRoot":"","sources":["../src/live_transcoder.ts"],"names":[],"mappings":"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"}
package/dist/tablo.d.ts CHANGED
@@ -189,13 +189,13 @@ export declare namespace Tablo {
189
189
  };
190
190
  export type Tuner = {
191
191
  in_use: boolean;
192
- channel: string | null;
192
+ channel: Channel | null;
193
193
  recording: string | null;
194
194
  channel_identifier: string | null;
195
195
  };
196
196
  export type Settings = {
197
197
  led: string;
198
- extended_live_recordings: boolean;
198
+ extend_live_recordings: boolean;
199
199
  auto_delete_recordings: boolean;
200
200
  exclude_duplicates: boolean;
201
201
  preferred_audio_track: string;