prismcast 1.2.1 → 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.
- package/README.md +26 -1
- package/dist/app.js +29 -2
- package/dist/app.js.map +1 -1
- package/dist/browser/cdp.js +1 -1
- package/dist/browser/cdp.js.map +1 -1
- package/dist/browser/channelSelection.d.ts +11 -1
- package/dist/browser/channelSelection.js +45 -980
- package/dist/browser/channelSelection.js.map +1 -1
- package/dist/browser/index.d.ts +18 -4
- package/dist/browser/index.js +202 -36
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/tuning/fox.d.ts +19 -0
- package/dist/browser/tuning/fox.js +61 -0
- package/dist/browser/tuning/fox.js.map +1 -0
- package/dist/browser/tuning/hbo.d.ts +22 -0
- package/dist/browser/tuning/hbo.js +182 -0
- package/dist/browser/tuning/hbo.js.map +1 -0
- package/dist/browser/tuning/hulu.d.ts +30 -0
- package/dist/browser/tuning/hulu.js +514 -0
- package/dist/browser/tuning/hulu.js.map +1 -0
- package/dist/browser/tuning/sling.d.ts +22 -0
- package/dist/browser/tuning/sling.js +287 -0
- package/dist/browser/tuning/sling.js.map +1 -0
- package/dist/browser/tuning/thumbnailRow.d.ts +18 -0
- package/dist/browser/tuning/thumbnailRow.js +107 -0
- package/dist/browser/tuning/thumbnailRow.js.map +1 -0
- package/dist/browser/tuning/tileClick.d.ts +18 -0
- package/dist/browser/tuning/tileClick.js +102 -0
- package/dist/browser/tuning/tileClick.js.map +1 -0
- package/dist/browser/tuning/youtubeTv.d.ts +17 -0
- package/dist/browser/tuning/youtubeTv.js +99 -0
- package/dist/browser/tuning/youtubeTv.js.map +1 -0
- package/dist/browser/video.d.ts +2 -2
- package/dist/browser/video.js +18 -8
- package/dist/browser/video.js.map +1 -1
- package/dist/channels/index.js +53 -7
- package/dist/channels/index.js.map +1 -1
- package/dist/config/profiles.js +11 -0
- package/dist/config/profiles.js.map +1 -1
- package/dist/config/providers.d.ts +46 -1
- package/dist/config/providers.js +178 -13
- package/dist/config/providers.js.map +1 -1
- package/dist/config/sites.d.ts +2 -0
- package/dist/config/sites.js +43 -14
- package/dist/config/sites.js.map +1 -1
- package/dist/config/userChannels.js +21 -3
- package/dist/config/userChannels.js.map +1 -1
- package/dist/config/userConfig.d.ts +2 -1
- package/dist/config/userConfig.js +12 -4
- package/dist/config/userConfig.js.map +1 -1
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/routes/auth.js +6 -0
- package/dist/routes/auth.js.map +1 -1
- package/dist/routes/config.d.ts +5 -0
- package/dist/routes/config.js +273 -35
- package/dist/routes/config.js.map +1 -1
- package/dist/routes/debug.d.ts +6 -0
- package/dist/routes/debug.js +274 -0
- package/dist/routes/debug.js.map +1 -0
- package/dist/routes/index.d.ts +1 -0
- package/dist/routes/index.js +3 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/logs.js +17 -5
- package/dist/routes/logs.js.map +1 -1
- package/dist/routes/root.js +506 -127
- package/dist/routes/root.js.map +1 -1
- package/dist/routes/theme.js +7 -0
- package/dist/routes/theme.js.map +1 -1
- package/dist/service/commands.js +8 -8
- package/dist/service/commands.js.map +1 -1
- package/dist/service/generators.js +22 -16
- package/dist/service/generators.js.map +1 -1
- package/dist/streaming/fmp4Segmenter.d.ts +7 -0
- package/dist/streaming/fmp4Segmenter.js +124 -15
- package/dist/streaming/fmp4Segmenter.js.map +1 -1
- package/dist/streaming/hls.d.ts +74 -6
- package/dist/streaming/hls.js +210 -129
- package/dist/streaming/hls.js.map +1 -1
- package/dist/streaming/hlsSegments.js +11 -4
- package/dist/streaming/hlsSegments.js.map +1 -1
- package/dist/streaming/lifecycle.js +1 -1
- package/dist/streaming/lifecycle.js.map +1 -1
- package/dist/streaming/monitor.d.ts +1 -1
- package/dist/streaming/monitor.js +120 -49
- package/dist/streaming/monitor.js.map +1 -1
- package/dist/streaming/mp4Parser.d.ts +29 -1
- package/dist/streaming/mp4Parser.js +243 -18
- package/dist/streaming/mp4Parser.js.map +1 -1
- package/dist/streaming/mpegts.d.ts +5 -2
- package/dist/streaming/mpegts.js +122 -29
- package/dist/streaming/mpegts.js.map +1 -1
- package/dist/streaming/registry.d.ts +1 -1
- package/dist/streaming/registry.js.map +1 -1
- package/dist/streaming/setup.d.ts +13 -1
- package/dist/streaming/setup.js +136 -36
- package/dist/streaming/setup.js.map +1 -1
- package/dist/streaming/showInfo.js +9 -9
- package/dist/streaming/showInfo.js.map +1 -1
- package/dist/streaming/statusEmitter.js +5 -6
- package/dist/streaming/statusEmitter.js.map +1 -1
- package/dist/types/index.d.ts +12 -3
- package/dist/types/index.js +5 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/debugFilter.d.ts +38 -0
- package/dist/utils/debugFilter.js +157 -0
- package/dist/utils/debugFilter.js.map +1 -0
- package/dist/utils/evaluate.js.map +1 -1
- package/dist/utils/ffmpeg.d.ts +5 -0
- package/dist/utils/ffmpeg.js +13 -2
- package/dist/utils/ffmpeg.js.map +1 -1
- package/dist/utils/fileLogger.d.ts +2 -1
- package/dist/utils/fileLogger.js +4 -2
- package/dist/utils/fileLogger.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logEmitter.d.ts +1 -0
- package/dist/utils/logEmitter.js.map +1 -1
- package/dist/utils/logger.d.ts +9 -8
- package/dist/utils/logger.js +52 -28
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/retry.d.ts +1 -1
- package/dist/utils/retry.js +3 -3
- package/dist/utils/retry.js.map +1 -1
- package/dist/utils/version.js +4 -9
- package/dist/utils/version.js.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { LOG, evaluateWithAbort, formatError } from "../../utils/index.js";
|
|
2
|
+
import { CONFIG } from "../../config/index.js";
|
|
3
|
+
// Base URL for YouTube TV watch page navigation.
|
|
4
|
+
const YOUTUBE_TV_BASE_URL = "https://tv.youtube.com";
|
|
5
|
+
/**
|
|
6
|
+
* 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
|
|
7
|
+
* elements. All ~256 channel rows are present in the DOM simultaneously, so a single querySelector locates the target channel. The strategy extracts the watch
|
|
8
|
+
* URL from the matching anchor element and navigates directly — no scrolling, clicking, or timing workarounds needed.
|
|
9
|
+
*
|
|
10
|
+
* The selection process:
|
|
11
|
+
* 1. Wait for ytu-epg-row elements to confirm the guide grid has loaded.
|
|
12
|
+
* 2. Find the target channel using a case-insensitive aria-label CSS selector.
|
|
13
|
+
* 3. Extract the href attribute and validate it starts with "watch/" (not "live" or "browse/").
|
|
14
|
+
* 4. Navigate to the full watch URL via page.goto().
|
|
15
|
+
* @param page - The Puppeteer page object.
|
|
16
|
+
* @param profile - The resolved site profile with a non-null channelSelector (channel name, e.g., "CNN", "ESPN", "NBC").
|
|
17
|
+
* @returns Result object with success status and optional failure reason.
|
|
18
|
+
*/
|
|
19
|
+
export async function youtubeGridStrategy(page, profile) {
|
|
20
|
+
const channelName = profile.channelSelector;
|
|
21
|
+
// Wait for the EPG grid to render. All ~256 rows load simultaneously (no virtualization), so once any row exists, all channels are queryable.
|
|
22
|
+
try {
|
|
23
|
+
await page.waitForSelector("ytu-epg-row", { timeout: CONFIG.streaming.videoTimeout });
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return { reason: "YouTube TV guide grid did not load.", success: false };
|
|
27
|
+
}
|
|
28
|
+
// 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.,
|
|
29
|
+
// WTTW, KQED) rather than "PBS", so we list the major market call letters to cover most users. Each alternate is tried after the primary name fails both exact and
|
|
30
|
+
// prefix+digit matching. Users in smaller markets override via custom channel entries with their local call letters as the channelSelector.
|
|
31
|
+
const CHANNEL_ALTERNATES = {
|
|
32
|
+
"cw": ["WGN"],
|
|
33
|
+
"pbs": [
|
|
34
|
+
"GBH", "KAET", "KBTC", "KCET", "KCTS", "KERA", "KLCS", "KOCE", "KPBS", "KQED", "KRMA", "KUHT", "KVIE", "MPT", "NJ PBS", "THIRTEEN", "TPT", "WETA", "WGBH", "WHYY",
|
|
35
|
+
"WLIW", "WNED", "WNET", "WNIT", "WPBA", "WPBT", "WTTW", "WTVS", "WXEL"
|
|
36
|
+
]
|
|
37
|
+
};
|
|
38
|
+
// 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
|
|
39
|
+
// needed because TypeScript's Record indexing doesn't capture that the key may not exist at runtime.
|
|
40
|
+
const alternates = CHANNEL_ALTERNATES[channelName.toLowerCase()];
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
42
|
+
const namesToTry = alternates ? [channelName, ...alternates] : [channelName];
|
|
43
|
+
// Find the watch URL for the target channel. For each name in the list, first tries an exact case-insensitive aria-label match. If that fails, falls back to a
|
|
44
|
+
// prefix+digit match for local affiliates — YouTube TV displays locals as "{Network} {Number}" (e.g., "NBC 5", "ABC 7", "FOX 32"), so a channelSelector of "NBC"
|
|
45
|
+
// can automatically resolve to the user's local affiliate. The prefix fallback requires a space followed by a digit after the network name to avoid false positives
|
|
46
|
+
// like "NBC Sports Chicago".
|
|
47
|
+
const watchPath = await evaluateWithAbort(page, (names) => {
|
|
48
|
+
// 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.
|
|
49
|
+
const extractWatchHref = (anchor) => {
|
|
50
|
+
if (!anchor) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const href = anchor.getAttribute("href");
|
|
54
|
+
// 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.
|
|
55
|
+
if (!href?.startsWith("watch/")) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
return href;
|
|
59
|
+
};
|
|
60
|
+
// Try each name in order. The primary channel name is tried first, followed by any known alternates.
|
|
61
|
+
for (const name of names) {
|
|
62
|
+
// Try exact match first. The CSS "i" flag enables case-insensitive matching to handle variations in capitalization between the channel selector and the guide.
|
|
63
|
+
const exactSelector = "ytu-endpoint.tenx-thumb[aria-label=\"watch " + name + "\" i] a";
|
|
64
|
+
const exactResult = extractWatchHref(document.querySelector(exactSelector));
|
|
65
|
+
if (exactResult) {
|
|
66
|
+
return exactResult;
|
|
67
|
+
}
|
|
68
|
+
// Fallback: prefix + digit match for local affiliates. Find all thumbnails whose aria-label starts with "watch {Name} " and filter to those where the next
|
|
69
|
+
// character is a digit, matching the "{Network} {Number}" pattern (e.g., "NBC 5", "ABC 7") while excluding unrelated channels (e.g., "NBC Sports Chicago").
|
|
70
|
+
const prefixSelector = "ytu-endpoint.tenx-thumb[aria-label^=\"watch " + name + " \" i] a";
|
|
71
|
+
const candidates = document.querySelectorAll(prefixSelector);
|
|
72
|
+
const prefix = "watch " + name + " ";
|
|
73
|
+
for (const candidate of Array.from(candidates)) {
|
|
74
|
+
const parent = candidate.closest("ytu-endpoint.tenx-thumb");
|
|
75
|
+
const label = parent?.getAttribute("aria-label") ?? "";
|
|
76
|
+
const suffix = label.slice(prefix.length);
|
|
77
|
+
// Accept only if the remainder starts with a digit — this is the local affiliate channel number.
|
|
78
|
+
if ((suffix.length > 0) && (suffix.charCodeAt(0) >= 48) && (suffix.charCodeAt(0) <= 57)) {
|
|
79
|
+
return extractWatchHref(candidate);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return null;
|
|
84
|
+
}, [namesToTry]);
|
|
85
|
+
if (!watchPath) {
|
|
86
|
+
return { reason: "Channel " + channelName + " not found in YouTube TV guide or is not streamable.", success: false };
|
|
87
|
+
}
|
|
88
|
+
// Navigate directly to the watch URL. This auto-starts playback without any click interaction needed.
|
|
89
|
+
const watchUrl = YOUTUBE_TV_BASE_URL + "/" + watchPath;
|
|
90
|
+
LOG.debug("tuning:yttv", "Navigating to YouTube TV watch URL for %s.", channelName);
|
|
91
|
+
try {
|
|
92
|
+
await page.goto(watchUrl, { timeout: CONFIG.streaming.navigationTimeout, waitUntil: "load" });
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
return { reason: "Failed to navigate to YouTube TV watch page: " + formatError(error) + ".", success: false };
|
|
96
|
+
}
|
|
97
|
+
return { success: true };
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=youtubeTv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"youtubeTv.js","sourceRoot":"","sources":["../../../src/browser/tuning/youtubeTv.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG/C,iDAAiD;AACjD,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AAErD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAU,EAAE,OAAgC;IAEpF,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAE5C,8IAA8I;IAC9I,IAAI,CAAC;QAEH,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;IACxF,CAAC;IAAC,MAAM,CAAC;QAEP,OAAO,EAAE,MAAM,EAAE,qCAAqC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC3E,CAAC;IAED,+JAA+J;IAC/J,mKAAmK;IACnK,4IAA4I;IAC5I,MAAM,kBAAkB,GAA6B;QAEnD,IAAI,EAAE,CAAC,KAAK,CAAC;QACb,KAAK,EAAE;YACL,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;YACjK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;SACvE;KACF,CAAC;IAEF,iKAAiK;IACjK,qGAAqG;IACrG,MAAM,UAAU,GAAG,kBAAkB,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAEjE,uEAAuE;IACvE,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAE,WAAW,EAAE,GAAG,UAAU,CAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAE/E,+JAA+J;IAC/J,iKAAiK;IACjK,oKAAoK;IACpK,6BAA6B;IAC7B,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC,KAAe,EAAoB,EAAE;QAEpF,+IAA+I;QAC/I,MAAM,gBAAgB,GAAG,CAAC,MAAmC,EAAoB,EAAE;YAEjF,IAAG,CAAC,MAAM,EAAE,CAAC;gBAEX,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAEzC,0JAA0J;YAC1J,IAAG,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAE/B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,qGAAqG;QACrG,KAAI,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAExB,+JAA+J;YAC/J,MAAM,aAAa,GAAG,6CAA6C,GAAG,IAAI,GAAG,SAAS,CAAC;YACvF,MAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAgC,CAAC,CAAC;YAE3G,IAAG,WAAW,EAAE,CAAC;gBAEf,OAAO,WAAW,CAAC;YACrB,CAAC;YAED,2JAA2J;YAC3J,4JAA4J;YAC5J,MAAM,cAAc,GAAG,8CAA8C,GAAG,IAAI,GAAG,UAAU,CAAC;YAC1F,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;YAErC,KAAI,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAE9C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;gBAC5D,MAAM,KAAK,GAAG,MAAM,EAAE,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBACvD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE1C,iGAAiG;gBACjG,IAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;oBAEvF,OAAO,gBAAgB,CAAC,SAA8B,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,IAAG,CAAC,SAAS,EAAE,CAAC;QAEd,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,sDAAsD,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACvH,CAAC;IAED,sGAAsG;IACtG,MAAM,QAAQ,GAAG,mBAAmB,GAAG,GAAG,GAAG,SAAS,CAAC;IAEvD,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,4CAA4C,EAAE,WAAW,CAAC,CAAC;IAEpF,IAAI,CAAC;QAEH,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAChG,CAAC;IAAC,OAAM,KAAK,EAAE,CAAC;QAEd,OAAO,EAAE,MAAM,EAAE,+CAA+C,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAChH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC"}
|
package/dist/browser/video.d.ts
CHANGED
|
@@ -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
|
|
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.
|
package/dist/browser/video.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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);
|
|
@@ -803,9 +804,11 @@ export async function initializePlayback(page, profile) {
|
|
|
803
804
|
LOG.warn("Channel selection may have failed: %s.", 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
|
-
|
|
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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"}
|
package/dist/channels/index.js
CHANGED
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
* - url: Streaming site URL.
|
|
7
7
|
* - profile: Site behavior profile (optional). Use "auto" or omit to auto-detect from URL domain. See config/profiles.ts for available profiles.
|
|
8
8
|
* - stationId: Gracenote station ID for guide data (optional). Local affiliates (ABC, CBS, NBC) vary by region.
|
|
9
|
-
* - channelSelector: Channel identifier for multi-channel pages. For thumbnailRow/tileClick profiles, this is a slug matched against image URLs. For
|
|
10
|
-
* (
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* - channelSelector: Channel identifier for multi-channel pages. For thumbnailRow/tileClick profiles, this is a slug matched against image URLs. For foxGrid
|
|
10
|
+
* (foxLive), this is the station code matched against GuideChannelLogo button titles (e.g., FOXD2C, FNC, FS1). For guideGrid (huluLive), this is the exact
|
|
11
|
+
* channel name matched against image alt text. For hboGrid (hboMax), this is the channel name matched against the live channel rail tile text (e.g., HBO, HBO
|
|
12
|
+
* Hits). For slingGrid (slingLive), this is the channel name as it appears in the Sling TV guide grid data-testid attributes. For youtubeGrid (youtubeTV), this
|
|
13
|
+
* is the channel name from the YouTube TV guide or a network name (e.g., NBC) for local affiliates.
|
|
13
14
|
* - provider: Display name override for the provider selection dropdown (optional). Normally auto-derived from the URL domain via DOMAIN_CONFIG in
|
|
14
15
|
* config/profiles.ts. Only needed when a channel's display name should differ from the domain-level default.
|
|
15
16
|
*
|
|
@@ -20,22 +21,30 @@
|
|
|
20
21
|
* for independent channels (e.g., "cnni" instead of "cnn-international").
|
|
21
22
|
*/
|
|
22
23
|
export const CHANNELS = {
|
|
23
|
-
abc: { name: "ABC", url: "https://abc.com/watch-live
|
|
24
|
+
abc: { name: "ABC", url: "https://abc.com/watch-live" },
|
|
24
25
|
"abc-hulu": { channelSelector: "ABC", url: "https://www.hulu.com/live" },
|
|
26
|
+
"abc-sling": { channelSelector: "ABC", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
25
27
|
"abc-yttv": { channelSelector: "ABC", url: "https://tv.youtube.com/live" },
|
|
26
28
|
ae: { name: "A&E", stationId: "51529", url: "https://play.aetv.com/live" },
|
|
27
29
|
"ae-hulu": { channelSelector: "A&E", url: "https://www.hulu.com/live" },
|
|
30
|
+
"ae-sling": { channelSelector: "A&E", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
28
31
|
ahc: { name: "American Heroes", stationId: "78808", url: "https://watch.foodnetwork.com/channel/ahc" },
|
|
32
|
+
amc: { channelSelector: "AMC", name: "AMC", stationId: "59337", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
33
|
+
"amc-yttv": { channelSelector: "AMC", url: "https://tv.youtube.com/live" },
|
|
34
|
+
amcthrillers: { channelSelector: "AMC Thrillers", name: "AMC Thrillers", stationId: "115678", url: "https://tv.youtube.com/live" },
|
|
29
35
|
animal: { name: "Animal Planet", stationId: "57394", url: "https://watch.foodnetwork.com/channel/animal-planet" },
|
|
30
36
|
"animal-hulu": { channelSelector: "Animal Planet", url: "https://www.hulu.com/live" },
|
|
31
37
|
"animal-yttv": { channelSelector: "Animal Planet", url: "https://tv.youtube.com/live" },
|
|
32
38
|
bet: { name: "BET", stationId: "63236", url: "https://www.bet.com/live-tv" },
|
|
33
39
|
"bet-hulu": { channelSelector: "BET", url: "https://www.hulu.com/live" },
|
|
40
|
+
"bet-sling": { channelSelector: "BET", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
34
41
|
"bet-yttv": { channelSelector: "BET", url: "https://tv.youtube.com/live" },
|
|
35
42
|
bigten: { name: "Big 10", stationId: "58321", url: "https://www.foxsports.com/live/btn" },
|
|
43
|
+
"bigten-foxcom": { channelSelector: "BTN", url: "https://www.fox.com/live/channels" },
|
|
36
44
|
"bigten-hulu": { channelSelector: "Big Ten Network", url: "https://www.hulu.com/live" },
|
|
37
45
|
bravo: { name: "Bravo", stationId: "58625", url: "https://www.nbc.com/live?brand=bravo&callsign=bravo_east" },
|
|
38
46
|
"bravo-hulu": { channelSelector: "Bravo", url: "https://www.hulu.com/live" },
|
|
47
|
+
"bravo-sling": { channelSelector: "Bravo", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
39
48
|
"bravo-yttv": { channelSelector: "Bravo", url: "https://tv.youtube.com/live" },
|
|
40
49
|
bravop: { name: "Bravo (Pacific)", stationId: "73994", url: "https://www.nbc.com/live?brand=bravo&callsign=bravo_west" },
|
|
41
50
|
cbs: { name: "CBS", url: "https://www.cbs.com/live-tv/stream" },
|
|
@@ -49,11 +58,13 @@ export const CHANNELS = {
|
|
|
49
58
|
"cnbc-yttv": { channelSelector: "CNBC", url: "https://tv.youtube.com/live" },
|
|
50
59
|
cnn: { name: "CNN", stationId: "58646", url: "https://www.cnn.com/videos/cnn" },
|
|
51
60
|
"cnn-hulu": { channelSelector: "CNN", url: "https://www.hulu.com/live" },
|
|
61
|
+
"cnn-sling": { channelSelector: "CNN", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
52
62
|
"cnn-yttv": { channelSelector: "CNN", url: "https://tv.youtube.com/live" },
|
|
53
63
|
cnni: { name: "CNN International", stationId: "83110", url: "https://www.cnn.com/videos/cnn-i" },
|
|
54
64
|
"cnni-hulu": { channelSelector: "CNN International", url: "https://www.hulu.com/live" },
|
|
55
65
|
"cnni-yttv": { channelSelector: "CNN International", url: "https://tv.youtube.com/live" },
|
|
56
66
|
"comedycentral": { channelSelector: "Comedy Central", name: "Comedy Central", stationId: "62420", url: "https://www.hulu.com/live" },
|
|
67
|
+
"comedycentral-sling": { channelSelector: "Comedy Central", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
57
68
|
"comedycentral-yttv": { channelSelector: "Comedy Central", url: "https://tv.youtube.com/live" },
|
|
58
69
|
cooking: { name: "Cooking", stationId: "68065", url: "https://watch.foodnetwork.com/channel/cooking-channel" },
|
|
59
70
|
cspan: { name: "C-SPAN", stationId: "68344", url: "https://www.c-span.org/networks/?autoplay=true&channel=c-span" },
|
|
@@ -69,12 +80,15 @@ export const CHANNELS = {
|
|
|
69
80
|
"cw-yttv": { channelSelector: "CW", url: "https://tv.youtube.com/live" },
|
|
70
81
|
discovery: { name: "Discovery", stationId: "56905", url: "https://watch.foodnetwork.com/channel/discovery" },
|
|
71
82
|
"discovery-hulu": { channelSelector: "Discovery", url: "https://www.hulu.com/live" },
|
|
83
|
+
"discovery-sling": { channelSelector: "Discovery", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
72
84
|
"discovery-yttv": { channelSelector: "Discovery Channel", url: "https://tv.youtube.com/live" },
|
|
73
85
|
discoverylife: { name: "Discovery Life", stationId: "92204", url: "https://watch.foodnetwork.com/channel/discovery-life" },
|
|
74
86
|
discoveryturbo: { name: "Discovery Turbo", stationId: "31046", url: "https://watch.foodnetwork.com/channel/motortrend" },
|
|
75
87
|
"discoveryturbo-hulu": { channelSelector: "Discovery Turbo", url: "https://www.hulu.com/live" },
|
|
88
|
+
"discoveryturbo-sling": { channelSelector: "Discovery Turbo", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
76
89
|
disney: { name: "Disney", stationId: "59684", url: "https://disneynow.com/watch-live?brand=004" },
|
|
77
90
|
"disney-hulu": { channelSelector: "Disney Channel", url: "https://www.hulu.com/live" },
|
|
91
|
+
"disney-sling": { channelSelector: "Disney Channel", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
78
92
|
"disney-yttv": { channelSelector: "Disney Channel", url: "https://tv.youtube.com/live" },
|
|
79
93
|
disneyjr: { name: "Disney Jr.", stationId: "74885", url: "https://disneynow.com/watch-live?brand=008" },
|
|
80
94
|
"disneyjr-hulu": { channelSelector: "Disney Junior", url: "https://www.hulu.com/live" },
|
|
@@ -84,15 +98,18 @@ export const CHANNELS = {
|
|
|
84
98
|
"disneyxd-yttv": { channelSelector: "Disney XD", url: "https://tv.youtube.com/live" },
|
|
85
99
|
e: { channelSelector: "E-_East", name: "E!", stationId: "61812", url: "https://www.usanetwork.com/live" },
|
|
86
100
|
"e-hulu": { channelSelector: "E!", url: "https://www.hulu.com/live" },
|
|
101
|
+
"e-sling": { channelSelector: "E!", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
87
102
|
"e-yttv": { channelSelector: "E!", url: "https://tv.youtube.com/live" },
|
|
88
103
|
ep: { channelSelector: "E-_West", name: "E! (Pacific)", stationId: "91579", url: "https://www.usanetwork.com/live" },
|
|
89
104
|
espn: { name: "ESPN", stationId: "32645", url: "https://www.espn.com/watch/player?network=espn" },
|
|
90
105
|
"espn-disneyplus": { channelSelector: "poster_linear_espn_none", url: "https://www.disneyplus.com/browse/live" },
|
|
91
106
|
"espn-hulu": { channelSelector: "ESPN", url: "https://www.hulu.com/live" },
|
|
107
|
+
"espn-sling": { channelSelector: "ESPN", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
92
108
|
"espn-yttv": { channelSelector: "ESPN", url: "https://tv.youtube.com/live" },
|
|
93
109
|
espn2: { name: "ESPN2", stationId: "45507", url: "https://www.espn.com/watch/player?network=espn2" },
|
|
94
110
|
"espn2-disneyplus": { channelSelector: "poster_linear_espn2_none", url: "https://www.disneyplus.com/browse/live" },
|
|
95
111
|
"espn2-hulu": { channelSelector: "ESPN2", url: "https://www.hulu.com/live" },
|
|
112
|
+
"espn2-sling": { channelSelector: "ESPN2", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
96
113
|
"espn2-yttv": { channelSelector: "ESPN2", url: "https://tv.youtube.com/live" },
|
|
97
114
|
espnacc: { name: "ACC Network", stationId: "111871", url: "https://www.espn.com/watch/player?network=acc" },
|
|
98
115
|
"espnacc-disneyplus": { channelSelector: "poster_linear_acc-network_none", url: "https://www.disneyplus.com/browse/live" },
|
|
@@ -113,28 +130,41 @@ export const CHANNELS = {
|
|
|
113
130
|
"espnu-hulu": { channelSelector: "ESPNU", url: "https://www.hulu.com/live" },
|
|
114
131
|
"espnu-yttv": { channelSelector: "ESPNU", url: "https://tv.youtube.com/live" },
|
|
115
132
|
fbc: { name: "Fox Business", stationId: "58718", url: "https://www.foxbusiness.com/video/5640669329001" },
|
|
133
|
+
"fbc-foxcom": { channelSelector: "FBN", url: "https://www.fox.com/live/channels" },
|
|
116
134
|
"fbc-hulu": { channelSelector: "Fox Business", url: "https://www.hulu.com/live" },
|
|
117
135
|
"fbc-yttv": { channelSelector: "Fox Business", url: "https://tv.youtube.com/live" },
|
|
118
136
|
fnc: { name: "Fox News", stationId: "60179", url: "https://www.foxnews.com/video/5614615980001" },
|
|
137
|
+
"fnc-foxcom": { channelSelector: "FNC", url: "https://www.fox.com/live/channels" },
|
|
119
138
|
"fnc-hulu": { channelSelector: "Fox News", url: "https://www.hulu.com/live" },
|
|
139
|
+
"fnc-sling": { channelSelector: "Fox News", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
120
140
|
"fnc-yttv": { channelSelector: "Fox News", url: "https://tv.youtube.com/live" },
|
|
121
141
|
food: { name: "Food Network", stationId: "50747", url: "https://watch.foodnetwork.com/channel/food-network" },
|
|
122
142
|
"food-hulu": { channelSelector: "Food Network", url: "https://www.hulu.com/live" },
|
|
143
|
+
"food-sling": { channelSelector: "Food Network", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
123
144
|
"food-yttv": { channelSelector: "Food Network", url: "https://tv.youtube.com/live" },
|
|
124
|
-
fox: { channelSelector: "
|
|
145
|
+
fox: { channelSelector: "FOXD2C", name: "Fox", url: "https://www.fox.com/live/channels" },
|
|
146
|
+
"fox-hulu": { channelSelector: "Fox", url: "https://www.hulu.com/live" },
|
|
147
|
+
"fox-sling": { channelSelector: "FOX", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
125
148
|
"fox-yttv": { channelSelector: "FOX", url: "https://tv.youtube.com/live" },
|
|
126
149
|
foxdeportes: { name: "Fox Deportes", stationId: "72189", url: "https://www.foxsports.com/live/foxdep" },
|
|
150
|
+
"foxdeportes-foxcom": { channelSelector: "FOXD", url: "https://www.fox.com/live/channels" },
|
|
127
151
|
foxsoccerplus: { name: "Fox Soccer Plus", stationId: "66879", url: "https://www.foxsports.com/live/fsp" },
|
|
128
152
|
france24: { name: "France 24", stationId: "60961", url: "https://www.france24.com/en/live" },
|
|
153
|
+
"france24-sling": { channelSelector: "France 24 (English)", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
129
154
|
france24fr: { name: "France 24 (French)", stationId: "58685", url: "https://www.france24.com/fr/direct" },
|
|
155
|
+
"france24fr-sling": { channelSelector: "France 24", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
130
156
|
fs1: { name: "FS1", stationId: "82547", url: "https://www.foxsports.com/live/fs1" },
|
|
157
|
+
"fs1-foxcom": { channelSelector: "FS1", url: "https://www.fox.com/live/channels" },
|
|
131
158
|
"fs1-hulu": { channelSelector: "FS1", url: "https://www.hulu.com/live" },
|
|
159
|
+
"fs1-sling": { channelSelector: "FOX Sports 1", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
132
160
|
"fs1-yttv": { channelSelector: "FS1", url: "https://tv.youtube.com/live" },
|
|
133
161
|
fs2: { name: "FS2", stationId: "59305", url: "https://www.foxsports.com/live/fs2" },
|
|
162
|
+
"fs2-foxcom": { channelSelector: "FS2", url: "https://www.fox.com/live/channels" },
|
|
134
163
|
"fs2-hulu": { channelSelector: "FS2", url: "https://www.hulu.com/live" },
|
|
135
164
|
"fs2-yttv": { channelSelector: "FS2", url: "https://tv.youtube.com/live" },
|
|
136
165
|
fx: { name: "FX", stationId: "58574", url: "https://abc.com/watch-live/93256af4-5e80-4558-aa2e-2bdfffa119a0" },
|
|
137
166
|
"fx-hulu": { channelSelector: "FX", url: "https://www.hulu.com/live" },
|
|
167
|
+
"fx-sling": { channelSelector: "FX", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
138
168
|
"fx-yttv": { channelSelector: "FX", url: "https://tv.youtube.com/live" },
|
|
139
169
|
fxm: { name: "FXM", stationId: "70253", url: "https://abc.com/watch-live/d298ab7e-c6b1-4efa-ac6e-a52dceed92ee" },
|
|
140
170
|
"fxm-hulu": { channelSelector: "FXM", url: "https://www.hulu.com/live" },
|
|
@@ -169,17 +199,24 @@ export const CHANNELS = {
|
|
|
169
199
|
"hbomovies-yttv": { channelSelector: "HBO Movies East", url: "https://tv.youtube.com/live" },
|
|
170
200
|
hgtv: { name: "HGTV", stationId: "49788", url: "https://watch.foodnetwork.com/channel/hgtv" },
|
|
171
201
|
"hgtv-hulu": { channelSelector: "HGTV", url: "https://www.hulu.com/live" },
|
|
202
|
+
"hgtv-sling": { channelSelector: "HGTV", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
172
203
|
"hgtv-yttv": { channelSelector: "HGTV", url: "https://tv.youtube.com/live" },
|
|
173
204
|
history: { name: "History", stationId: "14771", url: "https://play.history.com/live" },
|
|
174
205
|
"history-hulu": { channelSelector: "The HISTORY Channel", url: "https://www.hulu.com/live" },
|
|
206
|
+
"history-sling": { channelSelector: "History", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
175
207
|
hln: { name: "HLN", stationId: "64549", url: "https://www.cnn.com/videos/hln" },
|
|
176
208
|
"hln-hulu": { channelSelector: "HLN", url: "https://www.hulu.com/live" },
|
|
209
|
+
"hln-sling": { channelSelector: "HLN", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
177
210
|
"hln-yttv": { channelSelector: "HLN", url: "https://tv.youtube.com/live" },
|
|
178
211
|
id: { name: "Investigation Discovery", stationId: "65342", url: "https://watch.foodnetwork.com/channel/investigation-discovery" },
|
|
179
212
|
"id-hulu": { channelSelector: "Investigation Discovery", url: "https://www.hulu.com/live" },
|
|
213
|
+
"id-sling": { channelSelector: "Investigation Discovery", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
180
214
|
"id-yttv": { channelSelector: "Investigation Discovery", url: "https://tv.youtube.com/live" },
|
|
215
|
+
ifc: { channelSelector: "IFC", name: "IFC", stationId: "59444", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
216
|
+
"ifc-yttv": { channelSelector: "IFC", url: "https://tv.youtube.com/live" },
|
|
181
217
|
lifetime: { name: "Lifetime", stationId: "60150", url: "https://play.mylifetime.com/live" },
|
|
182
218
|
"lifetime-hulu": { channelSelector: "Lifetime", url: "https://www.hulu.com/live" },
|
|
219
|
+
"lifetime-sling": { channelSelector: "Lifetime", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
183
220
|
lmn: { channelSelector: "LMN", name: "Lifetime Movie Network", stationId: "55887", url: "https://www.hulu.com/live" },
|
|
184
221
|
magnolia: { name: "Magnolia Network", stationId: "67375", url: "https://watch.foodnetwork.com/channel/magnolia-network-preview-atve-us" },
|
|
185
222
|
"magnolia-hulu": { channelSelector: "Magnolia Network", url: "https://www.hulu.com/live" },
|
|
@@ -187,10 +224,12 @@ export const CHANNELS = {
|
|
|
187
224
|
mlb: { channelSelector: "MLB Network", name: "MLB Network", stationId: "62081", url: "https://www.hulu.com/live" },
|
|
188
225
|
msnow: { name: "MS NOW", stationId: "64241", url: "https://www.ms.now/live" },
|
|
189
226
|
"msnow-hulu": { channelSelector: "MS NOW", url: "https://www.hulu.com/live" },
|
|
227
|
+
"msnow-sling": { channelSelector: "MS NOW", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
190
228
|
"msnow-usa": { channelSelector: "image-23", url: "https://www.usanetwork.com/live" },
|
|
191
229
|
"msnow-yttv": { channelSelector: "MS NOW", url: "https://tv.youtube.com/live" },
|
|
192
230
|
natgeo: { name: "National Geographic", stationId: "49438", url: "https://www.nationalgeographic.com/tv/watch-live/0826a9a3-3384-4bb5-8841-91f01cb0e3a7" },
|
|
193
231
|
"natgeo-hulu": { channelSelector: "National Geographic", url: "https://www.hulu.com/live" },
|
|
232
|
+
"natgeo-sling": { channelSelector: "National Geographic", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
194
233
|
"natgeo-yttv": { channelSelector: "National Geographic", url: "https://tv.youtube.com/live" },
|
|
195
234
|
natgeop: { name: "National Geographic (Pacific)", stationId: "71601", url: "https://www.nationalgeographic.com/tv/watch-live/91456580-f32f-417c-8e1a-9f82640832a7" },
|
|
196
235
|
natgeowild: { name: "Nat Geo Wild", stationId: "67331", url: "https://www.nationalgeographic.com/tv/watch-live/239b9590-583f-4955-a499-22e9eefff9cf" },
|
|
@@ -200,13 +239,13 @@ export const CHANNELS = {
|
|
|
200
239
|
"nba-yttv": { channelSelector: "NBA TV", url: "https://tv.youtube.com/live" },
|
|
201
240
|
nbc: { name: "NBC", url: "https://www.nbc.com/live?brand=nbc&callsign=nbc" },
|
|
202
241
|
"nbc-hulu": { channelSelector: "NBC", url: "https://www.hulu.com/live" },
|
|
242
|
+
"nbc-sling": { channelSelector: "NBC", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
203
243
|
"nbc-yttv": { channelSelector: "NBC", url: "https://tv.youtube.com/live" },
|
|
204
244
|
nbcnews: { name: "NBC News Now", stationId: "114174", url: "https://www.nbc.com/live?brand=nbc-news&callsign=nbcnews" },
|
|
205
245
|
"nbcnews-hulu": { channelSelector: "NBC News NOW", url: "https://www.hulu.com/live" },
|
|
206
246
|
nbcsbayarea: { name: "NBC Sports Bay Area", stationId: "63138", url: "https://www.nbc.com/live?brand=rsn-bay-area&callsign=nbcsbayarea" },
|
|
207
247
|
nbcsboston: { name: "NBC Sports Boston", stationId: "49198", url: "https://www.nbc.com/live?brand=rsn-boston&callsign=nbcsboston" },
|
|
208
248
|
nbcscalifornia: { name: "NBC Sports California", stationId: "45540", url: "https://www.nbc.com/live?brand=rsn-california&callsign=nbcscalifornia" },
|
|
209
|
-
nbcschicago: { name: "NBC Sports Chicago", stationId: "44905", url: "https://www.nbc.com/live?brand=rsn-chicago&callsign=nbcschicago" },
|
|
210
249
|
nbcsphiladelphia: { name: "NBC Sports Philadelphia", stationId: "32571", url: "https://www.nbc.com/live?brand=rsn-philadelphia&callsign=nbcsphiladelphia" },
|
|
211
250
|
necn: { name: "NECN", stationId: "66278", url: "https://www.nbc.com/live?brand=necn&callsign=necn" },
|
|
212
251
|
own: { name: "OWN", stationId: "70388", url: "https://watch.foodnetwork.com/channel/own" },
|
|
@@ -227,31 +266,38 @@ export const CHANNELS = {
|
|
|
227
266
|
showtimep: { name: "Showtime (Pacific)", stationId: "91621", url: "https://www.paramountplus.com/live-tv/stream/showtime-west" },
|
|
228
267
|
syfy: { channelSelector: "Syfy_East", name: "Syfy", stationId: "58623", url: "https://www.usanetwork.com/live" },
|
|
229
268
|
"syfy-hulu": { channelSelector: "SYFY", url: "https://www.hulu.com/live" },
|
|
269
|
+
"syfy-sling": { channelSelector: "SYFY", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
230
270
|
"syfy-yttv": { channelSelector: "SYFY", url: "https://tv.youtube.com/live" },
|
|
231
271
|
syfyp: { channelSelector: "Syfy_West", name: "Syfy (Pacific)", stationId: "65626", url: "https://www.usanetwork.com/live" },
|
|
232
272
|
tbs: { name: "TBS", stationId: "58515", url: "https://www.tbs.com/watchtbs/east" },
|
|
233
273
|
"tbs-hulu": { channelSelector: "TBS (East)", url: "https://www.hulu.com/live" },
|
|
274
|
+
"tbs-sling": { channelSelector: "TBS", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
234
275
|
"tbs-yttv": { channelSelector: "TBS", url: "https://tv.youtube.com/live" },
|
|
235
276
|
tbsp: { name: "TBS (Pacific)", stationId: "67890", url: "https://www.tbs.com/watchtbs/west" },
|
|
236
277
|
"tbsp-hulu": { channelSelector: "TBS (West)", url: "https://www.hulu.com/live" },
|
|
237
278
|
tlc: { name: "TLC", stationId: "57391", url: "https://watch.foodnetwork.com/channel/tlc" },
|
|
238
279
|
"tlc-hulu": { channelSelector: "TLC", url: "https://www.hulu.com/live" },
|
|
280
|
+
"tlc-sling": { channelSelector: "TLC", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
239
281
|
"tlc-yttv": { channelSelector: "TLC", url: "https://tv.youtube.com/live" },
|
|
240
282
|
tnt: { name: "TNT", stationId: "42642", url: "https://www.tntdrama.com/watchtnt/east" },
|
|
241
283
|
"tnt-hulu": { channelSelector: "TNT (East)", url: "https://www.hulu.com/live" },
|
|
284
|
+
"tnt-sling": { channelSelector: "TNT", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
242
285
|
"tnt-yttv": { channelSelector: "TNT", url: "https://tv.youtube.com/live" },
|
|
243
286
|
tntp: { name: "TNT (Pacific)", stationId: "61340", url: "https://www.tntdrama.com/watchtnt/west" },
|
|
244
287
|
"tntp-hulu": { channelSelector: "TNT (West)", url: "https://www.hulu.com/live" },
|
|
245
288
|
travel: { name: "Travel", stationId: "59303", url: "https://watch.foodnetwork.com/channel/travel-channel" },
|
|
246
289
|
"travel-hulu": { channelSelector: "Travel Channel", url: "https://www.hulu.com/live" },
|
|
290
|
+
"travel-sling": { channelSelector: "Travel Channel", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
247
291
|
"travel-yttv": { channelSelector: "Travel Channel", url: "https://tv.youtube.com/live" },
|
|
248
292
|
trutv: { name: "truTV", stationId: "64490", url: "https://www.trutv.com/watchtrutv/east" },
|
|
249
293
|
"trutv-hulu": { channelSelector: "truTV (East)", url: "https://www.hulu.com/live" },
|
|
294
|
+
"trutv-sling": { channelSelector: "truTV", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
250
295
|
"trutv-yttv": { channelSelector: "truTV", url: "https://tv.youtube.com/live" },
|
|
251
296
|
trutvp: { name: "truTV (Pacific)", stationId: "65717", url: "https://www.trutv.com/watchtrutv/east" },
|
|
252
297
|
"trutvp-hulu": { channelSelector: "truTV (West)", url: "https://www.hulu.com/live" },
|
|
253
298
|
usa: { channelSelector: "USA_East", name: "USA Network", stationId: "58452", url: "https://www.usanetwork.com/live" },
|
|
254
299
|
"usa-hulu": { channelSelector: "USA", url: "https://www.hulu.com/live" },
|
|
300
|
+
"usa-sling": { channelSelector: "USA", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
255
301
|
"usa-yttv": { channelSelector: "USA", url: "https://tv.youtube.com/live" },
|
|
256
302
|
usap: { channelSelector: "USA_West", name: "USA Network (Pacific)", stationId: "74030", url: "https://www.usanetwork.com/live" },
|
|
257
303
|
vh1: { name: "VH1", stationId: "60046", url: "https://www.vh1.com/live-tv" },
|