prismcast 1.2.1 → 1.3.1

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 (128) 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 +31 -1
  7. package/dist/browser/channelSelection.js +94 -977
  8. package/dist/browser/channelSelection.js.map +1 -1
  9. package/dist/browser/index.d.ts +18 -4
  10. package/dist/browser/index.js +202 -36
  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 +82 -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 +207 -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 +526 -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 +298 -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 +142 -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 +19 -9
  35. package/dist/browser/video.js.map +1 -1
  36. package/dist/channels/index.js +55 -9
  37. package/dist/channels/index.js.map +1 -1
  38. package/dist/config/profiles.js +11 -0
  39. package/dist/config/profiles.js.map +1 -1
  40. package/dist/config/providers.d.ts +46 -1
  41. package/dist/config/providers.js +178 -13
  42. package/dist/config/providers.js.map +1 -1
  43. package/dist/config/sites.d.ts +2 -0
  44. package/dist/config/sites.js +43 -14
  45. package/dist/config/sites.js.map +1 -1
  46. package/dist/config/userChannels.js +21 -3
  47. package/dist/config/userChannels.js.map +1 -1
  48. package/dist/config/userConfig.d.ts +2 -1
  49. package/dist/config/userConfig.js +12 -4
  50. package/dist/config/userConfig.js.map +1 -1
  51. package/dist/index.js +10 -4
  52. package/dist/index.js.map +1 -1
  53. package/dist/routes/auth.js +6 -0
  54. package/dist/routes/auth.js.map +1 -1
  55. package/dist/routes/config.d.ts +5 -0
  56. package/dist/routes/config.js +277 -35
  57. package/dist/routes/config.js.map +1 -1
  58. package/dist/routes/debug.d.ts +6 -0
  59. package/dist/routes/debug.js +274 -0
  60. package/dist/routes/debug.js.map +1 -0
  61. package/dist/routes/index.d.ts +1 -0
  62. package/dist/routes/index.js +3 -0
  63. package/dist/routes/index.js.map +1 -1
  64. package/dist/routes/logs.js +17 -5
  65. package/dist/routes/logs.js.map +1 -1
  66. package/dist/routes/root.js +506 -127
  67. package/dist/routes/root.js.map +1 -1
  68. package/dist/routes/theme.js +7 -0
  69. package/dist/routes/theme.js.map +1 -1
  70. package/dist/service/commands.js +8 -8
  71. package/dist/service/commands.js.map +1 -1
  72. package/dist/service/generators.js +22 -16
  73. package/dist/service/generators.js.map +1 -1
  74. package/dist/streaming/fmp4Segmenter.d.ts +7 -0
  75. package/dist/streaming/fmp4Segmenter.js +124 -15
  76. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  77. package/dist/streaming/hls.d.ts +74 -6
  78. package/dist/streaming/hls.js +210 -129
  79. package/dist/streaming/hls.js.map +1 -1
  80. package/dist/streaming/hlsSegments.js +11 -4
  81. package/dist/streaming/hlsSegments.js.map +1 -1
  82. package/dist/streaming/lifecycle.js +1 -1
  83. package/dist/streaming/lifecycle.js.map +1 -1
  84. package/dist/streaming/monitor.d.ts +1 -1
  85. package/dist/streaming/monitor.js +120 -49
  86. package/dist/streaming/monitor.js.map +1 -1
  87. package/dist/streaming/mp4Parser.d.ts +29 -1
  88. package/dist/streaming/mp4Parser.js +243 -18
  89. package/dist/streaming/mp4Parser.js.map +1 -1
  90. package/dist/streaming/mpegts.d.ts +5 -2
  91. package/dist/streaming/mpegts.js +122 -29
  92. package/dist/streaming/mpegts.js.map +1 -1
  93. package/dist/streaming/registry.d.ts +1 -1
  94. package/dist/streaming/registry.js.map +1 -1
  95. package/dist/streaming/setup.d.ts +13 -1
  96. package/dist/streaming/setup.js +136 -36
  97. package/dist/streaming/setup.js.map +1 -1
  98. package/dist/streaming/showInfo.js +9 -9
  99. package/dist/streaming/showInfo.js.map +1 -1
  100. package/dist/streaming/statusEmitter.js +5 -6
  101. package/dist/streaming/statusEmitter.js.map +1 -1
  102. package/dist/types/index.d.ts +12 -3
  103. package/dist/types/index.js +5 -1
  104. package/dist/types/index.js.map +1 -1
  105. package/dist/utils/debugFilter.d.ts +38 -0
  106. package/dist/utils/debugFilter.js +157 -0
  107. package/dist/utils/debugFilter.js.map +1 -0
  108. package/dist/utils/evaluate.js.map +1 -1
  109. package/dist/utils/ffmpeg.d.ts +5 -0
  110. package/dist/utils/ffmpeg.js +13 -2
  111. package/dist/utils/ffmpeg.js.map +1 -1
  112. package/dist/utils/fileLogger.d.ts +2 -1
  113. package/dist/utils/fileLogger.js +4 -2
  114. package/dist/utils/fileLogger.js.map +1 -1
  115. package/dist/utils/index.d.ts +1 -0
  116. package/dist/utils/index.js +1 -0
  117. package/dist/utils/index.js.map +1 -1
  118. package/dist/utils/logEmitter.d.ts +1 -0
  119. package/dist/utils/logEmitter.js.map +1 -1
  120. package/dist/utils/logger.d.ts +9 -8
  121. package/dist/utils/logger.js +52 -28
  122. package/dist/utils/logger.js.map +1 -1
  123. package/dist/utils/retry.d.ts +1 -1
  124. package/dist/utils/retry.js +3 -3
  125. package/dist/utils/retry.js.map +1 -1
  126. package/dist/utils/version.js +4 -9
  127. package/dist/utils/version.js.map +1 -1
  128. package/package.json +6 -6
@@ -0,0 +1,142 @@
1
+ import { LOG, evaluateWithAbort, formatError } from "../../utils/index.js";
2
+ import { CONFIG } from "../../config/index.js";
3
+ import { logAvailableChannels } from "../channelSelection.js";
4
+ // Base URL for YouTube TV watch page navigation.
5
+ const YOUTUBE_TV_BASE_URL = "https://tv.youtube.com";
6
+ // Known alternate channel names for affiliates that vary by market. CW appears as "WGN" in some markets. PBS affiliates appear under local call letters (e.g.,
7
+ // WTTW, KQED) or branded names (e.g., "Cascade PBS", "Lakeshore PBS") rather than "PBS", so we list the major market call letters and branded names to cover most
8
+ // users. Each alternate is tried after the primary name fails both exact and prefix+digit matching. Users in smaller markets override via custom channel entries with
9
+ // their local call letters as the channelSelector.
10
+ const CHANNEL_ALTERNATES = {
11
+ "cw": ["WGN"],
12
+ "pbs": [
13
+ "Cascade PBS", "GBH", "KAET", "KBTC", "KCET", "KCTS", "KERA", "KLCS", "KOCE", "KPBS", "KQED", "KRMA", "KUHT", "KVIE", "Lakeshore PBS", "MPT", "NJ PBS",
14
+ "THIRTEEN", "TPT", "WETA", "WGBH", "WHYY", "WLIW", "WNED", "WNET", "WNIT", "WPBA", "WPBT", "WTTW", "WTVS", "WXEL"
15
+ ]
16
+ };
17
+ /**
18
+ * YouTube TV grid strategy: finds a channel in the non-virtualized EPG grid at tv.youtube.com/live by querying the aria-label attribute on thumbnail endpoint
19
+ * elements. All ~256 channel rows are present in the DOM simultaneously, so a single querySelector locates the target channel. The strategy extracts the watch
20
+ * URL from the matching anchor element and navigates directly — no scrolling, clicking, or timing workarounds needed.
21
+ *
22
+ * The selection process:
23
+ * 1. Wait for ytu-epg-row elements to confirm the guide grid has loaded.
24
+ * 2. Find the target channel using a case-insensitive aria-label CSS selector.
25
+ * 3. Extract the href attribute and validate it starts with "watch/" (not "live" or "browse/").
26
+ * 4. Navigate to the full watch URL via page.goto().
27
+ * @param page - The Puppeteer page object.
28
+ * @param profile - The resolved site profile with a non-null channelSelector (channel name, e.g., "CNN", "ESPN", "NBC").
29
+ * @returns Result object with success status and optional failure reason.
30
+ */
31
+ export async function youtubeGridStrategy(page, profile) {
32
+ const channelName = profile.channelSelector;
33
+ // Wait for the EPG grid to render. All ~256 rows load simultaneously (no virtualization), so once any row exists, all channels are queryable.
34
+ try {
35
+ await page.waitForSelector("ytu-epg-row", { timeout: CONFIG.streaming.videoTimeout });
36
+ }
37
+ catch {
38
+ return { reason: "YouTube TV guide grid did not load.", success: false };
39
+ }
40
+ // Build the list of names to try: the primary name first, then any known alternates for markets where the affiliate uses a different name. The eslint disable is
41
+ // needed because TypeScript's Record indexing doesn't capture that the key may not exist at runtime.
42
+ const alternates = CHANNEL_ALTERNATES[channelName.toLowerCase()];
43
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
44
+ const namesToTry = alternates ? [channelName, ...alternates] : [channelName];
45
+ // Find the watch URL for the target channel. For each name in the list, we try three matching tiers:
46
+ //
47
+ // 1. Exact match: aria-label="watch {Name}" (case-insensitive).
48
+ // 2. Prefix+digit: aria-label starts with "watch {Name} " followed by a digit. This catches local affiliates displayed as "{Network} {Number}" (e.g., "NBC 5",
49
+ // "ABC 7", "FOX 32") while excluding unrelated channels (e.g., "NBC Sports Chicago").
50
+ // 3. Parenthetical suffix: aria-label starts with "watch {Name} (" to match timezone/region variants like "Magnolia Network (Pacific)" or
51
+ // "The Filipino Channel (Pacific)".
52
+ const watchPath = await evaluateWithAbort(page, (names) => {
53
+ // Helper to extract and validate a watch URL from an anchor element. Returns the href if it points to a streamable watch page, null otherwise.
54
+ const extractWatchHref = (anchor) => {
55
+ if (!anchor) {
56
+ return null;
57
+ }
58
+ const href = anchor.getAttribute("href");
59
+ // Validate the href points to a streamable watch page. Channels with "live" or "browse/" hrefs are premium add-ons or info pages that cannot be streamed.
60
+ if (!href?.startsWith("watch/")) {
61
+ return null;
62
+ }
63
+ return href;
64
+ };
65
+ // Try each name in order. The primary channel name is tried first, followed by any known alternates.
66
+ for (const name of names) {
67
+ // Tier 1: Exact match. The CSS "i" flag enables case-insensitive matching to handle variations in capitalization between the channel selector and the guide.
68
+ const exactSelector = "ytu-endpoint.tenx-thumb[aria-label=\"watch " + name + "\" i] a";
69
+ const exactResult = extractWatchHref(document.querySelector(exactSelector));
70
+ if (exactResult) {
71
+ return exactResult;
72
+ }
73
+ // Tier 2: Prefix + digit match for local affiliates. Find all thumbnails whose aria-label starts with "watch {Name} " and filter to those where the next
74
+ // character is a digit, matching the "{Network} {Number}" pattern (e.g., "NBC 5", "ABC 7") while excluding unrelated channels (e.g., "NBC Sports Chicago").
75
+ const prefixSelector = "ytu-endpoint.tenx-thumb[aria-label^=\"watch " + name + " \" i] a";
76
+ const candidates = document.querySelectorAll(prefixSelector);
77
+ const prefix = "watch " + name + " ";
78
+ for (const candidate of Array.from(candidates)) {
79
+ const parent = candidate.closest("ytu-endpoint.tenx-thumb");
80
+ const label = parent?.getAttribute("aria-label") ?? "";
81
+ const suffix = label.slice(prefix.length);
82
+ // Accept only if the remainder starts with a digit — this is the local affiliate channel number.
83
+ if ((suffix.length > 0) && (suffix.charCodeAt(0) >= 48) && (suffix.charCodeAt(0) <= 57)) {
84
+ return extractWatchHref(candidate);
85
+ }
86
+ }
87
+ // Tier 3: Parenthetical suffix match for timezone/region variants. Channels like "Magnolia Network (Pacific)" or "The Filipino Channel (Pacific)" have the
88
+ // base name followed by a space and a parenthetical. The CSS selector matches aria-labels starting with "watch {Name} (" to catch these variants.
89
+ const parenSelector = "ytu-endpoint.tenx-thumb[aria-label^=\"watch " + name + " (\" i] a";
90
+ const parenResult = extractWatchHref(document.querySelector(parenSelector));
91
+ if (parenResult) {
92
+ return parenResult;
93
+ }
94
+ }
95
+ return null;
96
+ }, [namesToTry]);
97
+ if (!watchPath) {
98
+ // Channel not found. Query all available channel names from the guide grid and log them as a diagnostic to help users identify their market's channel names
99
+ // and create user-defined channels with the correct channelSelector value.
100
+ try {
101
+ const availableChannels = await evaluateWithAbort(page, () => {
102
+ return Array.from(document.querySelectorAll("ytu-endpoint.tenx-thumb[aria-label]"))
103
+ .map((el) => {
104
+ const label = el.getAttribute("aria-label") ?? "";
105
+ return label.startsWith("watch ") ? label.slice(6) : "";
106
+ })
107
+ .filter((name) => name.length > 0)
108
+ .sort();
109
+ }, []);
110
+ // Build additional known names from CHANNEL_ALTERNATES values so they are also filtered out of the diagnostic list.
111
+ const additionalKnownNames = [];
112
+ for (const alts of Object.values(CHANNEL_ALTERNATES)) {
113
+ for (const alt of alts) {
114
+ additionalKnownNames.push(alt);
115
+ }
116
+ }
117
+ logAvailableChannels({
118
+ additionalKnownNames,
119
+ availableChannels,
120
+ channelName,
121
+ guideUrl: "https://tv.youtube.com/live",
122
+ presetSuffix: "-yttv",
123
+ providerName: "YouTube TV"
124
+ });
125
+ }
126
+ catch {
127
+ // Diagnostic dump is best-effort. Don't let it mask the real channel selection failure.
128
+ }
129
+ return { reason: "Channel \"" + channelName + "\" not found in YouTube TV guide.", success: false };
130
+ }
131
+ // Navigate directly to the watch URL. This auto-starts playback without any click interaction needed.
132
+ const watchUrl = YOUTUBE_TV_BASE_URL + "/" + watchPath;
133
+ LOG.debug("tuning:yttv", "Navigating to YouTube TV watch URL for %s.", channelName);
134
+ try {
135
+ await page.goto(watchUrl, { timeout: CONFIG.streaming.navigationTimeout, waitUntil: "load" });
136
+ }
137
+ catch (error) {
138
+ return { reason: "Failed to navigate to YouTube TV watch page: " + formatError(error) + ".", success: false };
139
+ }
140
+ return { success: true };
141
+ }
142
+ //# sourceMappingURL=youtubeTv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"youtubeTv.js","sourceRoot":"","sources":["../../../src/browser/tuning/youtubeTv.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Frame, Page } from "puppeteer-core";
2
- import type { ResolvedSiteProfile, TuneResult, VideoSelectorType } from "../types/index.js";
2
+ import type { Nullable, ResolvedSiteProfile, TuneResult, VideoSelectorType } from "../types/index.js";
3
3
  /**
4
4
  * Builds a selector type identifier for the video element based on the site profile. This returns a string that browser context code interprets to select the
5
5
  * appropriate video element. Using a string identifier instead of passing functions avoids serialization issues with page.evaluate() and is more secure than
@@ -27,7 +27,7 @@ export interface VideoStateInfo {
27
27
  * @param selectorType - The video selector type for finding the element.
28
28
  * @returns The video state or null if no video found.
29
29
  */
30
- export declare function getVideoState(context: Frame | Page, selectorType: VideoSelectorType): Promise<VideoStateInfo | null>;
30
+ export declare function getVideoState(context: Frame | Page, selectorType: VideoSelectorType): Promise<Nullable<VideoStateInfo>>;
31
31
  /**
32
32
  * Enforces volume settings on the video element. Sets muted to false and volume to 1. This is called periodically during health monitoring to counter sites that
33
33
  * aggressively mute videos.
@@ -2,7 +2,7 @@
2
2
  *
3
3
  * video.ts: Video context and playback handling for PrismCast.
4
4
  */
5
- import { EvaluateAbortError, LOG, delay, evaluateWithAbort, formatError } from "../utils/index.js";
5
+ import { EvaluateAbortError, LOG, delay, evaluateWithAbort, formatError, startTimer } from "../utils/index.js";
6
6
  import { CONFIG } from "../config/index.js";
7
7
  import { selectChannel } from "./channelSelection.js";
8
8
  /* These functions manage the video element lifecycle for streaming capture. The key challenges we solve:
@@ -453,7 +453,7 @@ export async function lockVolumeProperties(context, selectorType) {
453
453
  // Mark the video as locked to prevent re-applying the lock.
454
454
  video.__volumeLocked = true;
455
455
  }, [selectorType]);
456
- LOG.info("Volume properties locked successfully.");
456
+ LOG.debug("browser:video", "Volume properties locked successfully.");
457
457
  }
458
458
  catch (error) {
459
459
  // Volume locking is not critical to stream function - log a warning but don't fail the operation. Also handles AbortError if stream is terminated.
@@ -519,7 +519,7 @@ export async function triggerFullscreen(page, context, profile, selectorType) {
519
519
  }, [selectorType]);
520
520
  }
521
521
  catch (error) {
522
- LOG.warn("Could not trigger fullscreen: %s.", formatError(error));
522
+ LOG.debug("browser:video", "Could not trigger fullscreen: %s.", formatError(error));
523
523
  }
524
524
  }
525
525
  }
@@ -673,13 +673,13 @@ export async function ensureFullscreen(page, context, profile, selectorType) {
673
673
  const isFullscreen = await verifyFullscreen(context, selectorType);
674
674
  if (isFullscreen) {
675
675
  if (attempt > 1) {
676
- LOG.info("Fullscreen succeeded on attempt %s.", attempt);
676
+ LOG.debug("browser:video", "Fullscreen succeeded on attempt %s.", attempt);
677
677
  }
678
678
  return;
679
679
  }
680
680
  // Fullscreen verification failed. If we have retries remaining, wait and try again.
681
681
  if (attempt < maxSimpleRetries) {
682
- LOG.warn("Fullscreen verification failed (attempt %s/%s). Retrying after %sms.", attempt, maxSimpleRetries, retryDelay);
682
+ LOG.debug("browser:video", "Fullscreen verification failed (attempt %s/%s). Retrying after %sms.", attempt, maxSimpleRetries, retryDelay);
683
683
  // eslint-disable-next-line no-await-in-loop
684
684
  await delay(retryDelay);
685
685
  }
@@ -695,7 +695,7 @@ export async function ensureFullscreen(page, context, profile, selectorType) {
695
695
  await delay(verifyDelay);
696
696
  const finalCheck = await verifyFullscreen(context, selectorType);
697
697
  if (finalCheck) {
698
- LOG.info("Fullscreen succeeded after aggressive techniques.");
698
+ LOG.debug("browser:video", "Fullscreen succeeded after aggressive techniques.");
699
699
  }
700
700
  else {
701
701
  LOG.warn("Fullscreen could not be verified even after aggressive techniques. Video may not fill viewport.");
@@ -772,7 +772,7 @@ async function dismissGuideOverlay(page) {
772
772
  }
773
773
  catch (error) {
774
774
  // Overlay dismissal is best-effort. The overlay may not exist, or the page may be in a state where keyboard input is ignored.
775
- LOG.debug("Could not dismiss guide overlay: %s.", formatError(error));
775
+ LOG.debug("browser:video", "Could not dismiss guide overlay: %s.", formatError(error));
776
776
  }
777
777
  }
778
778
  /**
@@ -789,6 +789,7 @@ async function dismissGuideOverlay(page) {
789
789
  * @returns The video context (frame or page) for subsequent monitoring.
790
790
  */
791
791
  export async function initializePlayback(page, profile) {
792
+ const elapsed = startTimer();
792
793
  // For multi-channel players (like usanetwork.com/live with multiple channels), select the desired channel from the UI. The selectChannel function checks the
793
794
  // profile's channelSelection strategy and channelSelector to determine if/how to select a channel.
794
795
  let channelResult = await selectChannel(page, profile);
@@ -800,12 +801,14 @@ export async function initializePlayback(page, profile) {
800
801
  channelResult = await selectChannel(page, profile);
801
802
  }
802
803
  if (!channelResult.success) {
803
- LOG.warn("Channel selection may have failed: %s.", channelResult.reason ?? "Unknown reason");
804
+ throw new Error("Channel selection failed: " + (channelResult.reason ?? "Unknown reason."));
804
805
  }
805
806
  }
807
+ LOG.debug("timing:tune", "Channel selection complete. (+%sms)", elapsed());
806
808
  // Find the video context, which may be an iframe for embedded players. Some streaming sites embed their video player in an iframe, requiring us to search
807
809
  // through frames to find the one containing the video element.
808
810
  const context = await findVideoContext(page, profile);
811
+ LOG.debug("timing:tune", "Video context found. (+%sms)", elapsed());
809
812
  // For clickToPlay sites, we need to click an element to start playback. These players require user interaction to begin playing, even with autoplay enabled. If
810
813
  // clickSelector is set, we click that element (typically a play button overlay); otherwise we click the video element directly.
811
814
  if (profile.clickToPlay) {
@@ -814,6 +817,7 @@ export async function initializePlayback(page, profile) {
814
817
  // Wait for the click target to appear in the DOM. Play button overlays may be rendered after initial page load.
815
818
  await context.waitForSelector(clickTarget, { timeout: CONFIG.streaming.videoTimeout });
816
819
  await context.click(clickTarget);
820
+ LOG.debug("timing:tune", "Click-to-play complete. (+%sms)", elapsed());
817
821
  }
818
822
  catch (clickError) {
819
823
  LOG.warn("Could not click %s to initiate playback: %s.", clickTarget, formatError(clickError));
@@ -821,8 +825,10 @@ export async function initializePlayback(page, profile) {
821
825
  }
822
826
  // Wait for video to be ready (readyState >= 3). This ensures enough data is buffered for playback to begin smoothly.
823
827
  await waitForVideoReady(context, profile);
828
+ LOG.debug("timing:tune", "Video ready. (+%sms)", elapsed());
824
829
  // Ensure playback is started, unmuted, and fullscreen. This applies CSS styling, triggers native fullscreen, and enforces volume settings.
825
830
  await ensurePlayback(page, context, profile, 1);
831
+ LOG.debug("timing:tune", "Playback ensured. (+%sms)", elapsed());
826
832
  return { context };
827
833
  }
828
834
  /**
@@ -846,10 +852,14 @@ export async function initializePlayback(page, profile) {
846
852
  * @returns The video context (frame or page) for subsequent monitoring.
847
853
  */
848
854
  export async function tuneToChannel(page, url, profile) {
855
+ const tuneElapsed = startTimer();
849
856
  // Navigate to the target URL. This handles timeout and network errors, returning when the page is loaded. The navigation strategy (networkidle vs load event)
850
857
  // is determined by the profile's waitForNetworkIdle flag.
851
858
  await navigateToPage(page, url, profile);
859
+ LOG.debug("timing:tune", "Navigation complete. (+%sms)", tuneElapsed());
852
860
  // Perform all post-navigation initialization: channel selection, video context resolution, click to play, video readiness, and fullscreen.
853
- return initializePlayback(page, profile);
861
+ const result = await initializePlayback(page, profile);
862
+ LOG.debug("timing:tune", "Tune complete. Total: %sms.", tuneElapsed());
863
+ return result;
854
864
  }
855
865
  //# sourceMappingURL=video.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/browser/video.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/browser/video.ts"],"names":[],"mappings":"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"}