prismcast 1.4.2 → 1.5.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.
- package/dist/app.js +36 -1
- package/dist/app.js.map +1 -1
- package/dist/browser/cdp.d.ts +2 -1
- package/dist/browser/cdp.js +44 -23
- package/dist/browser/cdp.js.map +1 -1
- package/dist/browser/channelSelection.d.ts +45 -1
- package/dist/browser/channelSelection.js +165 -27
- package/dist/browser/channelSelection.js.map +1 -1
- package/dist/browser/display.d.ts +0 -4
- package/dist/browser/display.js +0 -7
- package/dist/browser/display.js.map +1 -1
- package/dist/browser/index.d.ts +5 -0
- package/dist/browser/index.js +14 -0
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/precaching.d.ts +5 -0
- package/dist/browser/precaching.js +116 -0
- package/dist/browser/precaching.js.map +1 -0
- package/dist/browser/tuning/directv.d.ts +2 -0
- package/dist/browser/tuning/directv.js +773 -0
- package/dist/browser/tuning/directv.js.map +1 -0
- package/dist/browser/tuning/fox.d.ts +2 -2
- package/dist/browser/tuning/fox.js +141 -22
- package/dist/browser/tuning/fox.js.map +1 -1
- package/dist/browser/tuning/hbo.d.ts +2 -2
- package/dist/browser/tuning/hbo.js +110 -41
- package/dist/browser/tuning/hbo.js.map +1 -1
- package/dist/browser/tuning/hulu.d.ts +2 -2
- package/dist/browser/tuning/hulu.js +442 -168
- package/dist/browser/tuning/hulu.js.map +1 -1
- package/dist/browser/tuning/sling.d.ts +2 -2
- package/dist/browser/tuning/sling.js +200 -56
- package/dist/browser/tuning/sling.js.map +1 -1
- package/dist/browser/tuning/spectrum.d.ts +2 -0
- package/dist/browser/tuning/spectrum.js +410 -0
- package/dist/browser/tuning/spectrum.js.map +1 -0
- package/dist/browser/tuning/youtubeTv.d.ts +2 -2
- package/dist/browser/tuning/youtubeTv.js +243 -57
- package/dist/browser/tuning/youtubeTv.js.map +1 -1
- package/dist/browser/video.d.ts +1 -1
- package/dist/browser/video.js +4 -2
- package/dist/browser/video.js.map +1 -1
- package/dist/channels/index.js +425 -34
- package/dist/channels/index.js.map +1 -1
- package/dist/config/health.d.ts +78 -0
- package/dist/config/health.js +202 -0
- package/dist/config/health.js.map +1 -0
- package/dist/config/paths.d.ts +15 -0
- package/dist/config/paths.js +21 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/config/profiles.d.ts +6 -4
- package/dist/config/profiles.js +65 -14
- package/dist/config/profiles.js.map +1 -1
- package/dist/config/providerPacks.d.ts +46 -0
- package/dist/config/providerPacks.js +200 -0
- package/dist/config/providerPacks.js.map +1 -0
- package/dist/config/providers.d.ts +36 -3
- package/dist/config/providers.js +173 -9
- package/dist/config/providers.js.map +1 -1
- package/dist/config/sites.d.ts +1 -12
- package/dist/config/sites.js +50 -5
- package/dist/config/sites.js.map +1 -1
- package/dist/config/userChannels.d.ts +35 -2
- package/dist/config/userChannels.js +109 -17
- package/dist/config/userChannels.js.map +1 -1
- package/dist/config/userConfig.d.ts +5 -1
- package/dist/config/userConfig.js +58 -6
- package/dist/config/userConfig.js.map +1 -1
- package/dist/config/userProfiles.d.ts +81 -0
- package/dist/config/userProfiles.js +424 -0
- package/dist/config/userProfiles.js.map +1 -0
- package/dist/routes/config/channels/index.d.ts +3 -0
- package/dist/routes/config/channels/index.js +3 -0
- package/dist/routes/config/channels/index.js.map +1 -0
- package/dist/routes/config/channels/routes.d.ts +6 -0
- package/dist/routes/config/channels/routes.js +799 -0
- package/dist/routes/config/channels/routes.js.map +1 -0
- package/dist/routes/config/channels/table.d.ts +46 -0
- package/dist/routes/config/channels/table.js +821 -0
- package/dist/routes/config/channels/table.js.map +1 -0
- package/dist/routes/config/index.d.ts +37 -0
- package/dist/routes/config/index.js +81 -0
- package/dist/routes/config/index.js.map +1 -0
- package/dist/routes/config/providers.d.ts +18 -0
- package/dist/routes/config/providers.js +573 -0
- package/dist/routes/config/providers.js.map +1 -0
- package/dist/routes/config/settings.d.ts +39 -0
- package/dist/routes/config/settings.js +820 -0
- package/dist/routes/config/settings.js.map +1 -0
- package/dist/routes/index.d.ts +3 -2
- package/dist/routes/index.js +7 -4
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/playlist.d.ts +5 -1
- package/dist/routes/playlist.js +32 -7
- package/dist/routes/playlist.js.map +1 -1
- package/dist/routes/providers.d.ts +6 -0
- package/dist/routes/providers.js +166 -0
- package/dist/routes/providers.js.map +1 -0
- package/dist/routes/root/content.d.ts +32 -0
- package/dist/routes/root/content.js +860 -0
- package/dist/routes/root/content.js.map +1 -0
- package/dist/routes/root/index.js +197 -0
- package/dist/routes/root/index.js.map +1 -0
- package/dist/routes/root/scripts/channels.d.ts +1 -0
- package/dist/routes/root/scripts/channels.js +745 -0
- package/dist/routes/root/scripts/channels.js.map +1 -0
- package/dist/routes/root/scripts/config.d.ts +1 -0
- package/dist/routes/root/scripts/config.js +1686 -0
- package/dist/routes/root/scripts/config.js.map +1 -0
- package/dist/routes/root/scripts/index.d.ts +3 -0
- package/dist/routes/root/scripts/index.js +8 -0
- package/dist/routes/root/scripts/index.js.map +1 -0
- package/dist/routes/root/scripts/status.d.ts +1 -0
- package/dist/routes/root/scripts/status.js +436 -0
- package/dist/routes/root/scripts/status.js.map +1 -0
- package/dist/routes/root/styles.d.ts +5 -0
- package/dist/routes/root/styles.js +442 -0
- package/dist/routes/root/styles.js.map +1 -0
- package/dist/routes/ui.js +8 -3
- package/dist/routes/ui.js.map +1 -1
- package/dist/service/commands.d.ts +5 -3
- package/dist/service/commands.js +117 -33
- package/dist/service/commands.js.map +1 -1
- package/dist/service/generators.d.ts +27 -0
- package/dist/service/generators.js +97 -6
- package/dist/service/generators.js.map +1 -1
- package/dist/streaming/fmp4Segmenter.js +2 -2
- package/dist/streaming/fmp4Segmenter.js.map +1 -1
- package/dist/streaming/hls.js +29 -1
- package/dist/streaming/hls.js.map +1 -1
- package/dist/streaming/hlsResume.d.ts +41 -0
- package/dist/streaming/hlsResume.js +153 -0
- package/dist/streaming/hlsResume.js.map +1 -0
- package/dist/streaming/hlsSegments.d.ts +6 -0
- package/dist/streaming/hlsSegments.js +8 -0
- 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 -38
- package/dist/streaming/monitor.js +20 -307
- package/dist/streaming/monitor.js.map +1 -1
- package/dist/streaming/recovery.d.ts +143 -0
- package/dist/streaming/recovery.js +286 -0
- package/dist/streaming/recovery.js.map +1 -0
- package/dist/streaming/registry.d.ts +1 -1
- package/dist/streaming/setup.d.ts +1 -1
- package/dist/streaming/setup.js +3 -1
- package/dist/streaming/setup.js.map +1 -1
- package/dist/streaming/statusEmitter.d.ts +4 -2
- package/dist/streaming/statusEmitter.js +5 -0
- package/dist/streaming/statusEmitter.js.map +1 -1
- package/dist/types/channels.d.ts +68 -0
- package/dist/types/channels.js +2 -0
- package/dist/types/channels.js.map +1 -0
- package/dist/types/config.d.ts +127 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +7 -429
- package/dist/types/index.js +1 -5
- package/dist/types/index.js.map +1 -1
- package/dist/types/profiles.d.ts +143 -0
- package/dist/types/profiles.js +2 -0
- package/dist/types/profiles.js.map +1 -0
- package/dist/types/selection.d.ts +102 -0
- package/dist/types/selection.js +6 -0
- package/dist/types/selection.js.map +1 -0
- package/dist/types/shared.d.ts +7 -0
- package/dist/types/shared.js +6 -0
- package/dist/types/shared.js.map +1 -0
- package/dist/types/streaming.d.ts +96 -0
- package/dist/types/streaming.js +2 -0
- package/dist/types/streaming.js.map +1 -0
- package/dist/utils/debugFilter.js +4 -1
- package/dist/utils/debugFilter.js.map +1 -1
- package/dist/utils/format.d.ts +7 -0
- package/dist/utils/format.js +22 -0
- package/dist/utils/format.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/sanitize.d.ts +14 -0
- package/dist/utils/sanitize.js +37 -0
- package/dist/utils/sanitize.js.map +1 -0
- package/package.json +5 -3
- package/dist/routes/config.d.ts +0 -76
- package/dist/routes/config.js +0 -2187
- package/dist/routes/config.js.map +0 -1
- package/dist/routes/root.js +0 -3158
- package/dist/routes/root.js.map +0 -1
- /package/dist/routes/{root.d.ts → root/index.d.ts} +0 -0
package/dist/channels/index.js
CHANGED
|
@@ -5,11 +5,15 @@
|
|
|
5
5
|
* - url: Streaming site URL.
|
|
6
6
|
* - profile: Site behavior profile (optional). Use "auto" or omit to auto-detect from URL domain. See config/profiles.ts for available profiles.
|
|
7
7
|
* - stationId: Gracenote station ID for guide data (optional). Local affiliates (ABC, CBS, NBC) vary by region.
|
|
8
|
-
* -
|
|
9
|
-
* (
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
8
|
+
* - pacificStationId: Gracenote station ID for the Pacific timezone feed (optional). When set on an East canonical, the system auto-generates a Pacific
|
|
9
|
+
* canonical ("{key}p") and matching provider variants at startup. See generatePacificEntries() below for details, examples, and how to add new channels.
|
|
10
|
+
* - channelSelector: Channel identifier for multi-channel pages. For thumbnailRow/tileClick profiles, this is a slug matched against image URLs. For directvGrid
|
|
11
|
+
* (directvStream), this is the channel name from the DirecTV Stream Redux store (e.g., CNN, ESPN, NBC). For foxGrid (foxLive), this is the station code matched
|
|
12
|
+
* against GuideChannelLogo button titles (e.g., FOXD2C, FNC, FS1). For guideGrid (huluLive), this is the exact channel name matched against image alt text. For
|
|
13
|
+
* hboGrid (hboMax), this is the channel name matched against the live channel rail tile text (e.g., HBO, HBO Hits). For slingGrid (slingLive), this is the
|
|
14
|
+
* channel name as it appears in the Sling TV guide grid data-testid attributes. For spectrumGrid (spectrum), this is the channel name from the Spectrum TV guide
|
|
15
|
+
* rowheaders (e.g., ESPN, CNN, Discovery Channel) or a network name (e.g., NBC) for local affiliates. For youtubeGrid (youtubeTV), this is the channel name
|
|
16
|
+
* from the YouTube TV guide or a network name (e.g., NBC) for local affiliates.
|
|
13
17
|
* - provider: Display name override for the provider selection dropdown (optional). Normally auto-derived from the URL domain via DOMAIN_CONFIG in
|
|
14
18
|
* config/profiles.ts. Only needed when a channel's display name should differ from the domain-level default.
|
|
15
19
|
*
|
|
@@ -18,136 +22,241 @@
|
|
|
18
22
|
*
|
|
19
23
|
* IMPORTANT: Avoid hyphenated keys that would unintentionally match an existing channel. If "foo" exists, "foo-bar" becomes its variant. Use non-hyphenated keys
|
|
20
24
|
* for independent channels (e.g., "cnni" instead of "cnn-international").
|
|
25
|
+
*
|
|
26
|
+
* FAST channels: This list contains only traditional linear TV networks and public broadcasters — no FAST (Free Ad-Supported Streaming Television) channels.
|
|
27
|
+
* FAST channels from platforms like Pluto TV or Tubi should not be added here. Users who want FAST content can add them as user-defined channels through the
|
|
28
|
+
* web UI or user channels file, or preferably use dedicated high-quality integrations such as Plex Channels, Pluto for Channels, or Tubi for Channels. Any
|
|
29
|
+
* FAST channel listed here would be by exception only.
|
|
21
30
|
*/
|
|
22
|
-
|
|
31
|
+
/* eslint-disable @stylistic/max-len */
|
|
32
|
+
const BASE_CHANNELS = {
|
|
23
33
|
abc: { name: "ABC", url: "https://abc.com/watch-live" },
|
|
34
|
+
"abc-directv": { channelSelector: "ABC", url: "https://stream.directv.com" },
|
|
24
35
|
"abc-hulu": { channelSelector: "ABC", url: "https://www.hulu.com/live" },
|
|
25
36
|
"abc-sling": { channelSelector: "ABC", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
37
|
+
"abc-spectrum": { channelSelector: "ABC", url: "https://watch.spectrum.net/guide" },
|
|
26
38
|
"abc-yttv": { channelSelector: "ABC", url: "https://tv.youtube.com/live" },
|
|
27
|
-
|
|
39
|
+
abcnews: { channelSelector: "ABC News Live", name: "ABC News Live", stationId: "113380", url: "https://www.hulu.com/live" },
|
|
40
|
+
"abcnews-directv": { channelSelector: "ABC News Live", url: "https://stream.directv.com" },
|
|
41
|
+
"abcnews-sling": { channelSelector: "ABC News Live", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
42
|
+
"abcnews-yttv": { channelSelector: "ABC News Live", url: "https://tv.youtube.com/live" },
|
|
43
|
+
ae: { name: "A&E", pacificStationId: "57439", stationId: "51529", url: "https://play.aetv.com/live" },
|
|
44
|
+
"ae-directv": { channelSelector: "A&E", url: "https://stream.directv.com" },
|
|
28
45
|
"ae-hulu": { channelSelector: "A&E", url: "https://www.hulu.com/live" },
|
|
29
46
|
"ae-sling": { channelSelector: "A&E", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
47
|
+
"ae-spectrum": { channelSelector: "A&E", url: "https://watch.spectrum.net/guide" },
|
|
48
|
+
"ae-yttv": { channelSelector: "A&E", url: "https://tv.youtube.com/live" },
|
|
30
49
|
ahc: { name: "American Heroes", stationId: "78808", url: "https://watch.foodnetwork.com/channel/ahc" },
|
|
31
|
-
|
|
50
|
+
"ahc-spectrum": { channelSelector: "American Heroes Channel", url: "https://watch.spectrum.net/guide" },
|
|
51
|
+
amc: { channelSelector: "AMC", name: "AMC", pacificStationId: "78836", stationId: "59337", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
52
|
+
"amc-directv": { channelSelector: "AMC", url: "https://stream.directv.com" },
|
|
53
|
+
"amc-spectrum": { channelSelector: "AMC", url: "https://watch.spectrum.net/guide" },
|
|
32
54
|
"amc-yttv": { channelSelector: "AMC", url: "https://tv.youtube.com/live" },
|
|
33
55
|
amcthrillers: { channelSelector: "AMC Thrillers", name: "AMC Thrillers", stationId: "115678", url: "https://tv.youtube.com/live" },
|
|
34
|
-
|
|
56
|
+
"amcthrillers-sling": { channelSelector: "AMC Thrillers", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
57
|
+
animal: { name: "Animal Planet", pacificStationId: "68785", stationId: "57394", url: "https://watch.foodnetwork.com/channel/animal-planet" },
|
|
58
|
+
"animal-directv": { channelSelector: "Animal Planet", url: "https://stream.directv.com" },
|
|
35
59
|
"animal-hulu": { channelSelector: "Animal Planet", url: "https://www.hulu.com/live" },
|
|
60
|
+
"animal-spectrum": { channelSelector: "Animal Planet", url: "https://watch.spectrum.net/guide" },
|
|
36
61
|
"animal-yttv": { channelSelector: "Animal Planet", url: "https://tv.youtube.com/live" },
|
|
37
|
-
|
|
62
|
+
axstv: { channelSelector: "AXS TV", name: "AXS TV", stationId: "28506", url: "https://stream.directv.com" },
|
|
63
|
+
bbcamerica: { channelSelector: "BBC America", name: "BBC America", pacificStationId: "76739", stationId: "64492", url: "https://tv.youtube.com/live" },
|
|
64
|
+
"bbcamerica-directv": { channelSelector: "BBC America", url: "https://stream.directv.com" },
|
|
65
|
+
"bbcamerica-sling": { channelSelector: "BBC America", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
66
|
+
"bbcamerica-spectrum": { channelSelector: "BBC America", url: "https://watch.spectrum.net/guide" },
|
|
67
|
+
bbcnews: { channelSelector: "BBC News", name: "BBC News", stationId: "101449", url: "https://tv.youtube.com/live" },
|
|
68
|
+
"bbcnews-directv": { channelSelector: "BBC News", url: "https://stream.directv.com" },
|
|
69
|
+
"bbcnews-sling": { channelSelector: "BBC News", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
70
|
+
"bbcnews-spectrum": { channelSelector: "BBC World News", url: "https://watch.spectrum.net/guide" },
|
|
71
|
+
bet: { name: "BET", pacificStationId: "64673", stationId: "63236", url: "https://www.bet.com/live-tv" },
|
|
72
|
+
"bet-directv": { channelSelector: "BET", url: "https://stream.directv.com" },
|
|
38
73
|
"bet-hulu": { channelSelector: "BET", url: "https://www.hulu.com/live" },
|
|
39
74
|
"bet-sling": { channelSelector: "BET", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
75
|
+
"bet-spectrum": { channelSelector: "BET", url: "https://watch.spectrum.net/guide" },
|
|
40
76
|
"bet-yttv": { channelSelector: "BET", url: "https://tv.youtube.com/live" },
|
|
77
|
+
bether: { channelSelector: "BET Her", name: "BET Her", pacificStationId: "97360", stationId: "63220", url: "https://tv.youtube.com/live" },
|
|
78
|
+
"bether-directv": { channelSelector: "BET Her", url: "https://stream.directv.com" },
|
|
41
79
|
bigten: { name: "Big 10", stationId: "58321", url: "https://www.foxsports.com/live/btn" },
|
|
80
|
+
"bigten-directv": { channelSelector: "Big Ten", url: "https://stream.directv.com" },
|
|
42
81
|
"bigten-foxcom": { channelSelector: "BTN", url: "https://www.fox.com/live/channels" },
|
|
43
82
|
"bigten-hulu": { channelSelector: "Big Ten Network", url: "https://www.hulu.com/live" },
|
|
83
|
+
"bigten-spectrum": { channelSelector: "Big Ten Network", url: "https://watch.spectrum.net/guide" },
|
|
44
84
|
"bigten-yttv": { channelSelector: "BTN", url: "https://tv.youtube.com/live" },
|
|
85
|
+
bloomberg: { channelSelector: "Bloomberg Television", name: "Bloomberg Television", stationId: "71799", url: "https://www.hulu.com/live" },
|
|
86
|
+
"bloomberg-directv": { channelSelector: "Bloomberg TV", url: "https://stream.directv.com" },
|
|
87
|
+
"bloomberg-sling": { channelSelector: "Bloomberg TV+", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
88
|
+
"bloomberg-spectrum": { channelSelector: "Bloomberg TV", url: "https://watch.spectrum.net/guide" },
|
|
89
|
+
"bloomberg-yttv": { channelSelector: "Bloomberg TV+", url: "https://tv.youtube.com/live" },
|
|
90
|
+
bloombergoriginals: { channelSelector: "Bloomberg Originals", name: "Bloomberg Originals", stationId: "175656", url: "https://tv.youtube.com/live" },
|
|
45
91
|
bravo: { name: "Bravo", stationId: "58625", url: "https://www.nbc.com/live?brand=bravo&callsign=bravo_east" },
|
|
92
|
+
"bravo-directv": { channelSelector: "Bravo", url: "https://stream.directv.com" },
|
|
46
93
|
"bravo-hulu": { channelSelector: "Bravo", url: "https://www.hulu.com/live" },
|
|
47
94
|
"bravo-sling": { channelSelector: "Bravo", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
95
|
+
"bravo-spectrum": { channelSelector: "Bravo", url: "https://watch.spectrum.net/guide" },
|
|
48
96
|
"bravo-yttv": { channelSelector: "Bravo", url: "https://tv.youtube.com/live" },
|
|
49
97
|
bravop: { name: "Bravo (Pacific)", stationId: "73994", url: "https://www.nbc.com/live?brand=bravo&callsign=bravo_west" },
|
|
98
|
+
cartoon: { channelSelector: "Cartoon Network", name: "Cartoon Network", pacificStationId: "67703", stationId: "60048", url: "https://tv.youtube.com/live" },
|
|
99
|
+
"cartoon-directv": { channelSelector: "Cartoon Network", url: "https://stream.directv.com" },
|
|
100
|
+
"cartoon-hulu": { channelSelector: "Cartoon Network (East)", url: "https://www.hulu.com/live" },
|
|
101
|
+
"cartoon-spectrum": { channelSelector: "Cartoon Network", url: "https://watch.spectrum.net/guide" },
|
|
102
|
+
"cartoonp-hulu": { channelSelector: "Cartoon Network (West)", url: "https://www.hulu.com/live" },
|
|
50
103
|
cbs: { name: "CBS", url: "https://www.cbs.com/live-tv/stream" },
|
|
104
|
+
"cbs-directv": { channelSelector: "CBS", url: "https://stream.directv.com" },
|
|
51
105
|
"cbs-hulu": { channelSelector: "CBS", url: "https://www.hulu.com/live" },
|
|
52
106
|
"cbs-paramountplus": { name: "CBS", url: "https://www.paramountplus.com/live-tv/" },
|
|
107
|
+
"cbs-spectrum": { channelSelector: "CBS", url: "https://watch.spectrum.net/guide" },
|
|
53
108
|
"cbs-yttv": { channelSelector: "CBS", url: "https://tv.youtube.com/live" },
|
|
54
|
-
|
|
109
|
+
cbsnews: { channelSelector: "CBS News 24/7", name: "CBS News 24/7", stationId: "104846", url: "https://www.hulu.com/live" },
|
|
110
|
+
"cbsnews-sling": { channelSelector: "CBS News 24/7", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
111
|
+
cbssports: { channelSelector: "CBS Sports Network", name: "CBS Sports Network", stationId: "59250", url: "https://www.hulu.com/live" },
|
|
112
|
+
"cbssports-spectrum": { channelSelector: "CBS Sports Network", url: "https://watch.spectrum.net/guide" },
|
|
113
|
+
"cbssports-yttv": { channelSelector: "CBS Sports Network", url: "https://tv.youtube.com/live" },
|
|
114
|
+
cmt: { channelSelector: "CMT", name: "CMT", pacificStationId: "64610", stationId: "59440", url: "https://www.hulu.com/live" },
|
|
115
|
+
"cmt-directv": { channelSelector: "CMT", url: "https://stream.directv.com" },
|
|
116
|
+
"cmt-spectrum": { channelSelector: "CMT", url: "https://watch.spectrum.net/guide" },
|
|
55
117
|
"cmt-yttv": { channelSelector: "CMT", url: "https://tv.youtube.com/live" },
|
|
56
118
|
cnbc: { name: "CNBC", stationId: "58780", url: "https://www.cnbc.com/live-tv" },
|
|
119
|
+
"cnbc-directv": { channelSelector: "CNBC", url: "https://stream.directv.com" },
|
|
57
120
|
"cnbc-hulu": { channelSelector: "CNBC", url: "https://www.hulu.com/live" },
|
|
121
|
+
"cnbc-spectrum": { channelSelector: "CNBC", url: "https://watch.spectrum.net/guide" },
|
|
58
122
|
"cnbc-usa": { channelSelector: "CNBC_US", url: "https://www.usanetwork.com/live" },
|
|
59
123
|
"cnbc-yttv": { channelSelector: "CNBC", url: "https://tv.youtube.com/live" },
|
|
124
|
+
cnbcworld: { channelSelector: "CNBC World", name: "CNBC World", stationId: "26849", url: "https://stream.directv.com" },
|
|
60
125
|
cnn: { name: "CNN", stationId: "58646", url: "https://www.cnn.com/videos/cnn" },
|
|
126
|
+
"cnn-directv": { channelSelector: "CNN", url: "https://stream.directv.com" },
|
|
61
127
|
"cnn-hulu": { channelSelector: "CNN", url: "https://www.hulu.com/live" },
|
|
62
128
|
"cnn-sling": { channelSelector: "CNN", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
129
|
+
"cnn-spectrum": { channelSelector: "CNN", url: "https://watch.spectrum.net/guide" },
|
|
63
130
|
"cnn-yttv": { channelSelector: "CNN", url: "https://tv.youtube.com/live" },
|
|
64
131
|
cnni: { name: "CNN International", stationId: "83110", url: "https://www.cnn.com/videos/cnn-i" },
|
|
132
|
+
"cnni-directv": { channelSelector: "CNNi HD East", url: "https://stream.directv.com" },
|
|
65
133
|
"cnni-hulu": { channelSelector: "CNN International", url: "https://www.hulu.com/live" },
|
|
66
134
|
"cnni-yttv": { channelSelector: "CNN International", url: "https://tv.youtube.com/live" },
|
|
67
|
-
"comedycentral": { channelSelector: "Comedy Central", name: "Comedy Central", stationId: "62420", url: "https://www.hulu.com/live" },
|
|
135
|
+
"comedycentral": { channelSelector: "Comedy Central", name: "Comedy Central", pacificStationId: "64599", stationId: "62420", url: "https://www.hulu.com/live" },
|
|
136
|
+
"comedycentral-directv": { channelSelector: "Comedy Central", url: "https://stream.directv.com" },
|
|
68
137
|
"comedycentral-sling": { channelSelector: "Comedy Central", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
138
|
+
"comedycentral-spectrum": { channelSelector: "Comedy Central", url: "https://watch.spectrum.net/guide" },
|
|
69
139
|
"comedycentral-yttv": { channelSelector: "Comedy Central", url: "https://tv.youtube.com/live" },
|
|
70
140
|
cooking: { name: "Cooking", stationId: "68065", url: "https://watch.foodnetwork.com/channel/cooking-channel" },
|
|
141
|
+
"cooking-directv": { channelSelector: "Cooking Channel", url: "https://stream.directv.com" },
|
|
142
|
+
"cooking-spectrum": { channelSelector: "Cooking Channel", url: "https://watch.spectrum.net/guide" },
|
|
71
143
|
cspan: { name: "C-SPAN", stationId: "68344", url: "https://www.c-span.org/networks/?autoplay=true&channel=c-span" },
|
|
144
|
+
"cspan-directv": { channelSelector: "C-SPAN", url: "https://stream.directv.com" },
|
|
72
145
|
"cspan-hulu": { channelSelector: "C-SPAN", url: "https://www.hulu.com/live" },
|
|
146
|
+
"cspan-spectrum": { channelSelector: "C-SPAN", url: "https://watch.spectrum.net/guide" },
|
|
73
147
|
"cspan-yttv": { channelSelector: "C-SPAN", url: "https://tv.youtube.com/live" },
|
|
74
148
|
cspan2: { name: "C-SPAN 2", stationId: "68334", url: "https://www.c-span.org/networks/?autoplay=true&channel=c-span-2" },
|
|
149
|
+
"cspan2-directv": { channelSelector: "C-SPAN2", url: "https://stream.directv.com" },
|
|
75
150
|
"cspan2-hulu": { channelSelector: "C-SPAN2", url: "https://www.hulu.com/live" },
|
|
151
|
+
"cspan2-spectrum": { channelSelector: "C-SPAN 2", url: "https://watch.spectrum.net/guide" },
|
|
76
152
|
"cspan2-yttv": { channelSelector: "C-SPAN2", url: "https://tv.youtube.com/live" },
|
|
77
153
|
cspan3: { name: "C-SPAN 3", stationId: "68332", url: "https://www.c-span.org/networks/?autoplay=true&channel=c-span-3" },
|
|
78
154
|
"cspan3-hulu": { channelSelector: "C-SPAN3", url: "https://www.hulu.com/live" },
|
|
79
155
|
"cspan3-yttv": { channelSelector: "C-SPAN3", url: "https://tv.youtube.com/live" },
|
|
80
156
|
cw: { channelSelector: "CW", name: "CW", url: "https://www.hulu.com/live" },
|
|
157
|
+
"cw-directv": { channelSelector: "CW", url: "https://stream.directv.com" },
|
|
158
|
+
"cw-spectrum": { channelSelector: "CW", url: "https://watch.spectrum.net/guide" },
|
|
81
159
|
"cw-yttv": { channelSelector: "CW", url: "https://tv.youtube.com/live" },
|
|
82
|
-
discovery: { name: "Discovery", stationId: "56905", url: "https://watch.foodnetwork.com/channel/discovery" },
|
|
160
|
+
discovery: { name: "Discovery", pacificStationId: "80399", stationId: "56905", url: "https://watch.foodnetwork.com/channel/discovery" },
|
|
161
|
+
"discovery-directv": { channelSelector: "Discovery", url: "https://stream.directv.com" },
|
|
83
162
|
"discovery-hulu": { channelSelector: "Discovery", url: "https://www.hulu.com/live" },
|
|
84
163
|
"discovery-sling": { channelSelector: "Discovery", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
164
|
+
"discovery-spectrum": { channelSelector: "Discovery Channel", url: "https://watch.spectrum.net/guide" },
|
|
85
165
|
"discovery-yttv": { channelSelector: "Discovery Channel", url: "https://tv.youtube.com/live" },
|
|
86
166
|
discoverylife: { name: "Discovery Life", stationId: "92204", url: "https://watch.foodnetwork.com/channel/discovery-life" },
|
|
167
|
+
"discoverylife-directv": { channelSelector: "Discovery Life", url: "https://stream.directv.com" },
|
|
87
168
|
discoveryturbo: { name: "Discovery Turbo", stationId: "31046", url: "https://watch.foodnetwork.com/channel/motortrend" },
|
|
169
|
+
"discoveryturbo-directv": { channelSelector: "Discovery Turbo", url: "https://stream.directv.com" },
|
|
88
170
|
"discoveryturbo-hulu": { channelSelector: "Discovery Turbo", url: "https://www.hulu.com/live" },
|
|
89
171
|
"discoveryturbo-sling": { channelSelector: "Discovery Turbo", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
90
172
|
"discoveryturbo-yttv": { channelSelector: "Discovery Turbo", url: "https://tv.youtube.com/live" },
|
|
91
|
-
disney: { name: "Disney", stationId: "59684", url: "https://disneynow.com/watch-live?brand=004" },
|
|
173
|
+
disney: { name: "Disney", pacificStationId: "63320", stationId: "59684", url: "https://disneynow.com/watch-live?brand=004" },
|
|
174
|
+
"disney-directv": { channelSelector: "Disney Channel", url: "https://stream.directv.com" },
|
|
92
175
|
"disney-hulu": { channelSelector: "Disney Channel", url: "https://www.hulu.com/live" },
|
|
93
176
|
"disney-sling": { channelSelector: "Disney Channel", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
177
|
+
"disney-spectrum": { channelSelector: "Disney Channel", url: "https://watch.spectrum.net/guide" },
|
|
94
178
|
"disney-yttv": { channelSelector: "Disney Channel", url: "https://tv.youtube.com/live" },
|
|
95
|
-
disneyjr: { name: "Disney Jr.", stationId: "74885", url: "https://disneynow.com/watch-live?brand=008" },
|
|
179
|
+
disneyjr: { name: "Disney Jr.", pacificStationId: "75004", stationId: "74885", url: "https://disneynow.com/watch-live?brand=008" },
|
|
180
|
+
"disneyjr-directv": { channelSelector: "Disney Junior", url: "https://stream.directv.com" },
|
|
96
181
|
"disneyjr-hulu": { channelSelector: "Disney Junior", url: "https://www.hulu.com/live" },
|
|
182
|
+
"disneyjr-spectrum": { channelSelector: "Disney Junior", url: "https://watch.spectrum.net/guide" },
|
|
97
183
|
"disneyjr-yttv": { channelSelector: "Disney Junior", url: "https://tv.youtube.com/live" },
|
|
98
|
-
disneyxd: { name: "Disney XD", stationId: "60006", url: "https://disneynow.com/watch-live?brand=009" },
|
|
184
|
+
disneyxd: { name: "Disney XD", pacificStationId: "63322", stationId: "60006", url: "https://disneynow.com/watch-live?brand=009" },
|
|
99
185
|
"disneyxd-hulu": { channelSelector: "Disney XD", url: "https://www.hulu.com/live" },
|
|
186
|
+
"disneyxd-spectrum": { channelSelector: "Disney XD", url: "https://watch.spectrum.net/guide" },
|
|
100
187
|
"disneyxd-yttv": { channelSelector: "Disney XD", url: "https://tv.youtube.com/live" },
|
|
101
188
|
e: { channelSelector: "E-_East", name: "E!", stationId: "61812", url: "https://www.usanetwork.com/live" },
|
|
189
|
+
"e-directv": { channelSelector: "E!", url: "https://stream.directv.com" },
|
|
102
190
|
"e-hulu": { channelSelector: "E!", url: "https://www.hulu.com/live" },
|
|
103
191
|
"e-sling": { channelSelector: "E!", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
192
|
+
"e-spectrum": { channelSelector: "E!", url: "https://watch.spectrum.net/guide" },
|
|
104
193
|
"e-yttv": { channelSelector: "E!", url: "https://tv.youtube.com/live" },
|
|
105
194
|
ep: { channelSelector: "E-_West", name: "E! (Pacific)", stationId: "91579", url: "https://www.usanetwork.com/live" },
|
|
106
195
|
espn: { name: "ESPN", stationId: "32645", url: "https://www.espn.com/watch/player?network=espn" },
|
|
196
|
+
"espn-directv": { channelSelector: "ESPN", url: "https://stream.directv.com" },
|
|
107
197
|
"espn-disneyplus": { channelSelector: "poster_linear_espn_none", url: "https://www.disneyplus.com/browse/live" },
|
|
108
198
|
"espn-hulu": { channelSelector: "ESPN", url: "https://www.hulu.com/live" },
|
|
109
199
|
"espn-sling": { channelSelector: "ESPN", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
200
|
+
"espn-spectrum": { channelSelector: "ESPN", url: "https://watch.spectrum.net/guide" },
|
|
110
201
|
"espn-yttv": { channelSelector: "ESPN", url: "https://tv.youtube.com/live" },
|
|
111
202
|
espn2: { name: "ESPN2", stationId: "45507", url: "https://www.espn.com/watch/player?network=espn2" },
|
|
203
|
+
"espn2-directv": { channelSelector: "ESPN2", url: "https://stream.directv.com" },
|
|
112
204
|
"espn2-disneyplus": { channelSelector: "poster_linear_espn2_none", url: "https://www.disneyplus.com/browse/live" },
|
|
113
205
|
"espn2-hulu": { channelSelector: "ESPN2", url: "https://www.hulu.com/live" },
|
|
114
206
|
"espn2-sling": { channelSelector: "ESPN2", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
207
|
+
"espn2-spectrum": { channelSelector: "ESPN2", url: "https://watch.spectrum.net/guide" },
|
|
115
208
|
"espn2-yttv": { channelSelector: "ESPN2", url: "https://tv.youtube.com/live" },
|
|
116
209
|
espnacc: { name: "ACC Network", stationId: "111871", url: "https://www.espn.com/watch/player?network=acc" },
|
|
210
|
+
"espnacc-directv": { channelSelector: "ACC Network", url: "https://stream.directv.com" },
|
|
117
211
|
"espnacc-disneyplus": { channelSelector: "poster_linear_acc-network_none", url: "https://www.disneyplus.com/browse/live" },
|
|
118
212
|
"espnacc-hulu": { channelSelector: "ACC Network", url: "https://www.hulu.com/live" },
|
|
213
|
+
"espnacc-spectrum": { channelSelector: "ACC Network", url: "https://watch.spectrum.net/guide" },
|
|
119
214
|
"espnacc-yttv": { channelSelector: "ACC Network", url: "https://tv.youtube.com/live" },
|
|
120
215
|
espndeportes: { name: "ESPN Deportes", stationId: "71914", url: "https://www.espn.com/watch/player?network=espndeportes" },
|
|
121
216
|
"espndeportes-disneyplus": { channelSelector: "poster_linear_espn-deportes_none", url: "https://www.disneyplus.com/browse/live" },
|
|
122
217
|
"espndeportes-yttv": { channelSelector: "ESPN Deportes", url: "https://tv.youtube.com/live" },
|
|
123
218
|
espnews: { name: "ESPNews", stationId: "59976", url: "https://www.espn.com/watch/player?network=espnews" },
|
|
219
|
+
"espnews-directv": { channelSelector: "ESPNews", url: "https://stream.directv.com" },
|
|
124
220
|
"espnews-disneyplus": { channelSelector: "poster_linear_espnews_none", url: "https://www.disneyplus.com/browse/live" },
|
|
125
221
|
"espnews-hulu": { channelSelector: "ESPNEWS", url: "https://www.hulu.com/live" },
|
|
222
|
+
"espnews-spectrum": { channelSelector: "ESPNews", url: "https://watch.spectrum.net/guide" },
|
|
126
223
|
"espnews-yttv": { channelSelector: "ESPNEWS", url: "https://tv.youtube.com/live" },
|
|
127
224
|
espnsec: { name: "SEC Network", stationId: "89714", url: "https://www.espn.com/watch/player?network=sec" },
|
|
225
|
+
"espnsec-directv": { channelSelector: "SEC Network", url: "https://stream.directv.com" },
|
|
128
226
|
"espnsec-disneyplus": { channelSelector: "poster_linear_sec-network_none", url: "https://www.disneyplus.com/browse/live" },
|
|
129
227
|
"espnsec-hulu": { channelSelector: "SEC Network", url: "https://www.hulu.com/live" },
|
|
228
|
+
"espnsec-spectrum": { channelSelector: "SEC Network", url: "https://watch.spectrum.net/guide" },
|
|
130
229
|
"espnsec-yttv": { channelSelector: "SEC Network", url: "https://tv.youtube.com/live" },
|
|
131
230
|
espnu: { name: "ESPNU", stationId: "60696", url: "https://www.espn.com/watch/player?network=espnu" },
|
|
231
|
+
"espnu-directv": { channelSelector: "ESPNU", url: "https://stream.directv.com" },
|
|
132
232
|
"espnu-disneyplus": { channelSelector: "poster_linear_espnu_none", url: "https://www.disneyplus.com/browse/live" },
|
|
133
233
|
"espnu-hulu": { channelSelector: "ESPNU", url: "https://www.hulu.com/live" },
|
|
234
|
+
"espnu-spectrum": { channelSelector: "ESPNU", url: "https://watch.spectrum.net/guide" },
|
|
134
235
|
"espnu-yttv": { channelSelector: "ESPNU", url: "https://tv.youtube.com/live" },
|
|
135
236
|
fbc: { name: "Fox Business", stationId: "58718", url: "https://www.foxbusiness.com/video/5640669329001" },
|
|
237
|
+
"fbc-directv": { channelSelector: "Fox Business Network", url: "https://stream.directv.com" },
|
|
136
238
|
"fbc-foxcom": { channelSelector: "FBN", url: "https://www.fox.com/live/channels" },
|
|
137
239
|
"fbc-hulu": { channelSelector: "Fox Business", url: "https://www.hulu.com/live" },
|
|
240
|
+
"fbc-spectrum": { channelSelector: "Fox Business Network", url: "https://watch.spectrum.net/guide" },
|
|
138
241
|
"fbc-yttv": { channelSelector: "Fox Business", url: "https://tv.youtube.com/live" },
|
|
139
242
|
fnc: { name: "Fox News", stationId: "60179", url: "https://www.foxnews.com/video/5614615980001" },
|
|
243
|
+
"fnc-directv": { channelSelector: "Fox News Channel", url: "https://stream.directv.com" },
|
|
140
244
|
"fnc-foxcom": { channelSelector: "FNC", url: "https://www.fox.com/live/channels" },
|
|
141
245
|
"fnc-hulu": { channelSelector: "Fox News", url: "https://www.hulu.com/live" },
|
|
142
246
|
"fnc-sling": { channelSelector: "Fox News", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
247
|
+
"fnc-spectrum": { channelSelector: "Fox News Channel", url: "https://watch.spectrum.net/guide" },
|
|
143
248
|
"fnc-yttv": { channelSelector: "Fox News", url: "https://tv.youtube.com/live" },
|
|
144
|
-
food: { name: "Food Network", stationId: "50747", url: "https://watch.foodnetwork.com/channel/food-network" },
|
|
249
|
+
food: { name: "Food Network", pacificStationId: "82119", stationId: "50747", url: "https://watch.foodnetwork.com/channel/food-network" },
|
|
250
|
+
"food-directv": { channelSelector: "Food Network", url: "https://stream.directv.com" },
|
|
145
251
|
"food-hulu": { channelSelector: "Food Network", url: "https://www.hulu.com/live" },
|
|
146
252
|
"food-sling": { channelSelector: "Food Network", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
253
|
+
"food-spectrum": { channelSelector: "Food Network", url: "https://watch.spectrum.net/guide" },
|
|
147
254
|
"food-yttv": { channelSelector: "Food Network", url: "https://tv.youtube.com/live" },
|
|
148
255
|
fox: { channelSelector: "FOXD2C", name: "Fox", url: "https://www.fox.com/live/channels" },
|
|
256
|
+
"fox-directv": { channelSelector: "FOX", url: "https://stream.directv.com" },
|
|
149
257
|
"fox-hulu": { channelSelector: "Fox", url: "https://www.hulu.com/live" },
|
|
150
258
|
"fox-sling": { channelSelector: "FOX", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
259
|
+
"fox-spectrum": { channelSelector: "FOX", url: "https://watch.spectrum.net/guide" },
|
|
151
260
|
"fox-yttv": { channelSelector: "FOX", url: "https://tv.youtube.com/live" },
|
|
152
261
|
foxdeportes: { name: "Fox Deportes", stationId: "72189", url: "https://www.foxsports.com/live/foxdep" },
|
|
153
262
|
"foxdeportes-foxcom": { channelSelector: "FOXD", url: "https://www.fox.com/live/channels" },
|
|
@@ -158,40 +267,67 @@ export const CHANNELS = {
|
|
|
158
267
|
"france24-sling": { channelSelector: "France 24 (English)", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
159
268
|
france24fr: { name: "France 24 (French)", stationId: "58685", url: "https://www.france24.com/fr/direct" },
|
|
160
269
|
"france24fr-sling": { channelSelector: "France 24", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
270
|
+
freeform: { name: "Freeform", stationId: "59615", url: "https://www.freeform.com/watch-live/885c669e-fa9a-4039-b42e-6c85c90cc86d" },
|
|
271
|
+
"freeform-directv": { channelSelector: "Freeform HD", url: "https://stream.directv.com" },
|
|
272
|
+
"freeform-hulu": { channelSelector: "Freeform", url: "https://www.hulu.com/live" },
|
|
273
|
+
"freeform-spectrum": { channelSelector: "Freeform", url: "https://watch.spectrum.net/guide" },
|
|
274
|
+
"freeform-yttv": { channelSelector: "Freeform", url: "https://tv.youtube.com/live" },
|
|
275
|
+
freeformp: { name: "Freeform (Pacific)", stationId: "63324", url: "https://www.freeform.com/watch-live/3507c750-e86a-4c0f-8ff4-dd23c4859009" },
|
|
161
276
|
fs1: { name: "FS1", stationId: "82547", url: "https://www.foxsports.com/live/fs1" },
|
|
277
|
+
"fs1-directv": { channelSelector: "FOX Sports 1", url: "https://stream.directv.com" },
|
|
162
278
|
"fs1-foxcom": { channelSelector: "FS1", url: "https://www.fox.com/live/channels" },
|
|
163
279
|
"fs1-hulu": { channelSelector: "FS1", url: "https://www.hulu.com/live" },
|
|
164
280
|
"fs1-sling": { channelSelector: "FOX Sports 1", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
281
|
+
"fs1-spectrum": { channelSelector: "FS1", url: "https://watch.spectrum.net/guide" },
|
|
165
282
|
"fs1-yttv": { channelSelector: "FS1", url: "https://tv.youtube.com/live" },
|
|
166
283
|
fs2: { name: "FS2", stationId: "59305", url: "https://www.foxsports.com/live/fs2" },
|
|
284
|
+
"fs2-directv": { channelSelector: "FOX Sports 2", url: "https://stream.directv.com" },
|
|
167
285
|
"fs2-foxcom": { channelSelector: "FS2", url: "https://www.fox.com/live/channels" },
|
|
168
286
|
"fs2-hulu": { channelSelector: "FS2", url: "https://www.hulu.com/live" },
|
|
287
|
+
"fs2-spectrum": { channelSelector: "Fox Sports 2", url: "https://watch.spectrum.net/guide" },
|
|
169
288
|
"fs2-yttv": { channelSelector: "FS2", url: "https://tv.youtube.com/live" },
|
|
170
289
|
fx: { name: "FX", stationId: "58574", url: "https://abc.com/watch-live/93256af4-5e80-4558-aa2e-2bdfffa119a0" },
|
|
290
|
+
"fx-directv": { channelSelector: "FX", url: "https://stream.directv.com" },
|
|
171
291
|
"fx-hulu": { channelSelector: "FX", url: "https://www.hulu.com/live" },
|
|
172
292
|
"fx-sling": { channelSelector: "FX", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
293
|
+
"fx-spectrum": { channelSelector: "FX", url: "https://watch.spectrum.net/guide" },
|
|
173
294
|
"fx-yttv": { channelSelector: "FX", url: "https://tv.youtube.com/live" },
|
|
174
|
-
fxm: { name: "FXM", stationId: "70253", url: "https://abc.com/watch-live/d298ab7e-c6b1-4efa-ac6e-a52dceed92ee" },
|
|
295
|
+
fxm: { name: "FXM", pacificStationId: "98488", stationId: "70253", url: "https://abc.com/watch-live/d298ab7e-c6b1-4efa-ac6e-a52dceed92ee" },
|
|
296
|
+
"fxm-directv": { channelSelector: "FX Movie Channel", url: "https://stream.directv.com" },
|
|
175
297
|
"fxm-hulu": { channelSelector: "FXM", url: "https://www.hulu.com/live" },
|
|
298
|
+
"fxm-spectrum": { channelSelector: "FXM", url: "https://watch.spectrum.net/guide" },
|
|
176
299
|
"fxm-yttv": { channelSelector: "FXM", url: "https://tv.youtube.com/live" },
|
|
177
300
|
fxp: { name: "FX (Pacific)", stationId: "59814", url: "https://abc.com/watch-live/2cee3401-f63b-42d0-b32e-962fef610b9e" },
|
|
178
301
|
fxx: { name: "FXX", stationId: "66379", url: "https://abc.com/watch-live/49f4a471-8d36-4728-8457-ea65cbbc84ea" },
|
|
302
|
+
"fxx-directv": { channelSelector: "FXX", url: "https://stream.directv.com" },
|
|
179
303
|
"fxx-hulu": { channelSelector: "FXX", url: "https://www.hulu.com/live" },
|
|
304
|
+
"fxx-spectrum": { channelSelector: "FXX", url: "https://watch.spectrum.net/guide" },
|
|
180
305
|
"fxx-yttv": { channelSelector: "FXX", url: "https://tv.youtube.com/live" },
|
|
181
306
|
fxxp: { name: "FXX (Pacific)", stationId: "82571", url: "https://abc.com/watch-live/e4c83395-62ed-4a49-829a-c55ab3c33e7d" },
|
|
182
|
-
fyi: { name: "FYI", stationId: "58988", url: "https://play.fyi.tv/live" },
|
|
307
|
+
fyi: { name: "FYI", pacificStationId: "92372", stationId: "58988", url: "https://play.fyi.tv/live" },
|
|
308
|
+
"fyi-directv": { channelSelector: "FYI", url: "https://stream.directv.com" },
|
|
183
309
|
"fyi-hulu": { channelSelector: "FYI", url: "https://www.hulu.com/live" },
|
|
310
|
+
"fyi-spectrum": { channelSelector: "FYI", url: "https://watch.spectrum.net/guide" },
|
|
311
|
+
gameshow: { channelSelector: "Game Show Network", name: "Game Show Network", pacificStationId: "90210", stationId: "68827", url: "https://www.hulu.com/live" },
|
|
312
|
+
"gameshow-directv": { channelSelector: "GSN HD", url: "https://stream.directv.com" },
|
|
313
|
+
"gameshow-spectrum": { channelSelector: "Game Show Network", url: "https://watch.spectrum.net/guide" },
|
|
314
|
+
"gameshow-yttv": { channelSelector: "Game Show Network", url: "https://tv.youtube.com/live" },
|
|
184
315
|
golf: { name: "Golf", stationId: "61854", url: "https://www.golfchannel.com/watch/live" },
|
|
316
|
+
"golf-directv": { channelSelector: "Golf Channel", url: "https://stream.directv.com" },
|
|
185
317
|
"golf-hulu": { channelSelector: "Golf Channel", url: "https://www.hulu.com/live" },
|
|
318
|
+
"golf-spectrum": { channelSelector: "Golf Channel", url: "https://watch.spectrum.net/guide" },
|
|
186
319
|
"golf-usa": { channelSelector: "gc", url: "https://www.usanetwork.com/live" },
|
|
187
320
|
"golf-yttv": { channelSelector: "Golf Channel", url: "https://tv.youtube.com/live" },
|
|
188
|
-
hallmark: { name: "Hallmark", stationId: "66268", url: "https://www.watchhallmarktv.com/playback/item/live" },
|
|
321
|
+
hallmark: { name: "Hallmark", pacificStationId: "66415", stationId: "66268", url: "https://www.watchhallmarktv.com/playback/item/live" },
|
|
322
|
+
"hallmark-directv": { channelSelector: "Hallmark Channel", url: "https://stream.directv.com" },
|
|
189
323
|
"hallmark-hulu": { channelSelector: "Hallmark Channel", url: "https://www.hulu.com/live" },
|
|
324
|
+
"hallmark-spectrum": { channelSelector: "Hallmark Channel", url: "https://watch.spectrum.net/guide" },
|
|
190
325
|
"hallmark-yttv": { channelSelector: "Hallmark Channel", url: "https://tv.youtube.com/live" },
|
|
191
326
|
hallmarkfamily: { name: "Hallmark Family", stationId: "105723", url: "https://www.watchhallmarktv.com/playback/item/hdlive" },
|
|
192
327
|
"hallmarkfamily-yttv": { channelSelector: "Hallmark Family", url: "https://tv.youtube.com/live" },
|
|
193
|
-
hallmarkmystery: { name: "Hallmark Mystery", stationId: "46710", url: "https://www.watchhallmarktv.com/playback/item/hmmlive" },
|
|
328
|
+
hallmarkmystery: { name: "Hallmark Mystery", pacificStationId: "66412", stationId: "46710", url: "https://www.watchhallmarktv.com/playback/item/hmmlive" },
|
|
194
329
|
"hallmarkmystery-hulu": { channelSelector: "Hallmark Mystery", url: "https://www.hulu.com/live" },
|
|
330
|
+
"hallmarkmystery-spectrum": { channelSelector: "Hallmark Mystery", url: "https://watch.spectrum.net/guide" },
|
|
195
331
|
"hallmarkmystery-yttv": { channelSelector: "Hallmark Mystery", url: "https://tv.youtube.com/live" },
|
|
196
332
|
hbo: { channelSelector: "HBO", name: "HBO", stationId: "19548", url: "https://play.hbomax.com" },
|
|
197
333
|
"hbo-yttv": { channelSelector: "HBO East", url: "https://tv.youtube.com/live" },
|
|
@@ -203,117 +339,372 @@ export const CHANNELS = {
|
|
|
203
339
|
"hbohits-yttv": { channelSelector: "HBO Hits East", url: "https://tv.youtube.com/live" },
|
|
204
340
|
hbomovies: { channelSelector: "HBO Movies", name: "HBO Movies", stationId: "59845", url: "https://play.hbomax.com" },
|
|
205
341
|
"hbomovies-yttv": { channelSelector: "HBO Movies East", url: "https://tv.youtube.com/live" },
|
|
206
|
-
hgtv: { name: "HGTV", stationId: "49788", url: "https://watch.foodnetwork.com/channel/hgtv" },
|
|
342
|
+
hgtv: { name: "HGTV", pacificStationId: "87317", stationId: "49788", url: "https://watch.foodnetwork.com/channel/hgtv" },
|
|
343
|
+
"hgtv-directv": { channelSelector: "HGTV", url: "https://stream.directv.com" },
|
|
207
344
|
"hgtv-hulu": { channelSelector: "HGTV", url: "https://www.hulu.com/live" },
|
|
208
345
|
"hgtv-sling": { channelSelector: "HGTV", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
346
|
+
"hgtv-spectrum": { channelSelector: "HGTV", url: "https://watch.spectrum.net/guide" },
|
|
209
347
|
"hgtv-yttv": { channelSelector: "HGTV", url: "https://tv.youtube.com/live" },
|
|
210
|
-
history: { name: "History", stationId: "
|
|
348
|
+
history: { name: "History", pacificStationId: "88545", stationId: "57708", url: "https://play.history.com/live" },
|
|
349
|
+
"history-directv": { channelSelector: "HISTORY", url: "https://stream.directv.com" },
|
|
211
350
|
"history-hulu": { channelSelector: "The HISTORY Channel", url: "https://www.hulu.com/live" },
|
|
212
351
|
"history-sling": { channelSelector: "History", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
352
|
+
"history-spectrum": { channelSelector: "History", url: "https://watch.spectrum.net/guide" },
|
|
213
353
|
hln: { name: "HLN", stationId: "64549", url: "https://www.cnn.com/videos/hln" },
|
|
354
|
+
"hln-directv": { channelSelector: "HLN", url: "https://stream.directv.com" },
|
|
214
355
|
"hln-hulu": { channelSelector: "HLN", url: "https://www.hulu.com/live" },
|
|
215
356
|
"hln-sling": { channelSelector: "HLN", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
357
|
+
"hln-spectrum": { channelSelector: "HLN", url: "https://watch.spectrum.net/guide" },
|
|
216
358
|
"hln-yttv": { channelSelector: "HLN", url: "https://tv.youtube.com/live" },
|
|
217
|
-
id: { name: "Investigation Discovery", stationId: "65342", url: "https://watch.foodnetwork.com/channel/investigation-discovery" },
|
|
359
|
+
id: { name: "Investigation Discovery", pacificStationId: "80309", stationId: "65342", url: "https://watch.foodnetwork.com/channel/investigation-discovery" },
|
|
360
|
+
"id-directv": { channelSelector: "Investigation Discovery", url: "https://stream.directv.com" },
|
|
218
361
|
"id-hulu": { channelSelector: "Investigation Discovery", url: "https://www.hulu.com/live" },
|
|
219
362
|
"id-sling": { channelSelector: "Investigation Discovery", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
363
|
+
"id-spectrum": { channelSelector: "Investigation Discovery", url: "https://watch.spectrum.net/guide" },
|
|
220
364
|
"id-yttv": { channelSelector: "ID", url: "https://tv.youtube.com/live" },
|
|
221
|
-
ifc: { channelSelector: "IFC", name: "IFC", stationId: "59444", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
365
|
+
ifc: { channelSelector: "IFC", name: "IFC", pacificStationId: "109735", stationId: "59444", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
366
|
+
"ifc-directv": { channelSelector: "IFC", url: "https://stream.directv.com" },
|
|
367
|
+
"ifc-spectrum": { channelSelector: "IFC", url: "https://watch.spectrum.net/guide" },
|
|
222
368
|
"ifc-yttv": { channelSelector: "IFC", url: "https://tv.youtube.com/live" },
|
|
223
|
-
|
|
369
|
+
indieplex: { channelSelector: "IndiePlex (East)", name: "IndiePlex", stationId: "65795", url: "https://www.hulu.com/live" },
|
|
370
|
+
"indieplex-sling": { channelSelector: "IndiePlex", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
371
|
+
indieplexp: { channelSelector: "IndiePlex (West)", name: "IndiePlex (Pacific)", stationId: "65796", url: "https://www.hulu.com/live" },
|
|
372
|
+
lifetime: { name: "Lifetime", pacificStationId: "60250", stationId: "60150", url: "https://play.mylifetime.com/live" },
|
|
373
|
+
"lifetime-directv": { channelSelector: "Lifetime", url: "https://stream.directv.com" },
|
|
224
374
|
"lifetime-hulu": { channelSelector: "Lifetime", url: "https://www.hulu.com/live" },
|
|
225
375
|
"lifetime-sling": { channelSelector: "Lifetime", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
226
|
-
|
|
227
|
-
|
|
376
|
+
"lifetime-spectrum": { channelSelector: "Lifetime", url: "https://watch.spectrum.net/guide" },
|
|
377
|
+
lmn: { channelSelector: "LMN", name: "Lifetime Movie Network", pacificStationId: "92373", stationId: "55887", url: "https://www.hulu.com/live" },
|
|
378
|
+
"lmn-directv": { channelSelector: "Lifetime Movie Network", url: "https://stream.directv.com" },
|
|
379
|
+
"lmn-spectrum": { channelSelector: "LMN", url: "https://watch.spectrum.net/guide" },
|
|
380
|
+
magnolia: { name: "Magnolia Network", pacificStationId: "122081", stationId: "67375", url: "https://watch.foodnetwork.com/channel/magnolia-network-preview-atve-us" },
|
|
381
|
+
"magnolia-directv": { channelSelector: "Magnolia Network", url: "https://stream.directv.com" },
|
|
228
382
|
"magnolia-hulu": { channelSelector: "Magnolia Network", url: "https://www.hulu.com/live" },
|
|
383
|
+
"magnolia-spectrum": { channelSelector: "Magnolia Network", url: "https://watch.spectrum.net/guide" },
|
|
229
384
|
"magnolia-yttv": { channelSelector: "Magnolia Network", url: "https://tv.youtube.com/live" },
|
|
385
|
+
mgmplus: { channelSelector: "MGM+", name: "MGM+", pacificStationId: "95927", stationId: "65687", url: "https://stream.directv.com" },
|
|
230
386
|
mlb: { channelSelector: "MLB Network", name: "MLB Network", stationId: "62081", url: "https://www.hulu.com/live" },
|
|
387
|
+
"mlb-directv": { channelSelector: "MLB Network", url: "https://stream.directv.com" },
|
|
388
|
+
"mlb-spectrum": { channelSelector: "MLB Network", url: "https://watch.spectrum.net/guide" },
|
|
389
|
+
movieplex: { channelSelector: "MoviePlex (East)", name: "MoviePlex", stationId: "83075", url: "https://www.hulu.com/live" },
|
|
390
|
+
movieplexp: { channelSelector: "MoviePlex (West)", name: "MoviePlex (Pacific)", stationId: "105963", url: "https://www.hulu.com/live" },
|
|
391
|
+
msg: { channelSelector: "MSG", name: "MSG", stationId: "35402", url: "https://stream.directv.com" },
|
|
392
|
+
msgsn: { channelSelector: "MSG Sportsnet HD 635", name: "MSG Sportsnet", stationId: "35383", url: "https://stream.directv.com" },
|
|
231
393
|
msnow: { name: "MS NOW", stationId: "64241", url: "https://www.ms.now/live" },
|
|
394
|
+
"msnow-directv": { channelSelector: "MS Now", url: "https://stream.directv.com" },
|
|
232
395
|
"msnow-hulu": { channelSelector: "MS NOW", url: "https://www.hulu.com/live" },
|
|
233
396
|
"msnow-sling": { channelSelector: "MS NOW", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
397
|
+
"msnow-spectrum": { channelSelector: "MS NOW", url: "https://watch.spectrum.net/guide" },
|
|
234
398
|
"msnow-usa": { channelSelector: "image-23", url: "https://www.usanetwork.com/live" },
|
|
235
399
|
"msnow-yttv": { channelSelector: "MS NOW", url: "https://tv.youtube.com/live" },
|
|
400
|
+
mtv: { channelSelector: "MTV", name: "MTV", pacificStationId: "64630", stationId: "60964", url: "https://www.hulu.com/live" },
|
|
401
|
+
"mtv-directv": { channelSelector: "MTV", url: "https://stream.directv.com" },
|
|
402
|
+
"mtv-spectrum": { channelSelector: "MTV", url: "https://watch.spectrum.net/guide" },
|
|
403
|
+
"mtv-yttv": { channelSelector: "MTV", url: "https://tv.youtube.com/live" },
|
|
404
|
+
mtv2: { channelSelector: "MTV2", name: "MTV2", pacificStationId: "75506", stationId: "75077", url: "https://stream.directv.com" },
|
|
405
|
+
mtvclassic: { channelSelector: "MTV Classic", name: "MTV Classic", stationId: "92240", url: "https://stream.directv.com" },
|
|
236
406
|
natgeo: { name: "National Geographic", stationId: "49438", url: "https://www.nationalgeographic.com/tv/watch-live/0826a9a3-3384-4bb5-8841-91f01cb0e3a7" },
|
|
407
|
+
"natgeo-directv": { channelSelector: "National Geographic Channel", url: "https://stream.directv.com" },
|
|
237
408
|
"natgeo-hulu": { channelSelector: "National Geographic", url: "https://www.hulu.com/live" },
|
|
238
409
|
"natgeo-sling": { channelSelector: "National Geographic", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
410
|
+
"natgeo-spectrum": { channelSelector: "National Geographic", url: "https://watch.spectrum.net/guide" },
|
|
239
411
|
"natgeo-yttv": { channelSelector: "Nat Geo", url: "https://tv.youtube.com/live" },
|
|
240
412
|
natgeop: { name: "National Geographic (Pacific)", stationId: "71601", url: "https://www.nationalgeographic.com/tv/watch-live/91456580-f32f-417c-8e1a-9f82640832a7" },
|
|
241
413
|
natgeowild: { name: "Nat Geo Wild", stationId: "67331", url: "https://www.nationalgeographic.com/tv/watch-live/239b9590-583f-4955-a499-22e9eefff9cf" },
|
|
414
|
+
"natgeowild-directv": { channelSelector: "Nat Geo WILD", url: "https://stream.directv.com" },
|
|
242
415
|
"natgeowild-hulu": { channelSelector: "Nat Geo WILD", url: "https://www.hulu.com/live" },
|
|
416
|
+
"natgeowild-spectrum": { channelSelector: "NatGeo Wild", url: "https://watch.spectrum.net/guide" },
|
|
243
417
|
"natgeowild-yttv": { channelSelector: "Nat Geo WILD", url: "https://tv.youtube.com/live" },
|
|
244
418
|
nba: { name: "NBA TV", stationId: "45526", url: "https://www.nba.com/watch/nba-tv" },
|
|
419
|
+
"nba-directv": { channelSelector: "NBA TV", url: "https://stream.directv.com" },
|
|
420
|
+
"nba-spectrum": { channelSelector: "NBA TV", url: "https://watch.spectrum.net/guide" },
|
|
245
421
|
"nba-yttv": { channelSelector: "NBA TV", url: "https://tv.youtube.com/live" },
|
|
246
422
|
nbc: { name: "NBC", url: "https://www.nbc.com/live?brand=nbc&callsign=nbc" },
|
|
423
|
+
"nbc-directv": { channelSelector: "NBC", url: "https://stream.directv.com" },
|
|
247
424
|
"nbc-hulu": { channelSelector: "NBC", url: "https://www.hulu.com/live" },
|
|
248
425
|
"nbc-sling": { channelSelector: "NBC", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
426
|
+
"nbc-spectrum": { channelSelector: "NBC", url: "https://watch.spectrum.net/guide" },
|
|
249
427
|
"nbc-yttv": { channelSelector: "NBC", url: "https://tv.youtube.com/live" },
|
|
250
428
|
nbcnews: { name: "NBC News Now", stationId: "114174", url: "https://www.nbc.com/live?brand=nbc-news&callsign=nbcnews" },
|
|
429
|
+
"nbcnews-directv": { channelSelector: "NBC News Now", url: "https://stream.directv.com" },
|
|
251
430
|
"nbcnews-hulu": { channelSelector: "NBC News NOW", url: "https://www.hulu.com/live" },
|
|
431
|
+
"nbcnews-sling": { channelSelector: "NBC News Now", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
252
432
|
"nbcnews-yttv": { channelSelector: "NBC News NOW", url: "https://tv.youtube.com/live" },
|
|
253
433
|
nbcsbayarea: { name: "NBC Sports Bay Area", stationId: "63138", url: "https://www.nbc.com/live?brand=rsn-bay-area&callsign=nbcsbayarea" },
|
|
254
434
|
nbcsboston: { name: "NBC Sports Boston", stationId: "49198", url: "https://www.nbc.com/live?brand=rsn-boston&callsign=nbcsboston" },
|
|
255
435
|
nbcscalifornia: { name: "NBC Sports California", stationId: "45540", url: "https://www.nbc.com/live?brand=rsn-california&callsign=nbcscalifornia" },
|
|
436
|
+
nbcsn: { channelSelector: "NBC Sports Network", name: "NBC Sports Network", stationId: "194412", url: "https://tv.youtube.com/live" },
|
|
256
437
|
nbcsphiladelphia: { name: "NBC Sports Philadelphia", stationId: "32571", url: "https://www.nbc.com/live?brand=rsn-philadelphia&callsign=nbcsphiladelphia" },
|
|
257
438
|
necn: { name: "NECN", stationId: "66278", url: "https://www.nbc.com/live?brand=necn&callsign=necn" },
|
|
439
|
+
nfl: { channelSelector: "NFL Network", name: "NFL Network", stationId: "45399", url: "https://www.hulu.com/live" },
|
|
440
|
+
"nfl-directv": { channelSelector: "NFL Network", url: "https://stream.directv.com" },
|
|
441
|
+
"nfl-sling": { channelSelector: "NFL Network", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
442
|
+
"nfl-spectrum": { channelSelector: "NFL Network", url: "https://watch.spectrum.net/guide" },
|
|
443
|
+
"nfl-yttv": { channelSelector: "NFL Network", url: "https://tv.youtube.com/live" },
|
|
444
|
+
nhl: { channelSelector: "NHL Network HD", name: "NHL Network", stationId: "58690", url: "https://stream.directv.com" },
|
|
445
|
+
"nhl-spectrum": { channelSelector: "NHL Network", url: "https://watch.spectrum.net/guide" },
|
|
258
446
|
own: { name: "OWN", stationId: "70388", url: "https://watch.foodnetwork.com/channel/own" },
|
|
447
|
+
"own-directv": { channelSelector: "OWN", url: "https://stream.directv.com" },
|
|
259
448
|
"own-hulu": { channelSelector: "Oprah Winfrey Network", url: "https://www.hulu.com/live" },
|
|
449
|
+
"own-spectrum": { channelSelector: "OWN", url: "https://watch.spectrum.net/guide" },
|
|
260
450
|
"own-yttv": { channelSelector: "OWN", url: "https://tv.youtube.com/live" },
|
|
261
451
|
oxygen: { channelSelector: "Oxygen_East", name: "Oxygen", stationId: "70522", url: "https://www.usanetwork.com/live" },
|
|
452
|
+
"oxygen-directv": { channelSelector: "Oxygen True Crime", url: "https://stream.directv.com" },
|
|
262
453
|
"oxygen-hulu": { channelSelector: "Oxygen True Crime", url: "https://www.hulu.com/live" },
|
|
454
|
+
"oxygen-spectrum": { channelSelector: "Oxygen", url: "https://watch.spectrum.net/guide" },
|
|
263
455
|
"oxygen-yttv": { channelSelector: "Oxygen True Crime", url: "https://tv.youtube.com/live" },
|
|
264
456
|
oxygenp: { channelSelector: "Oxygen_West", name: "Oxygen (Pacific)", stationId: "74032", url: "https://www.usanetwork.com/live" },
|
|
457
|
+
paramount: { channelSelector: "Paramount Network", name: "Paramount Network", stationId: "59186", url: "https://www.hulu.com/live" },
|
|
458
|
+
"paramount-spectrum": { channelSelector: "Paramount Network", url: "https://watch.spectrum.net/guide" },
|
|
459
|
+
"paramount-yttv": { channelSelector: "Paramount", url: "https://tv.youtube.com/live" },
|
|
460
|
+
paramountp: { name: "Paramount (Pacific)", stationId: "64593", url: "https://tv.youtube.com/live" },
|
|
461
|
+
"paramountp-yttv": { channelSelector: "Paramount Network", url: "https://tv.youtube.com/live" },
|
|
265
462
|
pbs: { channelSelector: "PBS", name: "PBS", url: "https://www.hulu.com/live" },
|
|
463
|
+
"pbs-directv": { channelSelector: "PBS", url: "https://stream.directv.com" },
|
|
464
|
+
"pbs-spectrum": { channelSelector: "PBS", url: "https://watch.spectrum.net/guide" },
|
|
266
465
|
"pbs-yttv": { channelSelector: "PBS", url: "https://tv.youtube.com/live" },
|
|
267
466
|
pbschicago: { name: "PBS Chicago (WTTW)", stationId: "30415", url: "https://www.wttw.com/wttw-live-stream" },
|
|
268
467
|
"pbschicago-hulu": { channelSelector: "PBS", url: "https://www.hulu.com/live" },
|
|
269
468
|
pbslakeshore: { name: "PBS Lakeshore (WYIN)", stationId: "49237", url: "https://video.lakeshorepbs.org/livestream" },
|
|
270
469
|
"pbslakeshore-hulu": { channelSelector: "Lakeshore PBS", url: "https://www.hulu.com/live" },
|
|
470
|
+
retroplex: { channelSelector: "RetroPlex (East)", name: "RetroPlex", stationId: "65791", url: "https://www.hulu.com/live" },
|
|
471
|
+
"retroplex-sling": { channelSelector: "RetroPlex", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
472
|
+
retroplexp: { channelSelector: "RetroPlex (West)", name: "RetroPlex (Pacific)", stationId: "65793", url: "https://www.hulu.com/live" },
|
|
271
473
|
science: { name: "Science", stationId: "57390", url: "https://watch.foodnetwork.com/channel/science" },
|
|
474
|
+
"science-directv": { channelSelector: "Science", url: "https://stream.directv.com" },
|
|
475
|
+
"science-spectrum": { channelSelector: "Science", url: "https://watch.spectrum.net/guide" },
|
|
272
476
|
showtime: { name: "Showtime", stationId: "91620", url: "https://www.paramountplus.com/live-tv/stream/showtime-east" },
|
|
273
477
|
"showtime-yttv": { channelSelector: "Showtime East", url: "https://tv.youtube.com/live" },
|
|
274
478
|
showtimep: { name: "Showtime (Pacific)", stationId: "91621", url: "https://www.paramountplus.com/live-tv/stream/showtime-west" },
|
|
479
|
+
smithsonian: { channelSelector: "Smithsonian Channel", name: "Smithsonian Channel", pacificStationId: "82695", stationId: "58532", url: "https://www.hulu.com/live" },
|
|
480
|
+
"smithsonian-directv": { channelSelector: "Smithsonian Channel HD", url: "https://stream.directv.com" },
|
|
481
|
+
"smithsonian-spectrum": { channelSelector: "Smithsonian Channel", url: "https://watch.spectrum.net/guide" },
|
|
482
|
+
"smithsonian-yttv": { channelSelector: "Smithsonian Channel", url: "https://tv.youtube.com/live" },
|
|
483
|
+
sny: { channelSelector: "SportsNet New York HD 639", name: "SportsNet New York", stationId: "50038", url: "https://stream.directv.com" },
|
|
484
|
+
starz: { name: "Starz", stationId: "34941", url: "https://www.starz.com/us/en/play/2" },
|
|
485
|
+
"starz-hulu": { channelSelector: "STARZ (East)", url: "https://www.hulu.com/live" },
|
|
486
|
+
starzcinema: { channelSelector: "STARZ Cinema (East)", name: "Starz Cinema", stationId: "67236", url: "https://www.hulu.com/live" },
|
|
487
|
+
"starzcinema-sling": { channelSelector: "Starz Cinema", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
488
|
+
starzcinemap: { channelSelector: "STARZ Cinema (West)", name: "Starz Cinema (Pacific)", stationId: "67365", url: "https://www.hulu.com/live" },
|
|
489
|
+
starzcomedy: { channelSelector: "STARZ Comedy (East)", name: "Starz Comedy", stationId: "57569", url: "https://www.hulu.com/live" },
|
|
490
|
+
"starzcomedy-sling": { channelSelector: "Starz Comedy", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
491
|
+
starzcomedyp: { channelSelector: "STARZ Comedy (West)", name: "Starz Comedy (Pacific)", stationId: "57575", url: "https://www.hulu.com/live" },
|
|
492
|
+
starzedge: { channelSelector: "STARZ Edge (East)", name: "Starz Edge", stationId: "57573", url: "https://www.hulu.com/live" },
|
|
493
|
+
"starzedge-sling": { channelSelector: "Starz Edge", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
494
|
+
starzedgep: { channelSelector: "STARZ Edge (West)", name: "Starz Edge (Pacific)", stationId: "57578", url: "https://www.hulu.com/live" },
|
|
495
|
+
starzencore: { channelSelector: "STARZ Encore (East)", name: "Starz Encore", stationId: "36225", url: "https://www.hulu.com/live" },
|
|
496
|
+
"starzencore-sling": { channelSelector: "Starz Encore", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
497
|
+
starzencoreaction: { channelSelector: "STARZ Encore Action (East)", name: "Starz Encore Action", stationId: "72015", url: "https://www.hulu.com/live" },
|
|
498
|
+
"starzencoreaction-sling": { channelSelector: "Starz Encore Action", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
499
|
+
starzencoreactionp: { channelSelector: "STARZ Encore Action (West)", name: "Starz Encore Action (Pacific)", stationId: "103833", url: "https://www.hulu.com/live" },
|
|
500
|
+
starzencoreblack: { channelSelector: "STARZ Encore Black (East)", name: "Starz Encore Black", stationId: "72014", url: "https://www.hulu.com/live" },
|
|
501
|
+
"starzencoreblack-sling": { channelSelector: "Starz Encore Black", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
502
|
+
starzencoreblackp: { channelSelector: "STARZ Encore Black (West)", name: "Starz Encore Black (Pacific)", stationId: "103834", url: "https://www.hulu.com/live" },
|
|
503
|
+
starzencoreclassic: { channelSelector: "STARZ Encore Classic (East)", name: "Starz Encore Classic", stationId: "83404", url: "https://www.hulu.com/live" },
|
|
504
|
+
"starzencoreclassic-sling": { channelSelector: "Starz Encore Classic", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
505
|
+
starzencoreclassicp: { channelSelector: "STARZ Encore Classic (West)", name: "Starz Encore Classic (Pacific)", stationId: "97233", url: "https://www.hulu.com/live" },
|
|
506
|
+
starzencoreespanol: { channelSelector: "STARZ Encore Español (East)", name: "Starz Encore Español", stationId: "72016", url: "https://www.hulu.com/live" },
|
|
507
|
+
"starzencoreespanol-sling": { channelSelector: "Starz Encore Español", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
508
|
+
starzencoreespanolp: { channelSelector: "STARZ Encore Español (West)", name: "Starz Encore Español (Pacific)", stationId: "104730", url: "https://www.hulu.com/live" },
|
|
509
|
+
starzencorefamily: { channelSelector: "STARZ Encore Family (East)", name: "Starz Encore Family", stationId: "14886", url: "https://www.hulu.com/live" },
|
|
510
|
+
"starzencorefamily-sling": { channelSelector: "Starz Encore Family", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
511
|
+
starzencorefamilyp: { channelSelector: "STARZ Encore Family (West)", name: "Starz Encore Family (Pacific)", stationId: "103829", url: "https://www.hulu.com/live" },
|
|
512
|
+
starzencorep: { channelSelector: "STARZ Encore (West)", name: "Starz Encore (Pacific)", stationId: "67237", url: "https://www.hulu.com/live" },
|
|
513
|
+
starzencoresuspense: { channelSelector: "STARZ Encore Suspense (East)", name: "Starz Encore Suspense", stationId: "83076", url: "https://www.hulu.com/live" },
|
|
514
|
+
"starzencoresuspense-sling": { channelSelector: "Starz Encore Suspense", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
515
|
+
starzencoresuspensep: { channelSelector: "STARZ Encore Suspense (West)", name: "Starz Encore Suspense (Pacific)", stationId: "103836", url: "https://www.hulu.com/live" },
|
|
516
|
+
starzencorewesterns: { channelSelector: "STARZ Encore Westerns (East)", name: "Starz Encore Westerns", stationId: "14765", url: "https://www.hulu.com/live" },
|
|
517
|
+
starzencorewesternsp: { channelSelector: "STARZ Encore Westerns (West)", name: "Starz Encore Westerns (Pacific)", stationId: "103856", url: "https://www.hulu.com/live" },
|
|
518
|
+
starzinblack: { channelSelector: "STARZ in Black (East)", name: "Starz in Black", stationId: "67235", url: "https://www.hulu.com/live" },
|
|
519
|
+
"starzinblack-sling": { channelSelector: "Starz in Black", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
520
|
+
starzinblackp: { channelSelector: "STARZ in Black (West)", name: "Starz in Black (Pacific)", stationId: "67367", url: "https://www.hulu.com/live" },
|
|
521
|
+
starzkids: { channelSelector: "STARZ Kids (East)", name: "Starz Kids", stationId: "57581", url: "https://www.hulu.com/live" },
|
|
522
|
+
starzkidsp: { channelSelector: "STARZ Kids (West)", name: "Starz Kids (Pacific)", stationId: "57583", url: "https://www.hulu.com/live" },
|
|
523
|
+
starzp: { channelSelector: "STARZ (West)", name: "Starz (Pacific)", stationId: "34949", url: "https://www.hulu.com/live" },
|
|
524
|
+
sundancetv: { channelSelector: "SundanceTV", name: "SundanceTV", pacificStationId: "78806", stationId: "71280", url: "https://tv.youtube.com/live" },
|
|
525
|
+
"sundancetv-directv": { channelSelector: "Sundance TV", url: "https://stream.directv.com" },
|
|
526
|
+
"sundancetv-spectrum": { channelSelector: "SundanceTV", url: "https://watch.spectrum.net/guide" },
|
|
275
527
|
syfy: { channelSelector: "Syfy_East", name: "Syfy", stationId: "58623", url: "https://www.usanetwork.com/live" },
|
|
528
|
+
"syfy-directv": { channelSelector: "Syfy", url: "https://stream.directv.com" },
|
|
276
529
|
"syfy-hulu": { channelSelector: "SYFY", url: "https://www.hulu.com/live" },
|
|
277
530
|
"syfy-sling": { channelSelector: "SYFY", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
531
|
+
"syfy-spectrum": { channelSelector: "Syfy", url: "https://watch.spectrum.net/guide" },
|
|
278
532
|
"syfy-yttv": { channelSelector: "SYFY", url: "https://tv.youtube.com/live" },
|
|
279
533
|
syfyp: { channelSelector: "Syfy_West", name: "Syfy (Pacific)", stationId: "65626", url: "https://www.usanetwork.com/live" },
|
|
280
534
|
tbs: { name: "TBS", stationId: "58515", url: "https://www.tbs.com/watchtbs/east" },
|
|
535
|
+
"tbs-directv": { channelSelector: "TBS", url: "https://stream.directv.com" },
|
|
281
536
|
"tbs-hulu": { channelSelector: "TBS (East)", url: "https://www.hulu.com/live" },
|
|
282
537
|
"tbs-sling": { channelSelector: "TBS", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
538
|
+
"tbs-spectrum": { channelSelector: "TBS", url: "https://watch.spectrum.net/guide" },
|
|
283
539
|
"tbs-yttv": { channelSelector: "TBS", url: "https://tv.youtube.com/live" },
|
|
284
540
|
tbsp: { name: "TBS (Pacific)", stationId: "67890", url: "https://www.tbs.com/watchtbs/west" },
|
|
285
541
|
"tbsp-hulu": { channelSelector: "TBS (West)", url: "https://www.hulu.com/live" },
|
|
286
|
-
|
|
542
|
+
tcm: { channelSelector: "TCM (East)", name: "TCM", stationId: "64312", url: "https://www.hulu.com/live" },
|
|
543
|
+
"tcm-directv": { channelSelector: "TCM", url: "https://stream.directv.com" },
|
|
544
|
+
"tcm-spectrum": { channelSelector: "TCM", url: "https://watch.spectrum.net/guide" },
|
|
545
|
+
"tcm-yttv": { channelSelector: "Turner Classic Movies", url: "https://tv.youtube.com/live" },
|
|
546
|
+
tcmp: { channelSelector: "TCM (West)", name: "TCM (Pacific)", stationId: "64312", tvgShift: 3, url: "https://www.hulu.com/live" },
|
|
547
|
+
tennis: { channelSelector: "Tennis Channel", name: "Tennis Channel", stationId: "60316", url: "https://tv.youtube.com/live" },
|
|
548
|
+
"tennis-directv": { channelSelector: "Tennis Channel HD", url: "https://stream.directv.com" },
|
|
549
|
+
"tennis-spectrum": { channelSelector: "Tennis Channel", url: "https://watch.spectrum.net/guide" },
|
|
550
|
+
tennis2: { channelSelector: "T2", name: "Tennis Channel 2", stationId: "137752", url: "https://tv.youtube.com/live" },
|
|
551
|
+
"tennis2-hulu": { channelSelector: "Tennis Channel 2", url: "https://www.hulu.com/live" },
|
|
552
|
+
"tennis2-sling": { channelSelector: "T2", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
553
|
+
tlc: { name: "TLC", pacificStationId: "79911", stationId: "57391", url: "https://watch.foodnetwork.com/channel/tlc" },
|
|
554
|
+
"tlc-directv": { channelSelector: "TLC", url: "https://stream.directv.com" },
|
|
287
555
|
"tlc-hulu": { channelSelector: "TLC", url: "https://www.hulu.com/live" },
|
|
288
556
|
"tlc-sling": { channelSelector: "TLC", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
557
|
+
"tlc-spectrum": { channelSelector: "TLC", url: "https://watch.spectrum.net/guide" },
|
|
289
558
|
"tlc-yttv": { channelSelector: "TLC", url: "https://tv.youtube.com/live" },
|
|
290
559
|
tnt: { name: "TNT", stationId: "42642", url: "https://www.tntdrama.com/watchtnt/east" },
|
|
560
|
+
"tnt-directv": { channelSelector: "TNT", url: "https://stream.directv.com" },
|
|
291
561
|
"tnt-hulu": { channelSelector: "TNT (East)", url: "https://www.hulu.com/live" },
|
|
292
562
|
"tnt-sling": { channelSelector: "TNT", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
563
|
+
"tnt-spectrum": { channelSelector: "TNT", url: "https://watch.spectrum.net/guide" },
|
|
293
564
|
"tnt-yttv": { channelSelector: "TNT", url: "https://tv.youtube.com/live" },
|
|
294
565
|
tntp: { name: "TNT (Pacific)", stationId: "61340", url: "https://www.tntdrama.com/watchtnt/west" },
|
|
295
566
|
"tntp-hulu": { channelSelector: "TNT (West)", url: "https://www.hulu.com/live" },
|
|
296
|
-
travel: { name: "Travel", stationId: "59303", url: "https://watch.foodnetwork.com/channel/travel-channel" },
|
|
567
|
+
travel: { name: "Travel", pacificStationId: "64525", stationId: "59303", url: "https://watch.foodnetwork.com/channel/travel-channel" },
|
|
568
|
+
"travel-directv": { channelSelector: "Travel Channel", url: "https://stream.directv.com" },
|
|
297
569
|
"travel-hulu": { channelSelector: "Travel Channel", url: "https://www.hulu.com/live" },
|
|
298
570
|
"travel-sling": { channelSelector: "Travel Channel", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
571
|
+
"travel-spectrum": { channelSelector: "Travel Channel", url: "https://watch.spectrum.net/guide" },
|
|
299
572
|
"travel-yttv": { channelSelector: "Travel Channel", url: "https://tv.youtube.com/live" },
|
|
300
|
-
trutv: { name: "truTV", stationId: "64490", url: "https://www.trutv.com/watchtrutv/east" },
|
|
573
|
+
trutv: { name: "truTV", pacificStationId: "65717", stationId: "64490", url: "https://www.trutv.com/watchtrutv/east" },
|
|
574
|
+
"trutv-directv": { channelSelector: "truTV", url: "https://stream.directv.com" },
|
|
301
575
|
"trutv-hulu": { channelSelector: "truTV (East)", url: "https://www.hulu.com/live" },
|
|
302
576
|
"trutv-sling": { channelSelector: "truTV", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
577
|
+
"trutv-spectrum": { channelSelector: "truTV", url: "https://watch.spectrum.net/guide" },
|
|
303
578
|
"trutv-yttv": { channelSelector: "truTV", url: "https://tv.youtube.com/live" },
|
|
304
|
-
trutvp: { name: "truTV (Pacific)", stationId: "65717", url: "https://www.trutv.com/watchtrutv/east" },
|
|
305
579
|
"trutvp-hulu": { channelSelector: "truTV (West)", url: "https://www.hulu.com/live" },
|
|
580
|
+
tvland: { channelSelector: "TV Land", name: "TV Land", pacificStationId: "74134", stationId: "73541", url: "https://tv.youtube.com/live" },
|
|
581
|
+
"tvland-directv": { channelSelector: "TV Land", url: "https://stream.directv.com" },
|
|
582
|
+
"tvland-hulu": { channelSelector: "TV Land", url: "https://www.hulu.com/live" },
|
|
583
|
+
"tvland-spectrum": { channelSelector: "TV Land", url: "https://watch.spectrum.net/guide" },
|
|
306
584
|
usa: { channelSelector: "USA_East", name: "USA Network", stationId: "58452", url: "https://www.usanetwork.com/live" },
|
|
585
|
+
"usa-directv": { channelSelector: "USA Network", url: "https://stream.directv.com" },
|
|
307
586
|
"usa-hulu": { channelSelector: "USA", url: "https://www.hulu.com/live" },
|
|
308
587
|
"usa-sling": { channelSelector: "USA", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
588
|
+
"usa-spectrum": { channelSelector: "USA", url: "https://watch.spectrum.net/guide" },
|
|
309
589
|
"usa-yttv": { channelSelector: "USA", url: "https://tv.youtube.com/live" },
|
|
310
590
|
usap: { channelSelector: "USA_West", name: "USA Network (Pacific)", stationId: "74030", url: "https://www.usanetwork.com/live" },
|
|
311
|
-
vh1: { name: "VH1", stationId: "60046", url: "https://www.vh1.com/live-tv" },
|
|
591
|
+
vh1: { name: "VH1", pacificStationId: "64634", stationId: "60046", url: "https://www.vh1.com/live-tv" },
|
|
592
|
+
"vh1-directv": { channelSelector: "VH1", url: "https://stream.directv.com" },
|
|
312
593
|
"vh1-hulu": { channelSelector: "VH1", url: "https://www.hulu.com/live" },
|
|
594
|
+
"vh1-spectrum": { channelSelector: "VH1", url: "https://watch.spectrum.net/guide" },
|
|
313
595
|
"vh1-yttv": { channelSelector: "VH1", url: "https://tv.youtube.com/live" },
|
|
596
|
+
vice: { channelSelector: "Vice", name: "Vice", pacificStationId: "92375", stationId: "65732", url: "https://www.hulu.com/live" },
|
|
597
|
+
"vice-directv": { channelSelector: "VICE", url: "https://stream.directv.com" },
|
|
598
|
+
"vice-sling": { channelSelector: "VICE", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
|
|
599
|
+
"vice-spectrum": { channelSelector: "Vice", url: "https://watch.spectrum.net/guide" },
|
|
314
600
|
weather: { channelSelector: "The Weather Channel", name: "The Weather Channel", stationId: "58812", url: "https://www.hulu.com/live" },
|
|
315
|
-
"weather-
|
|
601
|
+
"weather-directv": { channelSelector: "The Weather Channel HD", url: "https://stream.directv.com" },
|
|
602
|
+
"weather-spectrum": { channelSelector: "The Weather Channel", url: "https://watch.spectrum.net/guide" },
|
|
603
|
+
"weather-yttv": { channelSelector: "The Weather Channel", url: "https://tv.youtube.com/live" },
|
|
604
|
+
wetv: { channelSelector: "WE tv", name: "WE tv", pacificStationId: "108192", stationId: "59296", url: "https://tv.youtube.com/live" },
|
|
605
|
+
"wetv-directv": { channelSelector: "WE TV", url: "https://stream.directv.com" },
|
|
606
|
+
"wetv-spectrum": { channelSelector: "WE tv", url: "https://watch.spectrum.net/guide" },
|
|
607
|
+
yes: { channelSelector: "Yes Network HD", name: "YES Network", stationId: "63558", url: "https://stream.directv.com" },
|
|
608
|
+
"yes-spectrum": { channelSelector: "YES Network", url: "https://watch.spectrum.net/guide" }
|
|
316
609
|
};
|
|
610
|
+
/* eslint-enable @stylistic/max-len */
|
|
611
|
+
// Pacific channel auto-generation.
|
|
612
|
+
/* PrismCast automatically generates Pacific timezone channel entries to reduce manual maintenance. Two tiers of generation run at module load, producing entries
|
|
613
|
+
* that are functionally identical to hand-written ones. Generated entries never override manually-defined entries — if a key already exists in BASE_CHANNELS,
|
|
614
|
+
* the manual definition takes precedence.
|
|
615
|
+
*
|
|
616
|
+
* Tier 1 — Pacific canonicals via pacificStationId:
|
|
617
|
+
*
|
|
618
|
+
* When an East canonical has a pacificStationId field, the system generates a "{key}p" entry with the Pacific station ID, the same url and channelSelector,
|
|
619
|
+
* and " (Pacific)" appended to the name. This works for channels where providers serve region-appropriate content via a single URL. Channels with distinct
|
|
620
|
+
* Pacific URLs (e.g., bravo_west vs bravo_east) or different Pacific channelSelectors (e.g., E-_West vs E-_East) must define their Pacific canonical manually.
|
|
621
|
+
*
|
|
622
|
+
* Example — adding pacificStationId to the East canonical:
|
|
623
|
+
* animal: { name: "Animal Planet", pacificStationId: "68785", stationId: "57394", url: "..." }
|
|
624
|
+
* Auto-generates:
|
|
625
|
+
* animalp: { name: "Animal Planet (Pacific)", stationId: "68785", url: "..." }
|
|
626
|
+
*
|
|
627
|
+
* Tier 2 — Pacific provider variants from East provider variants:
|
|
628
|
+
*
|
|
629
|
+
* For each East variant "{key}-{provider}", if a Pacific canonical "{key}p" exists (manual or generated), the system generates "{key}p-{provider}" with the
|
|
630
|
+
* same channelSelector and url. Providers serve region-appropriate feeds with a single selector — the Pacific variant's inherited stationId provides the
|
|
631
|
+
* correct timezone guide data. Variants with "East" or "West" in the channelSelector are skipped — these have explicit timezone entries on the provider and
|
|
632
|
+
* need manual Pacific definitions (e.g., Hulu's "TBS (East)" / "TBS (West)").
|
|
633
|
+
*
|
|
634
|
+
* Example — East variant with a Pacific canonical present:
|
|
635
|
+
* "animal-hulu": { channelSelector: "Animal Planet", url: "https://www.hulu.com/live" }
|
|
636
|
+
* Auto-generates (because animalp exists):
|
|
637
|
+
* "animalp-hulu": { channelSelector: "Animal Planet", url: "https://www.hulu.com/live" }
|
|
638
|
+
*
|
|
639
|
+
* Adding a new channel with Pacific support:
|
|
640
|
+
*
|
|
641
|
+
* 1. Look up both East and Pacific HD station IDs in Gracenote (http://localhost:8089/tms/stations/<search>).
|
|
642
|
+
* 2. Add the East canonical with both IDs: mychannel: { name: "...", pacificStationId: "PACIFIC_ID", stationId: "EAST_ID", url: "..." }
|
|
643
|
+
* 3. Add East provider variants: "mychannel-hulu": { channelSelector: "...", url: "https://www.hulu.com/live" }
|
|
644
|
+
* 4. The system auto-generates mychannelp (Pacific canonical) and mychannelp-hulu (Pacific provider variant).
|
|
645
|
+
* 5. If the Pacific version needs a different URL or channelSelector, skip pacificStationId and define the Pacific canonical manually instead.
|
|
646
|
+
*
|
|
647
|
+
* Manual entries always take precedence — generated entries never overwrite existing keys in BASE_CHANNELS.
|
|
648
|
+
*/
|
|
649
|
+
function generatePacificEntries(channels) {
|
|
650
|
+
const eastWestPattern = /east|west/i;
|
|
651
|
+
const generated = {};
|
|
652
|
+
// Tier 1: Generate Pacific canonicals from East canonicals with pacificStationId.
|
|
653
|
+
for (const [key, channel] of Object.entries(channels)) {
|
|
654
|
+
if (!channel.pacificStationId) {
|
|
655
|
+
continue;
|
|
656
|
+
}
|
|
657
|
+
const pacificKey = key + "p";
|
|
658
|
+
// Manual Pacific canonical takes precedence.
|
|
659
|
+
if (pacificKey in channels) {
|
|
660
|
+
continue;
|
|
661
|
+
}
|
|
662
|
+
const entry = {
|
|
663
|
+
...(channel.channelSelector ? { channelSelector: channel.channelSelector } : {}),
|
|
664
|
+
name: (channel.name ?? key) + " (Pacific)",
|
|
665
|
+
stationId: channel.pacificStationId,
|
|
666
|
+
url: channel.url
|
|
667
|
+
};
|
|
668
|
+
generated[pacificKey] = entry;
|
|
669
|
+
}
|
|
670
|
+
// Merge manual and generated entries for Pacific canonical lookup in Tier 2.
|
|
671
|
+
const allChannels = { ...channels, ...generated };
|
|
672
|
+
// Tier 2: Generate Pacific provider variants from East provider variants.
|
|
673
|
+
for (const [key, channel] of Object.entries(channels)) {
|
|
674
|
+
const dashIndex = key.indexOf("-");
|
|
675
|
+
if (dashIndex === -1) {
|
|
676
|
+
continue;
|
|
677
|
+
}
|
|
678
|
+
const baseKey = key.substring(0, dashIndex);
|
|
679
|
+
const providerSuffix = key.substring(dashIndex);
|
|
680
|
+
// The base key must exist as a canonical entry (otherwise this is not a provider variant).
|
|
681
|
+
if (!(baseKey in channels)) {
|
|
682
|
+
continue;
|
|
683
|
+
}
|
|
684
|
+
const pacificCanonicalKey = baseKey + "p";
|
|
685
|
+
const pacificVariantKey = pacificCanonicalKey + providerSuffix;
|
|
686
|
+
// A Pacific canonical must exist (manual or generated) for the variant to be meaningful.
|
|
687
|
+
if (!(pacificCanonicalKey in allChannels)) {
|
|
688
|
+
continue;
|
|
689
|
+
}
|
|
690
|
+
// Manual Pacific variant takes precedence.
|
|
691
|
+
if ((pacificVariantKey in channels) || (pacificVariantKey in generated)) {
|
|
692
|
+
continue;
|
|
693
|
+
}
|
|
694
|
+
// Skip when the East variant's channelSelector contains timezone-specific terms. These channels have provider-specific East/West entries
|
|
695
|
+
// (e.g., Hulu's "TBS (East)" / "TBS (West)") and need manually-defined Pacific variants with the correct West selector.
|
|
696
|
+
if (channel.channelSelector && eastWestPattern.test(channel.channelSelector)) {
|
|
697
|
+
continue;
|
|
698
|
+
}
|
|
699
|
+
const entry = {
|
|
700
|
+
...(channel.channelSelector ? { channelSelector: channel.channelSelector } : {}),
|
|
701
|
+
url: channel.url
|
|
702
|
+
};
|
|
703
|
+
generated[pacificVariantKey] = entry;
|
|
704
|
+
}
|
|
705
|
+
return generated;
|
|
706
|
+
}
|
|
707
|
+
export const CHANNELS = { ...generatePacificEntries(BASE_CHANNELS), ...BASE_CHANNELS };
|
|
317
708
|
// Re-export CHANNELS as PREDEFINED_CHANNELS for use in userChannels.ts where the distinction between predefined and user channels is important.
|
|
318
709
|
export { CHANNELS as PREDEFINED_CHANNELS };
|
|
319
710
|
//# sourceMappingURL=index.js.map
|