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