prismcast 1.2.0 → 1.3.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.
Files changed (129) hide show
  1. package/README.md +26 -1
  2. package/dist/app.js +29 -2
  3. package/dist/app.js.map +1 -1
  4. package/dist/browser/cdp.js +1 -1
  5. package/dist/browser/cdp.js.map +1 -1
  6. package/dist/browser/channelSelection.d.ts +14 -4
  7. package/dist/browser/channelSelection.js +48 -704
  8. package/dist/browser/channelSelection.js.map +1 -1
  9. package/dist/browser/index.d.ts +18 -4
  10. package/dist/browser/index.js +205 -39
  11. package/dist/browser/index.js.map +1 -1
  12. package/dist/browser/tuning/fox.d.ts +19 -0
  13. package/dist/browser/tuning/fox.js +61 -0
  14. package/dist/browser/tuning/fox.js.map +1 -0
  15. package/dist/browser/tuning/hbo.d.ts +22 -0
  16. package/dist/browser/tuning/hbo.js +182 -0
  17. package/dist/browser/tuning/hbo.js.map +1 -0
  18. package/dist/browser/tuning/hulu.d.ts +30 -0
  19. package/dist/browser/tuning/hulu.js +514 -0
  20. package/dist/browser/tuning/hulu.js.map +1 -0
  21. package/dist/browser/tuning/sling.d.ts +22 -0
  22. package/dist/browser/tuning/sling.js +287 -0
  23. package/dist/browser/tuning/sling.js.map +1 -0
  24. package/dist/browser/tuning/thumbnailRow.d.ts +18 -0
  25. package/dist/browser/tuning/thumbnailRow.js +107 -0
  26. package/dist/browser/tuning/thumbnailRow.js.map +1 -0
  27. package/dist/browser/tuning/tileClick.d.ts +18 -0
  28. package/dist/browser/tuning/tileClick.js +102 -0
  29. package/dist/browser/tuning/tileClick.js.map +1 -0
  30. package/dist/browser/tuning/youtubeTv.d.ts +17 -0
  31. package/dist/browser/tuning/youtubeTv.js +99 -0
  32. package/dist/browser/tuning/youtubeTv.js.map +1 -0
  33. package/dist/browser/video.d.ts +2 -2
  34. package/dist/browser/video.js +18 -8
  35. package/dist/browser/video.js.map +1 -1
  36. package/dist/channels/index.js +131 -12
  37. package/dist/channels/index.js.map +1 -1
  38. package/dist/config/profiles.d.ts +5 -5
  39. package/dist/config/profiles.js +35 -11
  40. package/dist/config/profiles.js.map +1 -1
  41. package/dist/config/providers.d.ts +48 -4
  42. package/dist/config/providers.js +182 -22
  43. package/dist/config/providers.js.map +1 -1
  44. package/dist/config/sites.d.ts +10 -0
  45. package/dist/config/sites.js +96 -17
  46. package/dist/config/sites.js.map +1 -1
  47. package/dist/config/userChannels.js +21 -3
  48. package/dist/config/userChannels.js.map +1 -1
  49. package/dist/config/userConfig.d.ts +2 -1
  50. package/dist/config/userConfig.js +12 -4
  51. package/dist/config/userConfig.js.map +1 -1
  52. package/dist/index.js +10 -4
  53. package/dist/index.js.map +1 -1
  54. package/dist/routes/auth.js +6 -0
  55. package/dist/routes/auth.js.map +1 -1
  56. package/dist/routes/config.d.ts +5 -0
  57. package/dist/routes/config.js +273 -35
  58. package/dist/routes/config.js.map +1 -1
  59. package/dist/routes/debug.d.ts +6 -0
  60. package/dist/routes/debug.js +274 -0
  61. package/dist/routes/debug.js.map +1 -0
  62. package/dist/routes/index.d.ts +1 -0
  63. package/dist/routes/index.js +3 -0
  64. package/dist/routes/index.js.map +1 -1
  65. package/dist/routes/logs.js +17 -5
  66. package/dist/routes/logs.js.map +1 -1
  67. package/dist/routes/root.js +507 -128
  68. package/dist/routes/root.js.map +1 -1
  69. package/dist/routes/theme.js +7 -0
  70. package/dist/routes/theme.js.map +1 -1
  71. package/dist/service/commands.js +8 -8
  72. package/dist/service/commands.js.map +1 -1
  73. package/dist/service/generators.js +22 -16
  74. package/dist/service/generators.js.map +1 -1
  75. package/dist/streaming/fmp4Segmenter.d.ts +7 -0
  76. package/dist/streaming/fmp4Segmenter.js +124 -15
  77. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  78. package/dist/streaming/hls.d.ts +74 -6
  79. package/dist/streaming/hls.js +212 -130
  80. package/dist/streaming/hls.js.map +1 -1
  81. package/dist/streaming/hlsSegments.js +11 -4
  82. package/dist/streaming/hlsSegments.js.map +1 -1
  83. package/dist/streaming/lifecycle.js +1 -1
  84. package/dist/streaming/lifecycle.js.map +1 -1
  85. package/dist/streaming/monitor.d.ts +1 -1
  86. package/dist/streaming/monitor.js +202 -53
  87. package/dist/streaming/monitor.js.map +1 -1
  88. package/dist/streaming/mp4Parser.d.ts +29 -1
  89. package/dist/streaming/mp4Parser.js +243 -18
  90. package/dist/streaming/mp4Parser.js.map +1 -1
  91. package/dist/streaming/mpegts.d.ts +5 -2
  92. package/dist/streaming/mpegts.js +122 -29
  93. package/dist/streaming/mpegts.js.map +1 -1
  94. package/dist/streaming/registry.d.ts +1 -1
  95. package/dist/streaming/registry.js.map +1 -1
  96. package/dist/streaming/setup.d.ts +13 -1
  97. package/dist/streaming/setup.js +136 -36
  98. package/dist/streaming/setup.js.map +1 -1
  99. package/dist/streaming/showInfo.js +9 -9
  100. package/dist/streaming/showInfo.js.map +1 -1
  101. package/dist/streaming/statusEmitter.js +5 -6
  102. package/dist/streaming/statusEmitter.js.map +1 -1
  103. package/dist/types/index.d.ts +16 -3
  104. package/dist/types/index.js +5 -1
  105. package/dist/types/index.js.map +1 -1
  106. package/dist/utils/debugFilter.d.ts +38 -0
  107. package/dist/utils/debugFilter.js +157 -0
  108. package/dist/utils/debugFilter.js.map +1 -0
  109. package/dist/utils/evaluate.js.map +1 -1
  110. package/dist/utils/ffmpeg.d.ts +5 -0
  111. package/dist/utils/ffmpeg.js +13 -2
  112. package/dist/utils/ffmpeg.js.map +1 -1
  113. package/dist/utils/fileLogger.d.ts +2 -1
  114. package/dist/utils/fileLogger.js +4 -2
  115. package/dist/utils/fileLogger.js.map +1 -1
  116. package/dist/utils/index.d.ts +1 -0
  117. package/dist/utils/index.js +1 -0
  118. package/dist/utils/index.js.map +1 -1
  119. package/dist/utils/logEmitter.d.ts +1 -0
  120. package/dist/utils/logEmitter.js.map +1 -1
  121. package/dist/utils/logger.d.ts +9 -8
  122. package/dist/utils/logger.js +52 -28
  123. package/dist/utils/logger.js.map +1 -1
  124. package/dist/utils/retry.d.ts +1 -1
  125. package/dist/utils/retry.js +3 -3
  126. package/dist/utils/retry.js.map +1 -1
  127. package/dist/utils/version.js +4 -9
  128. package/dist/utils/version.js.map +1 -1
  129. package/package.json +6 -6
@@ -2,7 +2,7 @@
2
2
  *
3
3
  * monitor.ts: Playback health monitoring for PrismCast.
4
4
  */
5
- import { EvaluateTimeoutError, LOG, formatError, getAbortSignal, isSessionClosedError, runWithStreamContext } from "../utils/index.js";
5
+ import { EvaluateTimeoutError, LOG, formatError, getAbortSignal, isSessionClosedError, runWithStreamContext, startTimer } from "../utils/index.js";
6
6
  import { buildVideoSelectorType, checkVideoPresence, enforceVideoVolume, ensurePlayback, findVideoContext, getVideoState, tuneToChannel, validateVideoElement } from "../browser/video.js";
7
7
  import { getChannelLogo, getShowName } from "./showInfo.js";
8
8
  import { getLastSegmentSize, getStream, getStreamMemoryUsage } from "./registry.js";
@@ -95,13 +95,17 @@ function formatRecoveryDuration(startTime) {
95
95
  * @returns User-friendly description.
96
96
  */
97
97
  function getIssueDescription(category) {
98
- if (category === "paused") {
99
- return "paused";
100
- }
101
- if (category === "buffering") {
102
- return "buffering";
98
+ switch (category) {
99
+ case "paused": {
100
+ return "paused";
101
+ }
102
+ case "buffering": {
103
+ return "buffering";
104
+ }
105
+ default: {
106
+ return "stalled";
107
+ }
103
108
  }
104
- return "stalled";
105
109
  }
106
110
  /**
107
111
  * Maps recovery level to method name.
@@ -109,17 +113,25 @@ function getIssueDescription(category) {
109
113
  * @returns The recovery method name.
110
114
  */
111
115
  function getRecoveryMethod(level) {
112
- if (level === 1) {
113
- return RECOVERY_METHODS.playUnmute;
114
- }
115
- if (level === 2) {
116
- return RECOVERY_METHODS.sourceReload;
116
+ switch (level) {
117
+ case 1: {
118
+ return RECOVERY_METHODS.playUnmute;
119
+ }
120
+ case 2: {
121
+ return RECOVERY_METHODS.sourceReload;
122
+ }
123
+ default: {
124
+ return RECOVERY_METHODS.pageNavigation;
125
+ }
117
126
  }
118
- return RECOVERY_METHODS.pageNavigation;
119
127
  }
120
128
  /**
121
129
  * Records a recovery attempt in the metrics. Uses the ATTEMPT_FIELDS mapping to find the correct counter field, eliminating the need for if/else chains. This
122
130
  * makes adding new recovery methods trivial - just add an entry to ATTEMPT_FIELDS.
131
+ *
132
+ * Note: Tab replacement calls this once per logical attempt even though it may internally retry the onTabReplacement callback. The retry is an implementation
133
+ * detail of executeTabReplacement, not a separate recovery attempt from the monitor's perspective. The circuit breaker likewise records one failure per logical
134
+ * attempt, not per callback invocation.
123
135
  * @param metrics - The metrics object to update.
124
136
  * @param method - The recovery method being attempted.
125
137
  */
@@ -294,6 +306,10 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
294
306
  // Number of consecutive checks where currentTime did not advance. We require multiple consecutive stalls before triggering recovery to avoid reacting to momentary
295
307
  // hiccups. Reset to 0 when progression is detected.
296
308
  let stallCount = 0;
309
+ // Number of consecutive checks where the video reports paused state. Like stallCount, we require multiple consecutive paused checks (> stallCountThreshold) before
310
+ // triggering recovery. This filters out transient rebuffer pauses where the player briefly pauses itself to refill its buffer and resumes on its own. Without this
311
+ // hysteresis, every transient rebuffer pause triggers an unnecessary L1 recovery (play/unmute) that logs noise but does nothing useful.
312
+ let pauseCount = 0;
297
313
  // Current escalation level (0-4). Level 0 means no recovery needed. Each time recovery is triggered, this increments to try increasingly aggressive actions.
298
314
  // Resets to 0 after sustained healthy playback.
299
315
  let escalationLevel = 0;
@@ -353,11 +369,18 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
353
369
  // escalate directly to tab replacement. This catches the case where recovery reports success but the MediaRecorder/FFmpeg pipeline has silently died.
354
370
  const SEGMENT_STALL_TIMEOUT = 10000; // 10 seconds.
355
371
  // Tiny segment detection thresholds. Used for continuous segment size monitoring to detect dead capture pipelines. When video capture dies but audio continues,
356
- // segments contain only audio data (~400KB for 3-second segments at 130Kbps AAC). Valid segments with video are 5-10MB. The 2MB threshold catches both completely
357
- // dead captures (18 bytes) and audio-only captures (~400KB) while providing a 2.5x safety margin against false positives on valid segments.
358
- const TINY_SEGMENT_THRESHOLD = 2097152; // 2MB - segments below this indicate dead or degraded capture.
372
+ // segments contain only audio data. Audio is transcoded at a controlled bitrate (max 512Kbps), so audio-only segments are at most ~192KB for 3-second segments.
373
+ // The 500KB threshold catches both dead captures (18 bytes) and audio-only captures while staying well below the smallest video preset (480p/3Mbps 750KB/segment).
374
+ const TINY_SEGMENT_THRESHOLD = 512000; // 500KB - segments below this indicate dead or degraded capture.
359
375
  const TINY_SEGMENT_COUNT_TRIGGER = 10; // Trigger recovery after 10 consecutive tiny segments (~20 seconds with 2-second segments).
376
+ // Fixed margin in milliseconds before the maxContinuousPlayback limit at which a proactive reload is triggered. Two minutes provides enough time for page
377
+ // navigation and video reinitialization to complete before the site enforces its cutoff.
378
+ const PROACTIVE_RELOAD_MARGIN_MS = 120000;
360
379
  let recoveryGraceUntil = 0;
380
+ // Timestamp of the most recent full page navigation. Used to calculate elapsed continuous playback for proactive reload when maxContinuousPlayback is configured.
381
+ // Initialized to Date.now() because the monitor starts immediately after tuneToChannel() succeeds in stream setup, meaning a page load just completed. Reset
382
+ // after any successful page navigation recovery or tab replacement, but NOT after source reloads (L2) which preserve the page's JavaScript context.
383
+ let lastPageNavigationTime = Date.now();
361
384
  // Pre-compute the selector type string for video element selection. This is passed to evaluate() calls.
362
385
  const selectorType = buildVideoSelectorType(profile);
363
386
  // Capture stream context for re-establishing on each interval tick. AsyncLocalStorage context is lost when entering setInterval callbacks.
@@ -458,6 +481,7 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
458
481
  function resetRecoveryCounters() {
459
482
  consecutiveTimeouts = 0;
460
483
  consecutiveNavigationFailures = 0;
484
+ pauseCount = 0;
461
485
  videoNotFoundCount = 0;
462
486
  stallCount = 0;
463
487
  }
@@ -492,9 +516,56 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
492
516
  }
493
517
  return { outcome: "failed" };
494
518
  }
519
+ /**
520
+ * Applies successful tab replacement state. Updates page and context references, logs recovery duration, records metrics, and resets all failure/escalation state
521
+ * for the fresh tab. Consolidated here so the try and catch paths in executeTabReplacement share a single implementation.
522
+ * @param result - The successful tab replacement result containing the new page and context.
523
+ */
524
+ function applyTabReplacementSuccess(result) {
525
+ currentPage = result.page;
526
+ currentContext = result.context;
527
+ const duration = formatRecoveryDuration(metrics.currentRecoveryStartTime ?? Date.now());
528
+ LOG.info("Recovered in %s via %s.", duration, RECOVERY_METHODS.tabReplacement);
529
+ recordRecoverySuccess(metrics, RECOVERY_METHODS.tabReplacement);
530
+ // Full state reset for fresh tab.
531
+ lastPageNavigationTime = Date.now();
532
+ resetRecoveryCounters();
533
+ resetEscalationState();
534
+ resetSegmentMonitoringState();
535
+ setRecoveryGracePeriod(3);
536
+ resetCircuitBreaker(circuitBreaker);
537
+ }
538
+ /**
539
+ * Handles tab replacement failure after all retry attempts are exhausted. Clears stale recovery metrics (preventing ghost "Recovered" logs from the
540
+ * deferred-success check), runs the circuit breaker, and detects zombie streams where the old page was destroyed but no replacement was created.
541
+ * @param context - Description of the failure for circuit breaker logging.
542
+ * @returns The tab replacement outcome (failed or terminated).
543
+ */
544
+ function handleExhaustedTabReplacement(context) {
545
+ // Clear stale recovery metrics so the deferred-success check does not falsely log "Recovered" from leftover state set by recordRecoveryAttempt.
546
+ metrics.currentRecoveryStartTime = null;
547
+ metrics.currentRecoveryMethod = null;
548
+ LOG.warn("Tab replacement unsuccessful after retry.");
549
+ const failureOutcome = handleTabReplacementFailure(context);
550
+ // If the circuit breaker did not trip but the old page is gone (handler destroyed it before createPageWithCapture failed), the stream is unrecoverable. The
551
+ // next monitor tick would silently clear the interval via currentPage.isClosed() with no termination log, no status emission, and no cleanup — creating a
552
+ // zombie entry in the registry. Terminate explicitly instead.
553
+ if ((failureOutcome.outcome === "failed") && currentPage.isClosed()) {
554
+ LOG.error("Tab replacement failed and old page is closed. Stream is unrecoverable. Terminating stream.");
555
+ clearInterval(interval);
556
+ onCircuitBreak();
557
+ return { outcome: "terminated" };
558
+ }
559
+ return failureOutcome;
560
+ }
495
561
  /**
496
562
  * Executes tab replacement recovery with full error handling. This unified helper handles all tab replacement triggers (tiny segments, stalled capture, unresponsive
497
563
  * tab) consistently, including metrics recording, success/failure logging, circuit breaker checks, and state resets.
564
+ *
565
+ * On failure, retries onTabReplacement once before giving up. The handler destroys old resources (capture, segmenter, FFmpeg, page) before calling
566
+ * createPageWithCapture, so a retry is the only chance to save the stream when the first attempt fails. All handler cleanup steps are idempotent on retry:
567
+ * rawCaptureStream.destroyed guard, segmenter stop() checks state.stopped, FFmpeg kill() checks ffmpeg.killed, page close checks !oldPage.isClosed(), and
568
+ * unregisterManagedPage is idempotent.
498
569
  * @param issueType - Description of what triggered the replacement (for logging and UI display).
499
570
  * @returns The tab replacement outcome.
500
571
  */
@@ -508,34 +579,44 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
508
579
  lastRecoveryTime = Date.now();
509
580
  lastIssueType = issueType;
510
581
  lastIssueTime = Date.now();
582
+ const tabRecoveryElapsed = startTimer();
511
583
  recordRecoveryAttempt(metrics, RECOVERY_METHODS.tabReplacement);
512
584
  try {
513
- const result = await onTabReplacement();
585
+ let result = await onTabReplacement();
586
+ // First attempt failed — retry once. See idempotency notes in the JSDoc above.
587
+ if (!result) {
588
+ LOG.debug("recovery:tab", "Tab replacement attempt 1/2 failed. Retrying...");
589
+ try {
590
+ result = await onTabReplacement();
591
+ }
592
+ catch (retryError) {
593
+ LOG.debug("recovery:tab", "Tab replacement attempt 2/2 failed: %s.", formatError(retryError));
594
+ }
595
+ }
514
596
  if (result) {
515
- // Success: update references and reset state.
516
- currentPage = result.page;
517
- currentContext = result.context;
518
- const duration = formatRecoveryDuration(metrics.currentRecoveryStartTime ?? Date.now());
519
- LOG.info("Recovered in %s via %s.", duration, RECOVERY_METHODS.tabReplacement);
520
- recordRecoverySuccess(metrics, RECOVERY_METHODS.tabReplacement);
521
- // Full state reset for fresh tab.
522
- resetRecoveryCounters();
523
- resetEscalationState();
524
- resetSegmentMonitoringState();
525
- setRecoveryGracePeriod(3);
526
- resetCircuitBreaker(circuitBreaker);
597
+ applyTabReplacementSuccess(result);
527
598
  return { outcome: "success" };
528
599
  }
529
- // Failure: null result from callback.
530
- LOG.warn("Tab replacement unsuccessful.");
531
- return handleTabReplacementFailure("tab replacement unsuccessful");
600
+ return handleExhaustedTabReplacement("tab replacement unsuccessful");
532
601
  }
533
602
  catch (error) {
534
- // Error: exception during replacement.
535
- LOG.warn("Tab replacement failed: %s.", formatError(error));
536
- return handleTabReplacementFailure("tab replacement error");
603
+ // Unexpected error (not from onTabReplacement — those are caught internally by the handler in hls.ts and return null). Guard against registry corruption,
604
+ // getStream failures, or other unexpected errors.
605
+ LOG.debug("recovery:tab", "Tab replacement attempt 1/2 failed: %s. Retrying...", formatError(error));
606
+ try {
607
+ const retryResult = await onTabReplacement();
608
+ if (retryResult) {
609
+ applyTabReplacementSuccess(retryResult);
610
+ return { outcome: "success" };
611
+ }
612
+ }
613
+ catch (retryError) {
614
+ LOG.debug("recovery:tab", "Tab replacement attempt 2/2 failed: %s.", formatError(retryError));
615
+ }
616
+ return handleExhaustedTabReplacement("tab replacement error");
537
617
  }
538
618
  finally {
619
+ LOG.debug("timing:recovery", "Tab replacement completed. Total: %sms.", tabRecoveryElapsed());
539
620
  finalizeTabReplacement();
540
621
  }
541
622
  }
@@ -550,6 +631,7 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
550
631
  * @returns Recovery result with the new context if successful.
551
632
  */
552
633
  async function performPageNavigationRecovery() {
634
+ const navRecoveryElapsed = startTimer();
553
635
  // Track page count before navigation to detect unexpected new tabs (popups, ads).
554
636
  const browser = currentPage.browser();
555
637
  const pageCountBefore = (await browser.pages()).length;
@@ -560,24 +642,27 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
560
642
  // Check for unexpected new tabs created during tuning.
561
643
  const pageCountAfter = (await browser.pages()).length;
562
644
  if (pageCountAfter > pageCountBefore) {
563
- LOG.warn("Detected %s new tab(s) created during navigation.", pageCountAfter - pageCountBefore);
645
+ LOG.debug("recovery:nav", "Detected %s new tab(s) created during navigation.", pageCountAfter - pageCountBefore);
564
646
  }
565
647
  // Validate that we're on the expected page.
566
648
  const currentUrl = currentPage.url();
567
649
  const expectedHostname = new URL(url).hostname;
568
- if (currentUrl.indexOf(expectedHostname) === -1) {
569
- LOG.warn("Page URL after navigation (%s) does not match expected hostname.", currentUrl);
650
+ if (!currentUrl.includes(expectedHostname)) {
651
+ LOG.debug("recovery:nav", "Page URL after navigation (%s) does not match expected hostname.", currentUrl);
570
652
  }
571
653
  // Validate that the video element is accessible and has reasonable state.
572
654
  const validationState = await validateVideoElement(newContext, selectorType);
573
655
  if (validationState.found) {
656
+ LOG.debug("timing:recovery", "Page navigation recovery succeeded. Total: %sms.", navRecoveryElapsed());
574
657
  return { newContext, success: true };
575
658
  }
576
659
  LOG.warn("Page navigation completed but video element not found in new context.");
660
+ LOG.debug("timing:recovery", "Page navigation recovery failed (no video). Total: %sms.", navRecoveryElapsed());
577
661
  return { success: false };
578
662
  }
579
663
  catch (error) {
580
664
  LOG.warn("Failed to reinitialize video after page navigation: %s.", formatError(error));
665
+ LOG.debug("timing:recovery", "Page navigation recovery failed (error). Total: %sms.", navRecoveryElapsed());
581
666
  return { success: false };
582
667
  }
583
668
  }
@@ -633,7 +718,7 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
633
718
  const errorMessage = formatError(stateError);
634
719
  const isContextDestroyed = ["context", "destroyed", "detached", "target closed"].some((term) => errorMessage.toLowerCase().includes(term));
635
720
  if (isContextDestroyed) {
636
- LOG.warn("Video context was invalidated (frame detached). Will re-search for video.");
721
+ LOG.debug("recovery:context", "Video context was invalidated (frame detached). Will re-search for video.");
637
722
  contextInvalidated = true;
638
723
  }
639
724
  else {
@@ -645,7 +730,7 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
645
730
  const state = stateInfo ? { ...stateInfo, time: stateInfo.currentTime } : null;
646
731
  // If context was invalidated (frame detached), immediately try to find the video in a new context.
647
732
  if (contextInvalidated) {
648
- LOG.info("Re-searching for video after context invalidation.");
733
+ LOG.debug("recovery:context", "Re-searching for video after context invalidation.");
649
734
  try {
650
735
  const newContext = await findVideoContext(currentPage, profile);
651
736
  const validationState = await validateVideoElement(newContext, selectorType);
@@ -704,7 +789,7 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
704
789
  }
705
790
  // After 2+ failures, try re-searching frames to see if video moved to a different context.
706
791
  if (videoNotFoundCount === 2) {
707
- LOG.info("Re-searching frames for video element.");
792
+ LOG.debug("recovery:context", "Re-searching frames for video element.");
708
793
  try {
709
794
  const newContext = await findVideoContext(currentPage, profile);
710
795
  const validationState = await validateVideoElement(newContext, selectorType);
@@ -767,6 +852,7 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
767
852
  LOG.info("Recovered in %s via %s.", duration, RECOVERY_METHODS.pageNavigation);
768
853
  recordRecoverySuccess(metrics, RECOVERY_METHODS.pageNavigation);
769
854
  // Reset state after successful page navigation recovery.
855
+ lastPageNavigationTime = Date.now();
770
856
  resetRecoveryCounters();
771
857
  resetEscalationState();
772
858
  resetSegmentMonitoringState();
@@ -855,12 +941,11 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
855
941
  wasInTinySegmentState = true;
856
942
  if (consecutiveTinySegments >= TINY_SEGMENT_COUNT_TRIGGER) {
857
943
  LOG.warn("Detected %d consecutive tiny segments (%d bytes). Capture pipeline appears dead.", consecutiveTinySegments, segmentSize);
858
- // Trigger tab replacement if available, otherwise let circuit breaker handle it via segmentProductionStalled.
944
+ // Trigger tab replacement if available, otherwise let circuit breaker handle it via segmentProductionStalled. Return unconditionally after tab
945
+ // replacement (matching stalled-capture and unresponsive-tab triggers) to avoid falling through the rest of the tick with stale pre-replacement state.
859
946
  if (onTabReplacement && !recoveryInProgress) {
860
- const tabResult = await executeTabReplacement("tiny segments");
861
- if (tabResult.outcome === "terminated") {
862
- return;
863
- }
947
+ await executeTabReplacement("tiny segments");
948
+ return;
864
949
  }
865
950
  else if (!onTabReplacement) {
866
951
  // No tab replacement callback - set stalled flag for circuit breaker.
@@ -872,7 +957,7 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
872
957
  // Valid segment size. Check for spontaneous recovery from tiny segment state. We don't mark discontinuity here - only tab replacement marks discontinuity.
873
958
  // Self-healing may be transient and not require decoder reset.
874
959
  if (wasInTinySegmentState) {
875
- LOG.debug("Segment production self-healed (%d bytes).", segmentSize);
960
+ LOG.debug("recovery:segments", "Segment production self-healed (%d bytes).", segmentSize);
876
961
  }
877
962
  // Reset tiny segment tracking.
878
963
  consecutiveTinySegments = 0;
@@ -885,7 +970,7 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
885
970
  * issues), we re-minimize to reduce GPU usage.
886
971
  */
887
972
  if (pendingReMinimize && isProgressing && !state.paused && !state.error && !state.ended) {
888
- LOG.debug("Re-minimizing browser window after successful recovery.");
973
+ LOG.debug("recovery", "Re-minimizing browser window after successful recovery.");
889
974
  pendingReMinimize = false;
890
975
  await resizeAndMinimizeWindow(currentPage, true);
891
976
  }
@@ -900,14 +985,25 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
900
985
  stallCount = 0;
901
986
  }
902
987
  /*
988
+ * Pause counter management. We increment pauseCount when video.paused is true and reset when it clears. This provides the same hysteresis as stall detection,
989
+ * filtering out transient rebuffer pauses (where the player briefly pauses to refill its buffer) while still catching genuine persistent pauses.
990
+ */
991
+ if (state.paused) {
992
+ pauseCount++;
993
+ }
994
+ else {
995
+ pauseCount = 0;
996
+ }
997
+ /*
903
998
  * Recovery decision. We trigger recovery when any of these conditions are met AND we're not within the recovery grace period:
904
999
  * - Video has an error state
905
1000
  * - Video ended (live streams shouldn't end)
906
- * - Video is paused and not just buffering
1001
+ * - Video is paused persistently (pauseCount exceeds threshold and not just buffering)
907
1002
  * - Video is stalled for too long (stallCount exceeds threshold and not in buffering grace)
908
1003
  * - Segment production has stalled after recovery (capture pipeline dead)
909
1004
  */
910
- const needsRecovery = !withinRecoveryGrace && (state.error || state.ended || (state.paused && !withinBufferingGrace) ||
1005
+ const needsRecovery = !withinRecoveryGrace && (state.error || state.ended ||
1006
+ (state.paused && !withinBufferingGrace && (pauseCount > CONFIG.playback.stallCountThreshold)) ||
911
1007
  (!isProgressing && !withinBufferingGrace && (stallCount > CONFIG.playback.stallCountThreshold)) ||
912
1008
  segmentProductionStalled);
913
1009
  /*
@@ -933,6 +1029,58 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
933
1029
  }
934
1030
  }
935
1031
  /*
1032
+ * Proactive page reload. Some streaming sites enforce a maximum continuous playback duration (e.g., NBC.com cuts streams after 4 hours). When a domain
1033
+ * configures maxContinuousPlayback, we proactively reload the page before the site's limit expires to maintain uninterrupted streaming. The reload triggers
1034
+ * PROACTIVE_RELOAD_MARGIN_MS (2 minutes) before the configured limit, giving enough time for page navigation and video reinitialization.
1035
+ *
1036
+ * This check runs only when playback is healthy (escalationLevel === 0), not within a recovery grace period, and progressing normally. If recovery is already
1037
+ * in progress, the ongoing recovery will eventually perform a page navigation if needed. The page reload rate limit is also checked to avoid consuming reload
1038
+ * budget that error recovery needs. The timer resets after any successful full page navigation (proactive or recovery-triggered).
1039
+ */
1040
+ if ((profile.maxContinuousPlayback !== null) && (escalationLevel === 0) && !withinRecoveryGrace && isProgressing && !state.paused && !state.error &&
1041
+ !state.ended) {
1042
+ const maxPlaybackMs = profile.maxContinuousPlayback * 3600000;
1043
+ const elapsedMs = now - lastPageNavigationTime;
1044
+ if (elapsedMs >= (maxPlaybackMs - PROACTIVE_RELOAD_MARGIN_MS)) {
1045
+ const elapsedHours = (elapsedMs / 3600000).toFixed(1);
1046
+ LOG.info("Proactive reload after %sh of continuous playback (site limit: %sh). Reloading page to prevent stream cutoff.", elapsedHours, String(profile.maxContinuousPlayback));
1047
+ recoveryInProgress = true;
1048
+ // Check page reload rate limit before attempting. Proactive reload is best-effort maintenance — if the reload budget is exhausted from recent error
1049
+ // recoveries, we gracefully yield. If the site eventually cuts the stream, normal error recovery handles it.
1050
+ const reloadWindow = now - CONFIG.playback.pageReloadWindow;
1051
+ pageReloadTimestamps = pageReloadTimestamps.filter((ts) => ts > reloadWindow);
1052
+ if (pageReloadTimestamps.length >= CONFIG.playback.maxPageReloads) {
1053
+ LOG.warn("Proactive reload deferred — page navigation rate limit reached (%s in %s minutes).", CONFIG.playback.maxPageReloads, Math.round(CONFIG.playback.pageReloadWindow / 60000));
1054
+ // Set a grace period to prevent this deferral from re-triggering every 2 seconds while the rate limit remains in effect. The 10-second L3 grace
1055
+ // period spaces out re-checks, and the rate-limit window (default 15 minutes) will eventually expire old timestamps to allow the proactive reload. We
1056
+ // set recoveryGraceUntil directly rather than calling setRecoveryGracePeriod() because no recovery action was performed — the window state is unchanged
1057
+ // and pendingReMinimize should not be set.
1058
+ recoveryGraceUntil = now + recoveryGracePeriods[3];
1059
+ recoveryInProgress = false;
1060
+ emitStatusUpdate();
1061
+ return;
1062
+ }
1063
+ pageReloadTimestamps.push(now);
1064
+ const recoveryResult = await performPageNavigationRecovery();
1065
+ // Page navigation disrupted the video stream. Mark a discontinuity so HLS clients resynchronize their decoders.
1066
+ markStreamDiscontinuity();
1067
+ setRecoveryGracePeriod(3);
1068
+ if (recoveryResult.success && recoveryResult.newContext) {
1069
+ currentContext = recoveryResult.newContext;
1070
+ lastPageNavigationTime = Date.now();
1071
+ LOG.info("Proactive reload completed successfully.");
1072
+ resetRecoveryCounters();
1073
+ resetSegmentMonitoringState();
1074
+ }
1075
+ else {
1076
+ LOG.warn("Proactive reload unsuccessful. Will retry after recovery grace period.");
1077
+ }
1078
+ recoveryInProgress = false;
1079
+ emitStatusUpdate();
1080
+ return;
1081
+ }
1082
+ }
1083
+ /*
936
1084
  * Recovery execution. When recovery is needed, we update circuit breaker state, determine the appropriate recovery level based on issue type and history, and
937
1085
  * execute the recovery action. The recovery system is issue-aware:
938
1086
  * - Paused issues try L1 (play/unmute) first since it works ~50% of the time for paused state
@@ -1036,7 +1184,7 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
1036
1184
  // Safety check: If page navigation has failed twice consecutively, fall back to source reload. This prevents getting stuck in a loop when navigation
1037
1185
  // itself is broken (e.g., network issues, site blocking).
1038
1186
  if (consecutiveNavigationFailures >= 2) {
1039
- LOG.error("Page navigation has failed %s consecutive times. Falling back to source reload recovery.", consecutiveNavigationFailures);
1187
+ LOG.warn("Page navigation has failed %s consecutive times. Falling back to source reload recovery.", consecutiveNavigationFailures);
1040
1188
  escalationLevel = 2;
1041
1189
  consecutiveNavigationFailures = 0;
1042
1190
  // Reset source reload tracking so the fallback L2 gets a fair chance. Without this, the next recovery cycle would skip L2 and try L3 again.
@@ -1050,7 +1198,7 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
1050
1198
  return ts > reloadWindow;
1051
1199
  });
1052
1200
  if (pageReloadTimestamps.length >= CONFIG.playback.maxPageReloads) {
1053
- LOG.error("Exceeded maximum page navigations (%s in %s minutes). Falling back to source reload.", CONFIG.playback.maxPageReloads, Math.round(CONFIG.playback.pageReloadWindow / 60000));
1201
+ LOG.warn("Exceeded maximum page navigations (%s in %s minutes). Falling back to source reload.", CONFIG.playback.maxPageReloads, Math.round(CONFIG.playback.pageReloadWindow / 60000));
1054
1202
  escalationLevel = 2;
1055
1203
  // Reset source reload tracking so the fallback L2 gets a fair chance.
1056
1204
  sourceReloadAttempted = false;
@@ -1071,6 +1219,7 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
1071
1219
  LOG.info("Recovered in %s via %s.", duration, RECOVERY_METHODS.pageNavigation);
1072
1220
  recordRecoverySuccess(metrics, RECOVERY_METHODS.pageNavigation);
1073
1221
  // Reset state after successful page navigation recovery.
1222
+ lastPageNavigationTime = Date.now();
1074
1223
  resetRecoveryCounters();
1075
1224
  resetEscalationState();
1076
1225
  resetSegmentMonitoringState();
@@ -1120,7 +1269,7 @@ export function monitorPlaybackHealth(page, context, profile, url, streamId, str
1120
1269
  // Log abort errors at debug level since they're expected during stream termination. Log other errors at error level.
1121
1270
  const errorMessage = formatError(error);
1122
1271
  if (errorMessage.includes("aborted")) {
1123
- LOG.debug("Monitor check aborted: %s.", errorMessage);
1272
+ LOG.debug("recovery", "Monitor check aborted: %s.", errorMessage);
1124
1273
  }
1125
1274
  else {
1126
1275
  LOG.error("Monitor check failed: %s.", errorMessage);
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/streaming/monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/streaming/monitor.ts"],"names":[],"mappings":"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"}