prismcast 1.5.2 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/README.md +44 -28
  2. package/dist/app.d.ts +5 -0
  3. package/dist/app.js +63 -5
  4. package/dist/app.js.map +1 -1
  5. package/dist/browser/channelSelection.js +14 -2
  6. package/dist/browser/channelSelection.js.map +1 -1
  7. package/dist/browser/index.d.ts +23 -9
  8. package/dist/browser/index.js +205 -88
  9. package/dist/browser/index.js.map +1 -1
  10. package/dist/browser/precaching.js +3 -3
  11. package/dist/browser/precaching.js.map +1 -1
  12. package/dist/browser/tuning/directv.js +13 -0
  13. package/dist/browser/tuning/directv.js.map +1 -1
  14. package/dist/browser/tuning/fox.js +12 -0
  15. package/dist/browser/tuning/fox.js.map +1 -1
  16. package/dist/browser/tuning/hbo.js +11 -0
  17. package/dist/browser/tuning/hbo.js.map +1 -1
  18. package/dist/browser/tuning/hulu.js +23 -0
  19. package/dist/browser/tuning/hulu.js.map +1 -1
  20. package/dist/browser/tuning/sling.js +34 -4
  21. package/dist/browser/tuning/sling.js.map +1 -1
  22. package/dist/browser/tuning/spectrum.js +12 -0
  23. package/dist/browser/tuning/spectrum.js.map +1 -1
  24. package/dist/browser/tuning/xfinity.d.ts +2 -0
  25. package/dist/browser/tuning/xfinity.js +607 -0
  26. package/dist/browser/tuning/xfinity.js.map +1 -0
  27. package/dist/browser/tuning/youtubeTv.js +14 -0
  28. package/dist/browser/tuning/youtubeTv.js.map +1 -1
  29. package/dist/browser/video.d.ts +2 -0
  30. package/dist/browser/video.js +99 -17
  31. package/dist/browser/video.js.map +1 -1
  32. package/dist/channels/index.js +173 -56
  33. package/dist/channels/index.js.map +1 -1
  34. package/dist/config/health.d.ts +28 -28
  35. package/dist/config/health.js +52 -52
  36. package/dist/config/health.js.map +1 -1
  37. package/dist/config/paths.d.ts +12 -0
  38. package/dist/config/paths.js +16 -0
  39. package/dist/config/paths.js.map +1 -1
  40. package/dist/config/profiles.d.ts +3 -2
  41. package/dist/config/profiles.js +45 -34
  42. package/dist/config/profiles.js.map +1 -1
  43. package/dist/config/providers.d.ts +7 -0
  44. package/dist/config/providers.js +14 -0
  45. package/dist/config/providers.js.map +1 -1
  46. package/dist/config/sites.d.ts +28 -0
  47. package/dist/config/sites.js +93 -122
  48. package/dist/config/sites.js.map +1 -1
  49. package/dist/config/userChannels.d.ts +3 -0
  50. package/dist/config/userChannels.js +10 -3
  51. package/dist/config/userChannels.js.map +1 -1
  52. package/dist/config/userConfig.d.ts +1 -0
  53. package/dist/config/userConfig.js +4 -0
  54. package/dist/config/userConfig.js.map +1 -1
  55. package/dist/config/userProfiles.d.ts +0 -1
  56. package/dist/config/userProfiles.js +18 -10
  57. package/dist/config/userProfiles.js.map +1 -1
  58. package/dist/index.js +16 -7
  59. package/dist/index.js.map +1 -1
  60. package/dist/native/decrypt.d.ts +32 -0
  61. package/dist/native/decrypt.js +85 -0
  62. package/dist/native/decrypt.js.map +1 -0
  63. package/dist/native/index.d.ts +58 -0
  64. package/dist/native/index.js +341 -0
  65. package/dist/native/index.js.map +1 -0
  66. package/dist/native/intercept.d.ts +35 -0
  67. package/dist/native/intercept.js +184 -0
  68. package/dist/native/intercept.js.map +1 -0
  69. package/dist/native/probe.d.ts +48 -0
  70. package/dist/native/probe.js +270 -0
  71. package/dist/native/probe.js.map +1 -0
  72. package/dist/native/proxy.d.ts +52 -0
  73. package/dist/native/proxy.js +904 -0
  74. package/dist/native/proxy.js.map +1 -0
  75. package/dist/routes/config/channels/table.js +19 -25
  76. package/dist/routes/config/channels/table.js.map +1 -1
  77. package/dist/routes/config/providers.js +4 -4
  78. package/dist/routes/config/providers.js.map +1 -1
  79. package/dist/routes/debug.js +5 -5
  80. package/dist/routes/debug.js.map +1 -1
  81. package/dist/routes/hls.js +12 -2
  82. package/dist/routes/hls.js.map +1 -1
  83. package/dist/routes/index.d.ts +1 -0
  84. package/dist/routes/index.js +3 -0
  85. package/dist/routes/index.js.map +1 -1
  86. package/dist/routes/root/content.js +80 -20
  87. package/dist/routes/root/content.js.map +1 -1
  88. package/dist/routes/root/scripts/status.js +14 -13
  89. package/dist/routes/root/scripts/status.js.map +1 -1
  90. package/dist/routes/root/styles.js +4 -2
  91. package/dist/routes/root/styles.js.map +1 -1
  92. package/dist/streaming/fmp4Segmenter.d.ts +3 -0
  93. package/dist/streaming/fmp4Segmenter.js +143 -42
  94. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  95. package/dist/streaming/hls.d.ts +24 -19
  96. package/dist/streaming/hls.js +486 -261
  97. package/dist/streaming/hls.js.map +1 -1
  98. package/dist/streaming/hlsResume.d.ts +7 -0
  99. package/dist/streaming/hlsResume.js +22 -2
  100. package/dist/streaming/hlsResume.js.map +1 -1
  101. package/dist/streaming/hlsSegments.d.ts +42 -2
  102. package/dist/streaming/hlsSegments.js +109 -8
  103. package/dist/streaming/hlsSegments.js.map +1 -1
  104. package/dist/streaming/lifecycle.js +20 -2
  105. package/dist/streaming/lifecycle.js.map +1 -1
  106. package/dist/streaming/monitor.d.ts +1 -0
  107. package/dist/streaming/monitor.js +369 -21
  108. package/dist/streaming/monitor.js.map +1 -1
  109. package/dist/streaming/mp4Parser.d.ts +52 -6
  110. package/dist/streaming/mp4Parser.js +156 -30
  111. package/dist/streaming/mp4Parser.js.map +1 -1
  112. package/dist/streaming/mpegts.d.ts +2 -2
  113. package/dist/streaming/mpegts.js +156 -109
  114. package/dist/streaming/mpegts.js.map +1 -1
  115. package/dist/streaming/playlistBuilder.d.ts +38 -0
  116. package/dist/streaming/playlistBuilder.js +66 -0
  117. package/dist/streaming/playlistBuilder.js.map +1 -0
  118. package/dist/streaming/preroll.d.ts +106 -0
  119. package/dist/streaming/preroll.js +373 -0
  120. package/dist/streaming/preroll.js.map +1 -0
  121. package/dist/streaming/pretune.d.ts +8 -0
  122. package/dist/streaming/pretune.js +226 -0
  123. package/dist/streaming/pretune.js.map +1 -0
  124. package/dist/streaming/registry.d.ts +24 -3
  125. package/dist/streaming/registry.js +23 -1
  126. package/dist/streaming/registry.js.map +1 -1
  127. package/dist/streaming/setup.d.ts +7 -0
  128. package/dist/streaming/setup.js +27 -6
  129. package/dist/streaming/setup.js.map +1 -1
  130. package/dist/streaming/showInfo.d.ts +24 -0
  131. package/dist/streaming/showInfo.js +55 -3
  132. package/dist/streaming/showInfo.js.map +1 -1
  133. package/dist/streaming/statusEmitter.d.ts +6 -4
  134. package/dist/streaming/statusEmitter.js +9 -3
  135. package/dist/streaming/statusEmitter.js.map +1 -1
  136. package/dist/types/channels.d.ts +1 -0
  137. package/dist/types/index.d.ts +1 -1
  138. package/dist/types/profiles.d.ts +8 -1
  139. package/dist/types/selection.d.ts +4 -1
  140. package/dist/types/streaming.d.ts +7 -0
  141. package/dist/utils/chromeFetch.d.ts +20 -0
  142. package/dist/utils/chromeFetch.js +43 -0
  143. package/dist/utils/chromeFetch.js.map +1 -0
  144. package/dist/utils/debugFilter.js +15 -0
  145. package/dist/utils/debugFilter.js.map +1 -1
  146. package/dist/utils/delay.d.ts +16 -0
  147. package/dist/utils/delay.js +15 -1
  148. package/dist/utils/delay.js.map +1 -1
  149. package/dist/utils/ffmpeg.d.ts +1 -7
  150. package/dist/utils/ffmpeg.js +86 -127
  151. package/dist/utils/ffmpeg.js.map +1 -1
  152. package/dist/utils/index.d.ts +2 -0
  153. package/dist/utils/index.js +2 -0
  154. package/dist/utils/index.js.map +1 -1
  155. package/dist/utils/pid.d.ts +40 -0
  156. package/dist/utils/pid.js +83 -0
  157. package/dist/utils/pid.js.map +1 -0
  158. package/package.json +5 -5
@@ -12,8 +12,9 @@
12
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
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
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.
15
+ * rowheaders (e.g., ESPN, CNN, Discovery Channel) or a network name (e.g., NBC) for local affiliates. For xfinityDirect (xfinityStream), this is the network
16
+ * name from the channelmap API branchOf field (e.g., CNN, ESPN, Animal Planet) or callSign (e.g., CNNHD, ESPND). For youtubeGrid (youtubeTV), this is the
17
+ * channel name from the YouTube TV guide or a network name (e.g., NBC) for local affiliates.
17
18
  * - provider: Display name override for the provider selection dropdown (optional). Normally auto-derived from the URL domain via DOMAIN_CONFIG in
18
19
  * config/profiles.ts. Only needed when a channel's display name should differ from the domain-level default.
19
20
  *
@@ -35,59 +36,72 @@ const BASE_CHANNELS = {
35
36
  "abc-hulu": { channelSelector: "ABC", url: "https://www.hulu.com/live" },
36
37
  "abc-sling": { channelSelector: "ABC", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
37
38
  "abc-spectrum": { channelSelector: "ABC", url: "https://watch.spectrum.net/guide" },
39
+ "abc-xfinity": { channelSelector: "ABC", url: "https://www.xfinity.com/stream/listings" },
38
40
  "abc-yttv": { channelSelector: "ABC", url: "https://tv.youtube.com/live" },
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: { channelSelector: "ABC News Live", name: "ABC News Live", stationId: "113380", url: "https://stream.directv.com" },
42
+ "abcnews-hulu": { channelSelector: "ABC News Live", url: "https://www.hulu.com/live" },
41
43
  "abcnews-sling": { channelSelector: "ABC News Live", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
44
+ "abcnews-xfinity": { channelSelector: "ABCNL", url: "https://www.xfinity.com/stream/listings" },
42
45
  "abcnews-yttv": { channelSelector: "ABC News Live", url: "https://tv.youtube.com/live" },
43
46
  ae: { name: "A&E", pacificStationId: "57439", stationId: "51529", url: "https://play.aetv.com/live" },
44
47
  "ae-directv": { channelSelector: "A&E", url: "https://stream.directv.com" },
45
48
  "ae-hulu": { channelSelector: "A&E", url: "https://www.hulu.com/live" },
46
49
  "ae-sling": { channelSelector: "A&E", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
47
50
  "ae-spectrum": { channelSelector: "A&E", url: "https://watch.spectrum.net/guide" },
51
+ "ae-xfinity": { channelSelector: "A&E", url: "https://www.xfinity.com/stream/listings" },
48
52
  "ae-yttv": { channelSelector: "A&E", url: "https://tv.youtube.com/live" },
49
53
  ahc: { name: "American Heroes", stationId: "78808", url: "https://watch.foodnetwork.com/channel/ahc" },
50
54
  "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" },
55
+ "ahc-xfinity": { channelSelector: "American Heroes", url: "https://www.xfinity.com/stream/listings" },
56
+ amc: { channelSelector: "AMC", name: "AMC", pacificStationId: "78836", stationId: "59337", url: "https://stream.directv.com" },
57
+ "amc-sling": { channelSelector: "AMC", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
53
58
  "amc-spectrum": { channelSelector: "AMC", url: "https://watch.spectrum.net/guide" },
59
+ "amc-xfinity": { channelSelector: "AMC", url: "https://www.xfinity.com/stream/listings" },
54
60
  "amc-yttv": { channelSelector: "AMC", url: "https://tv.youtube.com/live" },
55
- amcthrillers: { channelSelector: "AMC Thrillers", name: "AMC Thrillers", stationId: "115678", url: "https://tv.youtube.com/live" },
56
- "amcthrillers-sling": { channelSelector: "AMC Thrillers", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
61
+ amcthrillers: { channelSelector: "AMC Thrillers", name: "AMC Thrillers", stationId: "115678", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
62
+ "amcthrillers-yttv": { channelSelector: "AMC Thrillers", url: "https://tv.youtube.com/live" },
57
63
  animal: { name: "Animal Planet", pacificStationId: "68785", stationId: "57394", url: "https://watch.foodnetwork.com/channel/animal-planet" },
58
64
  "animal-directv": { channelSelector: "Animal Planet", url: "https://stream.directv.com" },
59
65
  "animal-hulu": { channelSelector: "Animal Planet", url: "https://www.hulu.com/live" },
60
66
  "animal-spectrum": { channelSelector: "Animal Planet", url: "https://watch.spectrum.net/guide" },
67
+ "animal-xfinity": { channelSelector: "Animal Planet", url: "https://www.xfinity.com/stream/listings" },
61
68
  "animal-yttv": { channelSelector: "Animal Planet", url: "https://tv.youtube.com/live" },
62
69
  axstv: { channelSelector: "AXS TV", name: "AXS TV", stationId: "28506", url: "https://stream.directv.com" },
63
70
  "axstv-spectrum": { channelSelector: "AXS TV", url: "https://watch.spectrum.net/guide" },
64
- bbcamerica: { channelSelector: "BBC America", name: "BBC America", pacificStationId: "76739", stationId: "64492", url: "https://tv.youtube.com/live" },
65
- "bbcamerica-directv": { channelSelector: "BBC America", url: "https://stream.directv.com" },
71
+ "axstv-xfinity": { channelSelector: "AXS TV", url: "https://www.xfinity.com/stream/listings" },
72
+ bbcamerica: { channelSelector: "BBC America", name: "BBC America", pacificStationId: "76739", stationId: "64492", url: "https://stream.directv.com" },
66
73
  "bbcamerica-sling": { channelSelector: "BBC America", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
67
74
  "bbcamerica-spectrum": { channelSelector: "BBC America", url: "https://watch.spectrum.net/guide" },
68
- bbcnews: { channelSelector: "BBC News", name: "BBC News", stationId: "101449", url: "https://tv.youtube.com/live" },
69
- "bbcnews-directv": { channelSelector: "BBC News", url: "https://stream.directv.com" },
75
+ "bbcamerica-xfinity": { channelSelector: "BBC America", url: "https://www.xfinity.com/stream/listings" },
76
+ "bbcamerica-yttv": { channelSelector: "BBC America", url: "https://tv.youtube.com/live" },
77
+ bbcnews: { channelSelector: "BBC News", name: "BBC News", stationId: "101449", url: "https://stream.directv.com" },
70
78
  "bbcnews-sling": { channelSelector: "BBC News", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
71
79
  "bbcnews-spectrum": { channelSelector: "BBC World News", url: "https://watch.spectrum.net/guide" },
80
+ "bbcnews-xfinity": { channelSelector: "BBC News", url: "https://www.xfinity.com/stream/listings" },
81
+ "bbcnews-yttv": { channelSelector: "BBC News", url: "https://tv.youtube.com/live" },
72
82
  bet: { name: "BET", pacificStationId: "64673", stationId: "63236", url: "https://www.bet.com/live-tv" },
73
83
  "bet-directv": { channelSelector: "BET", url: "https://stream.directv.com" },
74
84
  "bet-hulu": { channelSelector: "BET", url: "https://www.hulu.com/live" },
75
85
  "bet-sling": { channelSelector: "BET", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
76
86
  "bet-spectrum": { channelSelector: "BET", url: "https://watch.spectrum.net/guide" },
87
+ "bet-xfinity": { channelSelector: "BET", url: "https://www.xfinity.com/stream/listings" },
77
88
  "bet-yttv": { channelSelector: "BET", url: "https://tv.youtube.com/live" },
78
- bether: { channelSelector: "BET Her", name: "BET Her", pacificStationId: "97360", stationId: "63220", url: "https://tv.youtube.com/live" },
79
- "bether-directv": { channelSelector: "BET Her", url: "https://stream.directv.com" },
89
+ bether: { channelSelector: "BET Her", name: "BET Her", pacificStationId: "97360", stationId: "63220", url: "https://stream.directv.com" },
80
90
  "bether-spectrum": { channelSelector: "BET Her", url: "https://watch.spectrum.net/guide" },
91
+ "bether-xfinity": { channelSelector: "BET Her", url: "https://www.xfinity.com/stream/listings" },
92
+ "bether-yttv": { channelSelector: "BET Her", url: "https://tv.youtube.com/live" },
81
93
  bigten: { name: "Big 10", stationId: "58321", url: "https://www.foxsports.com/live/btn" },
82
94
  "bigten-directv": { channelSelector: "Big Ten", url: "https://stream.directv.com" },
83
95
  "bigten-foxcom": { channelSelector: "BTN", url: "https://www.fox.com/live/channels" },
84
96
  "bigten-hulu": { channelSelector: "Big Ten Network", url: "https://www.hulu.com/live" },
85
97
  "bigten-spectrum": { channelSelector: "Big Ten Network", url: "https://watch.spectrum.net/guide" },
98
+ "bigten-xfinity": { channelSelector: "Big Ten Network", url: "https://www.xfinity.com/stream/listings" },
86
99
  "bigten-yttv": { channelSelector: "BTN", url: "https://tv.youtube.com/live" },
87
- bloomberg: { channelSelector: "Bloomberg Television", name: "Bloomberg Television", stationId: "71799", url: "https://www.hulu.com/live" },
88
- "bloomberg-directv": { channelSelector: "Bloomberg TV", url: "https://stream.directv.com" },
100
+ bloomberg: { channelSelector: "Bloomberg TV", name: "Bloomberg Television", stationId: "71799", url: "https://stream.directv.com" },
101
+ "bloomberg-hulu": { channelSelector: "Bloomberg Television", url: "https://www.hulu.com/live" },
89
102
  "bloomberg-sling": { channelSelector: "Bloomberg TV+", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
90
103
  "bloomberg-spectrum": { channelSelector: "Bloomberg TV", url: "https://watch.spectrum.net/guide" },
104
+ "bloomberg-xfinity": { channelSelector: "Bloomberg", url: "https://www.xfinity.com/stream/listings" },
91
105
  "bloomberg-yttv": { channelSelector: "Bloomberg TV+", url: "https://tv.youtube.com/live" },
92
106
  bloombergoriginals: { channelSelector: "Bloomberg Originals", name: "Bloomberg Originals", stationId: "175656", url: "https://tv.youtube.com/live" },
93
107
  bravo: { name: "Bravo", stationId: "58625", url: "https://www.nbc.com/live?brand=bravo&callsign=bravo_east" },
@@ -95,33 +109,39 @@ const BASE_CHANNELS = {
95
109
  "bravo-hulu": { channelSelector: "Bravo", url: "https://www.hulu.com/live" },
96
110
  "bravo-sling": { channelSelector: "Bravo", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
97
111
  "bravo-spectrum": { channelSelector: "Bravo", url: "https://watch.spectrum.net/guide" },
112
+ "bravo-xfinity": { channelSelector: "Bravo", url: "https://www.xfinity.com/stream/listings" },
98
113
  "bravo-yttv": { channelSelector: "Bravo", url: "https://tv.youtube.com/live" },
99
114
  bravop: { name: "Bravo (Pacific)", stationId: "73994", url: "https://www.nbc.com/live?brand=bravo&callsign=bravo_west" },
100
- cartoon: { channelSelector: "Cartoon Network", name: "Cartoon Network", pacificStationId: "67703", stationId: "60048", url: "https://tv.youtube.com/live" },
101
- "cartoon-directv": { channelSelector: "Cartoon Network", url: "https://stream.directv.com" },
115
+ cartoon: { channelSelector: "Cartoon Network", name: "Cartoon Network", pacificStationId: "67703", stationId: "60048", url: "https://stream.directv.com" },
102
116
  "cartoon-hulu": { channelSelector: "Cartoon Network (East)", url: "https://www.hulu.com/live" },
103
117
  "cartoon-spectrum": { channelSelector: "Cartoon Network", url: "https://watch.spectrum.net/guide" },
118
+ "cartoon-xfinity": { channelSelector: "Cartoon Network", url: "https://www.xfinity.com/stream/listings" },
119
+ "cartoon-yttv": { channelSelector: "Cartoon Network", url: "https://tv.youtube.com/live" },
104
120
  "cartoonp-hulu": { channelSelector: "Cartoon Network (West)", url: "https://www.hulu.com/live" },
105
121
  cbs: { name: "CBS", url: "https://www.cbs.com/live-tv/stream" },
106
122
  "cbs-directv": { channelSelector: "CBS", url: "https://stream.directv.com" },
107
123
  "cbs-hulu": { channelSelector: "CBS", url: "https://www.hulu.com/live" },
108
124
  "cbs-paramountplus": { name: "CBS", url: "https://www.paramountplus.com/live-tv/" },
109
125
  "cbs-spectrum": { channelSelector: "CBS", url: "https://watch.spectrum.net/guide" },
126
+ "cbs-xfinity": { channelSelector: "CBS", url: "https://www.xfinity.com/stream/listings" },
110
127
  "cbs-yttv": { channelSelector: "CBS", url: "https://tv.youtube.com/live" },
111
128
  cbsnews: { channelSelector: "CBS News 24/7", name: "CBS News 24/7", stationId: "104846", url: "https://www.hulu.com/live" },
112
129
  "cbsnews-sling": { channelSelector: "CBS News 24/7", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
113
130
  cbssports: { channelSelector: "CBS Sports Network", name: "CBS Sports Network", stationId: "59250", url: "https://www.hulu.com/live" },
114
131
  "cbssports-spectrum": { channelSelector: "CBS Sports Network", url: "https://watch.spectrum.net/guide" },
132
+ "cbssports-xfinity": { channelSelector: "CBS Sports Network", url: "https://www.xfinity.com/stream/listings" },
115
133
  "cbssports-yttv": { channelSelector: "CBS Sports Network", url: "https://tv.youtube.com/live" },
116
- cmt: { channelSelector: "CMT", name: "CMT", pacificStationId: "64610", stationId: "59440", url: "https://www.hulu.com/live" },
117
- "cmt-directv": { channelSelector: "CMT", url: "https://stream.directv.com" },
134
+ cmt: { channelSelector: "CMT", name: "CMT", pacificStationId: "64610", stationId: "59440", url: "https://stream.directv.com" },
135
+ "cmt-hulu": { channelSelector: "CMT", url: "https://www.hulu.com/live" },
118
136
  "cmt-spectrum": { channelSelector: "CMT", url: "https://watch.spectrum.net/guide" },
137
+ "cmt-xfinity": { channelSelector: "CMT", url: "https://www.xfinity.com/stream/listings" },
119
138
  "cmt-yttv": { channelSelector: "CMT", url: "https://tv.youtube.com/live" },
120
139
  cnbc: { name: "CNBC", stationId: "58780", url: "https://www.cnbc.com/live-tv" },
121
140
  "cnbc-directv": { channelSelector: "CNBC", url: "https://stream.directv.com" },
122
141
  "cnbc-hulu": { channelSelector: "CNBC", url: "https://www.hulu.com/live" },
123
142
  "cnbc-spectrum": { channelSelector: "CNBC", url: "https://watch.spectrum.net/guide" },
124
143
  "cnbc-usa": { channelSelector: "CNBC_US", url: "https://www.usanetwork.com/live" },
144
+ "cnbc-xfinity": { channelSelector: "CNBC", url: "https://www.xfinity.com/stream/listings" },
125
145
  "cnbc-yttv": { channelSelector: "CNBC", url: "https://tv.youtube.com/live" },
126
146
  cnbcworld: { channelSelector: "CNBC World", name: "CNBC World", stationId: "26849", url: "https://stream.directv.com" },
127
147
  "cnbcworld-spectrum": { channelSelector: "CNBC World", url: "https://watch.spectrum.net/guide" },
@@ -130,72 +150,86 @@ const BASE_CHANNELS = {
130
150
  "cnn-hulu": { channelSelector: "CNN", url: "https://www.hulu.com/live" },
131
151
  "cnn-sling": { channelSelector: "CNN", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
132
152
  "cnn-spectrum": { channelSelector: "CNN", url: "https://watch.spectrum.net/guide" },
153
+ "cnn-xfinity": { channelSelector: "CNN", url: "https://www.xfinity.com/stream/listings" },
133
154
  "cnn-yttv": { channelSelector: "CNN", url: "https://tv.youtube.com/live" },
134
155
  cnni: { name: "CNN International", stationId: "83110", url: "https://www.cnn.com/videos/cnn-i" },
135
156
  "cnni-directv": { channelSelector: "CNNi HD East", url: "https://stream.directv.com" },
136
157
  "cnni-hulu": { channelSelector: "CNN International", url: "https://www.hulu.com/live" },
137
158
  "cnni-yttv": { channelSelector: "CNN International", url: "https://tv.youtube.com/live" },
138
- "comedycentral": { channelSelector: "Comedy Central", name: "Comedy Central", pacificStationId: "64599", stationId: "62420", url: "https://www.hulu.com/live" },
139
- "comedycentral-directv": { channelSelector: "Comedy Central", url: "https://stream.directv.com" },
159
+ "comedycentral": { channelSelector: "Comedy Central", name: "Comedy Central", pacificStationId: "64599", stationId: "62420", url: "https://stream.directv.com" },
160
+ "comedycentral-hulu": { channelSelector: "Comedy Central", url: "https://www.hulu.com/live" },
140
161
  "comedycentral-sling": { channelSelector: "Comedy Central", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
141
162
  "comedycentral-spectrum": { channelSelector: "Comedy Central", url: "https://watch.spectrum.net/guide" },
163
+ "comedycentral-xfinity": { channelSelector: "Comedy Central", url: "https://www.xfinity.com/stream/listings" },
142
164
  "comedycentral-yttv": { channelSelector: "Comedy Central", url: "https://tv.youtube.com/live" },
143
165
  cooking: { name: "Cooking", stationId: "68065", url: "https://watch.foodnetwork.com/channel/cooking-channel" },
144
166
  "cooking-directv": { channelSelector: "Cooking Channel", url: "https://stream.directv.com" },
145
167
  "cooking-spectrum": { channelSelector: "Cooking Channel", url: "https://watch.spectrum.net/guide" },
168
+ "cooking-xfinity": { channelSelector: "Cooking Channel", url: "https://www.xfinity.com/stream/listings" },
146
169
  cspan: { name: "C-SPAN", stationId: "68344", url: "https://www.c-span.org/networks/?autoplay=true&channel=c-span" },
147
170
  "cspan-directv": { channelSelector: "C-SPAN", url: "https://stream.directv.com" },
148
171
  "cspan-hulu": { channelSelector: "C-SPAN", url: "https://www.hulu.com/live" },
149
172
  "cspan-spectrum": { channelSelector: "C-SPAN", url: "https://watch.spectrum.net/guide" },
173
+ "cspan-xfinity": { channelSelector: "C-SPAN", url: "https://www.xfinity.com/stream/listings" },
150
174
  "cspan-yttv": { channelSelector: "C-SPAN", url: "https://tv.youtube.com/live" },
151
175
  cspan2: { name: "C-SPAN 2", stationId: "68334", url: "https://www.c-span.org/networks/?autoplay=true&channel=c-span-2" },
152
176
  "cspan2-directv": { channelSelector: "C-SPAN2", url: "https://stream.directv.com" },
153
177
  "cspan2-hulu": { channelSelector: "C-SPAN2", url: "https://www.hulu.com/live" },
154
178
  "cspan2-spectrum": { channelSelector: "C-SPAN 2", url: "https://watch.spectrum.net/guide" },
179
+ "cspan2-xfinity": { channelSelector: "CPN2D", url: "https://www.xfinity.com/stream/listings" },
155
180
  "cspan2-yttv": { channelSelector: "C-SPAN2", url: "https://tv.youtube.com/live" },
156
181
  cspan3: { name: "C-SPAN 3", stationId: "68332", url: "https://www.c-span.org/networks/?autoplay=true&channel=c-span-3" },
157
182
  "cspan3-hulu": { channelSelector: "C-SPAN3", url: "https://www.hulu.com/live" },
158
183
  "cspan3-spectrum": { channelSelector: "C-SPAN 3", url: "https://watch.spectrum.net/guide" },
184
+ "cspan3-xfinity": { channelSelector: "CPN3H", url: "https://www.xfinity.com/stream/listings" },
159
185
  "cspan3-yttv": { channelSelector: "C-SPAN3", url: "https://tv.youtube.com/live" },
160
- cw: { channelSelector: "CW", name: "CW", url: "https://www.hulu.com/live" },
161
- "cw-directv": { channelSelector: "CW", url: "https://stream.directv.com" },
186
+ cw: { channelSelector: "CW", name: "CW", url: "https://stream.directv.com" },
187
+ "cw-hulu": { channelSelector: "CW", url: "https://www.hulu.com/live" },
162
188
  "cw-spectrum": { channelSelector: "CW", url: "https://watch.spectrum.net/guide" },
189
+ "cw-xfinity": { channelSelector: "CW TV", url: "https://www.xfinity.com/stream/listings" },
163
190
  "cw-yttv": { channelSelector: "CW", url: "https://tv.youtube.com/live" },
164
191
  discovery: { name: "Discovery", pacificStationId: "80399", stationId: "56905", url: "https://watch.foodnetwork.com/channel/discovery" },
165
192
  "discovery-directv": { channelSelector: "Discovery", url: "https://stream.directv.com" },
166
193
  "discovery-hulu": { channelSelector: "Discovery", url: "https://www.hulu.com/live" },
167
194
  "discovery-sling": { channelSelector: "Discovery", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
168
195
  "discovery-spectrum": { channelSelector: "Discovery Channel", url: "https://watch.spectrum.net/guide" },
196
+ "discovery-xfinity": { channelSelector: "Discovery Channel", url: "https://www.xfinity.com/stream/listings" },
169
197
  "discovery-yttv": { channelSelector: "Discovery Channel", url: "https://tv.youtube.com/live" },
170
198
  discoverylife: { name: "Discovery Life", stationId: "92204", url: "https://watch.foodnetwork.com/channel/discovery-life" },
171
199
  "discoverylife-directv": { channelSelector: "Discovery Life", url: "https://stream.directv.com" },
172
200
  "discoverylife-spectrum": { channelSelector: "Discovery Life", url: "https://watch.spectrum.net/guide" },
201
+ "discoverylife-xfinity": { channelSelector: "Discovery Life", url: "https://www.xfinity.com/stream/listings" },
173
202
  discoveryturbo: { name: "Discovery Turbo", stationId: "31046", url: "https://watch.foodnetwork.com/channel/motortrend" },
174
203
  "discoveryturbo-directv": { channelSelector: "Discovery Turbo", url: "https://stream.directv.com" },
175
204
  "discoveryturbo-hulu": { channelSelector: "Discovery Turbo", url: "https://www.hulu.com/live" },
176
205
  "discoveryturbo-sling": { channelSelector: "Discovery Turbo", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
177
206
  "discoveryturbo-spectrum": { channelSelector: "Discovery Turbo", url: "https://watch.spectrum.net/guide" },
207
+ "discoveryturbo-xfinity": { channelSelector: "Discovery Turbo", url: "https://www.xfinity.com/stream/listings" },
178
208
  "discoveryturbo-yttv": { channelSelector: "Discovery Turbo", url: "https://tv.youtube.com/live" },
179
209
  disney: { name: "Disney", pacificStationId: "63320", stationId: "59684", url: "https://disneynow.com/watch-live?brand=004" },
180
210
  "disney-directv": { channelSelector: "Disney Channel", url: "https://stream.directv.com" },
181
211
  "disney-hulu": { channelSelector: "Disney Channel", url: "https://www.hulu.com/live" },
182
212
  "disney-sling": { channelSelector: "Disney Channel", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
183
213
  "disney-spectrum": { channelSelector: "Disney Channel", url: "https://watch.spectrum.net/guide" },
214
+ "disney-xfinity": { channelSelector: "Disney Channel", url: "https://www.xfinity.com/stream/listings" },
184
215
  "disney-yttv": { channelSelector: "Disney Channel", url: "https://tv.youtube.com/live" },
185
216
  disneyjr: { name: "Disney Jr.", pacificStationId: "75004", stationId: "74885", url: "https://disneynow.com/watch-live?brand=008" },
186
217
  "disneyjr-directv": { channelSelector: "Disney Junior", url: "https://stream.directv.com" },
187
218
  "disneyjr-hulu": { channelSelector: "Disney Junior", url: "https://www.hulu.com/live" },
188
219
  "disneyjr-spectrum": { channelSelector: "Disney Junior", url: "https://watch.spectrum.net/guide" },
220
+ "disneyjr-xfinity": { channelSelector: "Disney Jr.", url: "https://www.xfinity.com/stream/listings" },
189
221
  "disneyjr-yttv": { channelSelector: "Disney Junior", url: "https://tv.youtube.com/live" },
190
222
  disneyxd: { name: "Disney XD", pacificStationId: "63322", stationId: "60006", url: "https://disneynow.com/watch-live?brand=009" },
191
223
  "disneyxd-hulu": { channelSelector: "Disney XD", url: "https://www.hulu.com/live" },
192
224
  "disneyxd-spectrum": { channelSelector: "Disney XD", url: "https://watch.spectrum.net/guide" },
225
+ "disneyxd-xfinity": { channelSelector: "Disney XD", url: "https://www.xfinity.com/stream/listings" },
193
226
  "disneyxd-yttv": { channelSelector: "Disney XD", url: "https://tv.youtube.com/live" },
194
227
  e: { channelSelector: "E-_East", name: "E!", stationId: "61812", url: "https://www.usanetwork.com/live" },
195
228
  "e-directv": { channelSelector: "E!", url: "https://stream.directv.com" },
196
229
  "e-hulu": { channelSelector: "E!", url: "https://www.hulu.com/live" },
197
230
  "e-sling": { channelSelector: "E!", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
198
231
  "e-spectrum": { channelSelector: "E!", url: "https://watch.spectrum.net/guide" },
232
+ "e-xfinity": { channelSelector: "E!", url: "https://www.xfinity.com/stream/listings" },
199
233
  "e-yttv": { channelSelector: "E!", url: "https://tv.youtube.com/live" },
200
234
  ep: { channelSelector: "E-_West", name: "E! (Pacific)", stationId: "91579", url: "https://www.usanetwork.com/live" },
201
235
  espn: { name: "ESPN", stationId: "32645", url: "https://www.espn.com/watch/player?network=espn" },
@@ -204,6 +238,7 @@ const BASE_CHANNELS = {
204
238
  "espn-hulu": { channelSelector: "ESPN", url: "https://www.hulu.com/live" },
205
239
  "espn-sling": { channelSelector: "ESPN", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
206
240
  "espn-spectrum": { channelSelector: "ESPN", url: "https://watch.spectrum.net/guide" },
241
+ "espn-xfinity": { channelSelector: "ESPN", url: "https://www.xfinity.com/stream/listings" },
207
242
  "espn-yttv": { channelSelector: "ESPN", url: "https://tv.youtube.com/live" },
208
243
  espn2: { name: "ESPN2", stationId: "45507", url: "https://www.espn.com/watch/player?network=espn2" },
209
244
  "espn2-directv": { channelSelector: "ESPN2", url: "https://stream.directv.com" },
@@ -211,40 +246,47 @@ const BASE_CHANNELS = {
211
246
  "espn2-hulu": { channelSelector: "ESPN2", url: "https://www.hulu.com/live" },
212
247
  "espn2-sling": { channelSelector: "ESPN2", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
213
248
  "espn2-spectrum": { channelSelector: "ESPN2", url: "https://watch.spectrum.net/guide" },
249
+ "espn2-xfinity": { channelSelector: "ES2HD", url: "https://www.xfinity.com/stream/listings" },
214
250
  "espn2-yttv": { channelSelector: "ESPN2", url: "https://tv.youtube.com/live" },
215
251
  espnacc: { name: "ACC Network", stationId: "111871", url: "https://www.espn.com/watch/player?network=acc" },
216
252
  "espnacc-directv": { channelSelector: "ACC Network", url: "https://stream.directv.com" },
217
253
  "espnacc-disneyplus": { channelSelector: "poster_linear_acc-network_none", url: "https://www.disneyplus.com/browse/live" },
218
254
  "espnacc-hulu": { channelSelector: "ACC Network", url: "https://www.hulu.com/live" },
219
255
  "espnacc-spectrum": { channelSelector: "ACC Network", url: "https://watch.spectrum.net/guide" },
256
+ "espnacc-xfinity": { channelSelector: "ACC Network", url: "https://www.xfinity.com/stream/listings" },
220
257
  "espnacc-yttv": { channelSelector: "ACC Network", url: "https://tv.youtube.com/live" },
221
258
  espndeportes: { name: "ESPN Deportes", stationId: "71914", url: "https://www.espn.com/watch/player?network=espndeportes" },
222
259
  "espndeportes-disneyplus": { channelSelector: "poster_linear_espn-deportes_none", url: "https://www.disneyplus.com/browse/live" },
223
260
  "espndeportes-spectrum": { channelSelector: "ESPN Deportes", url: "https://watch.spectrum.net/guide" },
261
+ "espndeportes-xfinity": { channelSelector: "ESPN Deportes", url: "https://www.xfinity.com/stream/listings" },
224
262
  "espndeportes-yttv": { channelSelector: "ESPN Deportes", url: "https://tv.youtube.com/live" },
225
263
  espnews: { name: "ESPNews", stationId: "59976", url: "https://www.espn.com/watch/player?network=espnews" },
226
264
  "espnews-directv": { channelSelector: "ESPNews", url: "https://stream.directv.com" },
227
265
  "espnews-disneyplus": { channelSelector: "poster_linear_espnews_none", url: "https://www.disneyplus.com/browse/live" },
228
266
  "espnews-hulu": { channelSelector: "ESPNEWS", url: "https://www.hulu.com/live" },
229
267
  "espnews-spectrum": { channelSelector: "ESPNews", url: "https://watch.spectrum.net/guide" },
268
+ "espnews-xfinity": { channelSelector: "ESWHD", url: "https://www.xfinity.com/stream/listings" },
230
269
  "espnews-yttv": { channelSelector: "ESPNEWS", url: "https://tv.youtube.com/live" },
231
270
  espnsec: { name: "SEC Network", stationId: "89714", url: "https://www.espn.com/watch/player?network=sec" },
232
271
  "espnsec-directv": { channelSelector: "SEC Network", url: "https://stream.directv.com" },
233
272
  "espnsec-disneyplus": { channelSelector: "poster_linear_sec-network_none", url: "https://www.disneyplus.com/browse/live" },
234
273
  "espnsec-hulu": { channelSelector: "SEC Network", url: "https://www.hulu.com/live" },
235
274
  "espnsec-spectrum": { channelSelector: "SEC Network", url: "https://watch.spectrum.net/guide" },
275
+ "espnsec-xfinity": { channelSelector: "SEC", url: "https://www.xfinity.com/stream/listings" },
236
276
  "espnsec-yttv": { channelSelector: "SEC Network", url: "https://tv.youtube.com/live" },
237
277
  espnu: { name: "ESPNU", stationId: "60696", url: "https://www.espn.com/watch/player?network=espnu" },
238
278
  "espnu-directv": { channelSelector: "ESPNU", url: "https://stream.directv.com" },
239
279
  "espnu-disneyplus": { channelSelector: "poster_linear_espnu_none", url: "https://www.disneyplus.com/browse/live" },
240
280
  "espnu-hulu": { channelSelector: "ESPNU", url: "https://www.hulu.com/live" },
241
281
  "espnu-spectrum": { channelSelector: "ESPNU", url: "https://watch.spectrum.net/guide" },
282
+ "espnu-xfinity": { channelSelector: "ESPNU", url: "https://www.xfinity.com/stream/listings" },
242
283
  "espnu-yttv": { channelSelector: "ESPNU", url: "https://tv.youtube.com/live" },
243
284
  fbc: { name: "Fox Business", stationId: "58718", url: "https://www.foxbusiness.com/video/5640669329001" },
244
285
  "fbc-directv": { channelSelector: "Fox Business Network", url: "https://stream.directv.com" },
245
286
  "fbc-foxcom": { channelSelector: "FBN", url: "https://www.fox.com/live/channels" },
246
287
  "fbc-hulu": { channelSelector: "Fox Business", url: "https://www.hulu.com/live" },
247
288
  "fbc-spectrum": { channelSelector: "Fox Business Network", url: "https://watch.spectrum.net/guide" },
289
+ "fbc-xfinity": { channelSelector: "Fox Business", url: "https://www.xfinity.com/stream/listings" },
248
290
  "fbc-yttv": { channelSelector: "Fox Business", url: "https://tv.youtube.com/live" },
249
291
  fnc: { name: "Fox News", stationId: "60179", url: "https://www.foxnews.com/video/5614615980001" },
250
292
  "fnc-directv": { channelSelector: "Fox News Channel", url: "https://stream.directv.com" },
@@ -252,22 +294,26 @@ const BASE_CHANNELS = {
252
294
  "fnc-hulu": { channelSelector: "Fox News", url: "https://www.hulu.com/live" },
253
295
  "fnc-sling": { channelSelector: "Fox News", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
254
296
  "fnc-spectrum": { channelSelector: "Fox News Channel", url: "https://watch.spectrum.net/guide" },
297
+ "fnc-xfinity": { channelSelector: "Fox News", url: "https://www.xfinity.com/stream/listings" },
255
298
  "fnc-yttv": { channelSelector: "Fox News", url: "https://tv.youtube.com/live" },
256
299
  food: { name: "Food Network", pacificStationId: "82119", stationId: "50747", url: "https://watch.foodnetwork.com/channel/food-network" },
257
300
  "food-directv": { channelSelector: "Food Network", url: "https://stream.directv.com" },
258
301
  "food-hulu": { channelSelector: "Food Network", url: "https://www.hulu.com/live" },
259
302
  "food-sling": { channelSelector: "Food Network", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
260
303
  "food-spectrum": { channelSelector: "Food Network", url: "https://watch.spectrum.net/guide" },
304
+ "food-xfinity": { channelSelector: "Food Network", url: "https://www.xfinity.com/stream/listings" },
261
305
  "food-yttv": { channelSelector: "Food Network", url: "https://tv.youtube.com/live" },
262
306
  fox: { channelSelector: "FOXD2C", name: "Fox", url: "https://www.fox.com/live/channels" },
263
307
  "fox-directv": { channelSelector: "FOX", url: "https://stream.directv.com" },
264
308
  "fox-hulu": { channelSelector: "Fox", url: "https://www.hulu.com/live" },
265
309
  "fox-sling": { channelSelector: "FOX", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
266
310
  "fox-spectrum": { channelSelector: "FOX", url: "https://watch.spectrum.net/guide" },
311
+ "fox-xfinity": { channelSelector: "Fox", url: "https://www.xfinity.com/stream/listings" },
267
312
  "fox-yttv": { channelSelector: "FOX", url: "https://tv.youtube.com/live" },
268
313
  foxdeportes: { name: "Fox Deportes", stationId: "72189", url: "https://www.foxsports.com/live/foxdep" },
269
314
  "foxdeportes-foxcom": { channelSelector: "FOXD", url: "https://www.fox.com/live/channels" },
270
315
  "foxdeportes-spectrum": { channelSelector: "FOX Deportes", url: "https://watch.spectrum.net/guide" },
316
+ "foxdeportes-xfinity": { channelSelector: "Fox Deportes", url: "https://www.xfinity.com/stream/listings" },
271
317
  "foxdeportes-yttv": { channelSelector: "Fox Deportes", url: "https://tv.youtube.com/live" },
272
318
  foxsoccerplus: { name: "Fox Soccer Plus", stationId: "66879", url: "https://www.foxsports.com/live/fsp" },
273
319
  "foxsoccerplus-yttv": { channelSelector: "FOX Soccer Plus", url: "https://tv.youtube.com/live" },
@@ -279,6 +325,7 @@ const BASE_CHANNELS = {
279
325
  "freeform-directv": { channelSelector: "Freeform HD", url: "https://stream.directv.com" },
280
326
  "freeform-hulu": { channelSelector: "Freeform", url: "https://www.hulu.com/live" },
281
327
  "freeform-spectrum": { channelSelector: "Freeform", url: "https://watch.spectrum.net/guide" },
328
+ "freeform-xfinity": { channelSelector: "Freeform", url: "https://www.xfinity.com/stream/listings" },
282
329
  "freeform-yttv": { channelSelector: "Freeform", url: "https://tv.youtube.com/live" },
283
330
  freeformp: { name: "Freeform (Pacific)", stationId: "63324", url: "https://www.freeform.com/watch-live/3507c750-e86a-4c0f-8ff4-dd23c4859009" },
284
331
  fs1: { name: "FS1", stationId: "82547", url: "https://www.foxsports.com/live/fs1" },
@@ -287,93 +334,114 @@ const BASE_CHANNELS = {
287
334
  "fs1-hulu": { channelSelector: "FS1", url: "https://www.hulu.com/live" },
288
335
  "fs1-sling": { channelSelector: "FOX Sports 1", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
289
336
  "fs1-spectrum": { channelSelector: "FS1", url: "https://watch.spectrum.net/guide" },
337
+ "fs1-xfinity": { channelSelector: "FOX Sports 1", url: "https://www.xfinity.com/stream/listings" },
290
338
  "fs1-yttv": { channelSelector: "FS1", url: "https://tv.youtube.com/live" },
291
339
  fs2: { name: "FS2", stationId: "59305", url: "https://www.foxsports.com/live/fs2" },
292
340
  "fs2-directv": { channelSelector: "FOX Sports 2", url: "https://stream.directv.com" },
293
341
  "fs2-foxcom": { channelSelector: "FS2", url: "https://www.fox.com/live/channels" },
294
342
  "fs2-hulu": { channelSelector: "FS2", url: "https://www.hulu.com/live" },
295
343
  "fs2-spectrum": { channelSelector: "Fox Sports 2", url: "https://watch.spectrum.net/guide" },
344
+ "fs2-xfinity": { channelSelector: "FOX Sports 2", url: "https://www.xfinity.com/stream/listings" },
296
345
  "fs2-yttv": { channelSelector: "FS2", url: "https://tv.youtube.com/live" },
297
346
  fx: { name: "FX", stationId: "58574", url: "https://abc.com/watch-live/93256af4-5e80-4558-aa2e-2bdfffa119a0" },
298
347
  "fx-directv": { channelSelector: "FX", url: "https://stream.directv.com" },
299
348
  "fx-hulu": { channelSelector: "FX", url: "https://www.hulu.com/live" },
300
349
  "fx-sling": { channelSelector: "FX", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
301
350
  "fx-spectrum": { channelSelector: "FX", url: "https://watch.spectrum.net/guide" },
351
+ "fx-xfinity": { channelSelector: "FX", url: "https://www.xfinity.com/stream/listings" },
302
352
  "fx-yttv": { channelSelector: "FX", url: "https://tv.youtube.com/live" },
303
353
  fxm: { name: "FXM", pacificStationId: "98488", stationId: "70253", url: "https://abc.com/watch-live/d298ab7e-c6b1-4efa-ac6e-a52dceed92ee" },
304
354
  "fxm-directv": { channelSelector: "FX Movie Channel", url: "https://stream.directv.com" },
305
355
  "fxm-hulu": { channelSelector: "FXM", url: "https://www.hulu.com/live" },
306
356
  "fxm-spectrum": { channelSelector: "FXM", url: "https://watch.spectrum.net/guide" },
357
+ "fxm-xfinity": { channelSelector: "FXM", url: "https://www.xfinity.com/stream/listings" },
307
358
  "fxm-yttv": { channelSelector: "FXM", url: "https://tv.youtube.com/live" },
308
359
  fxp: { name: "FX (Pacific)", stationId: "59814", url: "https://abc.com/watch-live/2cee3401-f63b-42d0-b32e-962fef610b9e" },
309
360
  fxx: { name: "FXX", stationId: "66379", url: "https://abc.com/watch-live/49f4a471-8d36-4728-8457-ea65cbbc84ea" },
310
361
  "fxx-directv": { channelSelector: "FXX", url: "https://stream.directv.com" },
311
362
  "fxx-hulu": { channelSelector: "FXX", url: "https://www.hulu.com/live" },
312
363
  "fxx-spectrum": { channelSelector: "FXX", url: "https://watch.spectrum.net/guide" },
364
+ "fxx-xfinity": { channelSelector: "FXX", url: "https://www.xfinity.com/stream/listings" },
313
365
  "fxx-yttv": { channelSelector: "FXX", url: "https://tv.youtube.com/live" },
314
366
  fxxp: { name: "FXX (Pacific)", stationId: "82571", url: "https://abc.com/watch-live/e4c83395-62ed-4a49-829a-c55ab3c33e7d" },
315
367
  fyi: { name: "FYI", pacificStationId: "92372", stationId: "58988", url: "https://play.fyi.tv/live" },
316
368
  "fyi-directv": { channelSelector: "FYI", url: "https://stream.directv.com" },
317
369
  "fyi-hulu": { channelSelector: "FYI", url: "https://www.hulu.com/live" },
318
370
  "fyi-spectrum": { channelSelector: "FYI", url: "https://watch.spectrum.net/guide" },
319
- gameshow: { channelSelector: "Game Show Network", name: "Game Show Network", pacificStationId: "90210", stationId: "68827", url: "https://www.hulu.com/live" },
320
- "gameshow-directv": { channelSelector: "GSN HD", url: "https://stream.directv.com" },
371
+ "fyi-xfinity": { channelSelector: "FYI", url: "https://www.xfinity.com/stream/listings" },
372
+ gameshow: { channelSelector: "GSN HD", name: "Game Show Network", pacificStationId: "90210", stationId: "68827", url: "https://stream.directv.com" },
373
+ "gameshow-hulu": { channelSelector: "Game Show Network", url: "https://www.hulu.com/live" },
321
374
  "gameshow-spectrum": { channelSelector: "Game Show Network", url: "https://watch.spectrum.net/guide" },
375
+ "gameshow-xfinity": { channelSelector: "Game Show Network", url: "https://www.xfinity.com/stream/listings" },
322
376
  "gameshow-yttv": { channelSelector: "Game Show Network", url: "https://tv.youtube.com/live" },
323
377
  golf: { name: "Golf", stationId: "61854", url: "https://www.golfchannel.com/watch/live" },
324
378
  "golf-directv": { channelSelector: "Golf Channel", url: "https://stream.directv.com" },
325
379
  "golf-hulu": { channelSelector: "Golf Channel", url: "https://www.hulu.com/live" },
326
380
  "golf-spectrum": { channelSelector: "Golf Channel", url: "https://watch.spectrum.net/guide" },
327
381
  "golf-usa": { channelSelector: "gc", url: "https://www.usanetwork.com/live" },
382
+ "golf-xfinity": { channelSelector: "Golf Channel", url: "https://www.xfinity.com/stream/listings" },
328
383
  "golf-yttv": { channelSelector: "Golf Channel", url: "https://tv.youtube.com/live" },
329
384
  hallmark: { name: "Hallmark", pacificStationId: "66415", stationId: "66268", url: "https://www.watchhallmarktv.com/playback/item/live" },
330
385
  "hallmark-directv": { channelSelector: "Hallmark Channel", url: "https://stream.directv.com" },
331
386
  "hallmark-hulu": { channelSelector: "Hallmark Channel", url: "https://www.hulu.com/live" },
332
387
  "hallmark-spectrum": { channelSelector: "Hallmark Channel", url: "https://watch.spectrum.net/guide" },
388
+ "hallmark-xfinity": { channelSelector: "Hallmark Channel", url: "https://www.xfinity.com/stream/listings" },
333
389
  "hallmark-yttv": { channelSelector: "Hallmark Channel", url: "https://tv.youtube.com/live" },
334
390
  hallmarkfamily: { name: "Hallmark Family", stationId: "105723", url: "https://www.watchhallmarktv.com/playback/item/hdlive" },
335
391
  "hallmarkfamily-spectrum": { channelSelector: "Hallmark Family", url: "https://watch.spectrum.net/guide" },
392
+ "hallmarkfamily-xfinity": { channelSelector: "HFM", url: "https://www.xfinity.com/stream/listings" },
336
393
  "hallmarkfamily-yttv": { channelSelector: "Hallmark Family", url: "https://tv.youtube.com/live" },
337
394
  hallmarkmystery: { name: "Hallmark Mystery", pacificStationId: "66412", stationId: "46710", url: "https://www.watchhallmarktv.com/playback/item/hmmlive" },
338
395
  "hallmarkmystery-hulu": { channelSelector: "Hallmark Mystery", url: "https://www.hulu.com/live" },
339
396
  "hallmarkmystery-spectrum": { channelSelector: "Hallmark Mystery", url: "https://watch.spectrum.net/guide" },
397
+ "hallmarkmystery-xfinity": { channelSelector: "HMYS", url: "https://www.xfinity.com/stream/listings" },
340
398
  "hallmarkmystery-yttv": { channelSelector: "Hallmark Mystery", url: "https://tv.youtube.com/live" },
341
399
  hbo: { channelSelector: "HBO", name: "HBO", stationId: "19548", url: "https://play.hbomax.com" },
400
+ "hbo-xfinity": { channelSelector: "HBO", url: "https://www.xfinity.com/stream/listings" },
342
401
  "hbo-yttv": { channelSelector: "HBO East", url: "https://tv.youtube.com/live" },
343
402
  hbocomedy: { channelSelector: "HBO Comedy", name: "HBO Comedy", stationId: "59839", url: "https://play.hbomax.com" },
403
+ "hbocomedy-xfinity": { channelSelector: "HBOCH", url: "https://www.xfinity.com/stream/listings" },
344
404
  "hbocomedy-yttv": { channelSelector: "HBO Comedy East", url: "https://tv.youtube.com/live" },
345
405
  hbodrama: { channelSelector: "HBO Drama", name: "HBO Drama", stationId: "59363", url: "https://play.hbomax.com" },
406
+ "hbodrama-xfinity": { channelSelector: "HBOSH", url: "https://www.xfinity.com/stream/listings" },
346
407
  "hbodrama-yttv": { channelSelector: "HBO Drama East", url: "https://tv.youtube.com/live" },
347
408
  hbohits: { channelSelector: "HBO Hits", name: "HBO Hits", stationId: "59368", url: "https://play.hbomax.com" },
409
+ "hbohits-xfinity": { channelSelector: "HBO2H", url: "https://www.xfinity.com/stream/listings" },
348
410
  "hbohits-yttv": { channelSelector: "HBO Hits East", url: "https://tv.youtube.com/live" },
349
411
  hbomovies: { channelSelector: "HBO Movies", name: "HBO Movies", stationId: "59845", url: "https://play.hbomax.com" },
412
+ "hbomovies-xfinity": { channelSelector: "HBOZH", url: "https://www.xfinity.com/stream/listings" },
350
413
  "hbomovies-yttv": { channelSelector: "HBO Movies East", url: "https://tv.youtube.com/live" },
351
414
  hgtv: { name: "HGTV", pacificStationId: "87317", stationId: "49788", url: "https://watch.foodnetwork.com/channel/hgtv" },
352
415
  "hgtv-directv": { channelSelector: "HGTV", url: "https://stream.directv.com" },
353
416
  "hgtv-hulu": { channelSelector: "HGTV", url: "https://www.hulu.com/live" },
354
417
  "hgtv-sling": { channelSelector: "HGTV", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
355
418
  "hgtv-spectrum": { channelSelector: "HGTV", url: "https://watch.spectrum.net/guide" },
419
+ "hgtv-xfinity": { channelSelector: "HGTV", url: "https://www.xfinity.com/stream/listings" },
356
420
  "hgtv-yttv": { channelSelector: "HGTV", url: "https://tv.youtube.com/live" },
357
421
  history: { name: "History", pacificStationId: "88545", stationId: "57708", url: "https://play.history.com/live" },
358
422
  "history-directv": { channelSelector: "HISTORY", url: "https://stream.directv.com" },
359
423
  "history-hulu": { channelSelector: "The HISTORY Channel", url: "https://www.hulu.com/live" },
360
424
  "history-sling": { channelSelector: "History", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
361
425
  "history-spectrum": { channelSelector: "History", url: "https://watch.spectrum.net/guide" },
426
+ "history-xfinity": { channelSelector: "History", url: "https://www.xfinity.com/stream/listings" },
362
427
  hln: { name: "HLN", stationId: "64549", url: "https://www.cnn.com/videos/hln" },
363
428
  "hln-directv": { channelSelector: "HLN", url: "https://stream.directv.com" },
364
429
  "hln-hulu": { channelSelector: "HLN", url: "https://www.hulu.com/live" },
365
430
  "hln-sling": { channelSelector: "HLN", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
366
431
  "hln-spectrum": { channelSelector: "HLN", url: "https://watch.spectrum.net/guide" },
432
+ "hln-xfinity": { channelSelector: "HLN", url: "https://www.xfinity.com/stream/listings" },
367
433
  "hln-yttv": { channelSelector: "HLN", url: "https://tv.youtube.com/live" },
368
434
  id: { name: "Investigation Discovery", pacificStationId: "80309", stationId: "65342", url: "https://watch.foodnetwork.com/channel/investigation-discovery" },
369
435
  "id-directv": { channelSelector: "Investigation Discovery", url: "https://stream.directv.com" },
370
436
  "id-hulu": { channelSelector: "Investigation Discovery", url: "https://www.hulu.com/live" },
371
437
  "id-sling": { channelSelector: "Investigation Discovery", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
372
438
  "id-spectrum": { channelSelector: "Investigation Discovery", url: "https://watch.spectrum.net/guide" },
439
+ "id-xfinity": { channelSelector: "Investigation Discovery", url: "https://www.xfinity.com/stream/listings" },
373
440
  "id-yttv": { channelSelector: "ID", url: "https://tv.youtube.com/live" },
374
- ifc: { channelSelector: "IFC", name: "IFC", pacificStationId: "109735", stationId: "59444", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
375
- "ifc-directv": { channelSelector: "IFC", url: "https://stream.directv.com" },
441
+ ifc: { channelSelector: "IFC", name: "IFC", pacificStationId: "109735", stationId: "59444", url: "https://stream.directv.com" },
442
+ "ifc-sling": { channelSelector: "IFC", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
376
443
  "ifc-spectrum": { channelSelector: "IFC", url: "https://watch.spectrum.net/guide" },
444
+ "ifc-xfinity": { channelSelector: "IFC", url: "https://www.xfinity.com/stream/listings" },
377
445
  "ifc-yttv": { channelSelector: "IFC", url: "https://tv.youtube.com/live" },
378
446
  indieplex: { channelSelector: "IndiePlex (East)", name: "IndiePlex", stationId: "65795", url: "https://www.hulu.com/live" },
379
447
  "indieplex-sling": { channelSelector: "IndiePlex", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
@@ -384,19 +452,25 @@ const BASE_CHANNELS = {
384
452
  "lifetime-hulu": { channelSelector: "Lifetime", url: "https://www.hulu.com/live" },
385
453
  "lifetime-sling": { channelSelector: "Lifetime", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
386
454
  "lifetime-spectrum": { channelSelector: "Lifetime", url: "https://watch.spectrum.net/guide" },
387
- lmn: { channelSelector: "LMN", name: "Lifetime Movie Network", pacificStationId: "92373", stationId: "55887", url: "https://www.hulu.com/live" },
388
- "lmn-directv": { channelSelector: "Lifetime Movie Network", url: "https://stream.directv.com" },
455
+ "lifetime-xfinity": { channelSelector: "Lifetime", url: "https://www.xfinity.com/stream/listings" },
456
+ lmn: { channelSelector: "Lifetime Movie Network", name: "Lifetime Movie Network", pacificStationId: "92373", stationId: "55887", url: "https://stream.directv.com" },
457
+ "lmn-hulu": { channelSelector: "LMN", url: "https://www.hulu.com/live" },
389
458
  "lmn-spectrum": { channelSelector: "LMN", url: "https://watch.spectrum.net/guide" },
459
+ "lmn-xfinity": { channelSelector: "Lifetime Movies", url: "https://www.xfinity.com/stream/listings" },
390
460
  magnolia: { name: "Magnolia Network", pacificStationId: "122081", stationId: "67375", url: "https://watch.foodnetwork.com/channel/magnolia-network-preview-atve-us" },
391
461
  "magnolia-directv": { channelSelector: "Magnolia Network", url: "https://stream.directv.com" },
392
462
  "magnolia-hulu": { channelSelector: "Magnolia Network", url: "https://www.hulu.com/live" },
393
463
  "magnolia-spectrum": { channelSelector: "Magnolia Network", url: "https://watch.spectrum.net/guide" },
464
+ "magnolia-xfinity": { channelSelector: "Magnolia Network", url: "https://www.xfinity.com/stream/listings" },
394
465
  "magnolia-yttv": { channelSelector: "Magnolia Network", url: "https://tv.youtube.com/live" },
395
466
  mgmplus: { channelSelector: "MGM+", name: "MGM+", pacificStationId: "95927", stationId: "65687", url: "https://stream.directv.com" },
396
- mlb: { channelSelector: "MLB Network", name: "MLB Network", stationId: "62081", url: "https://www.hulu.com/live" },
397
- "mlb-directv": { channelSelector: "MLB Network", url: "https://stream.directv.com" },
467
+ "mgmplus-xfinity": { channelSelector: "MGM+", url: "https://www.xfinity.com/stream/listings" },
468
+ mlb: { channelSelector: "MLB Network", name: "MLB Network", stationId: "62081", url: "https://stream.directv.com" },
469
+ "mlb-hulu": { channelSelector: "MLB Network", url: "https://www.hulu.com/live" },
398
470
  "mlb-spectrum": { channelSelector: "MLB Network", url: "https://watch.spectrum.net/guide" },
471
+ "mlb-xfinity": { channelSelector: "MLB Network", url: "https://www.xfinity.com/stream/listings" },
399
472
  movieplex: { channelSelector: "MoviePlex (East)", name: "MoviePlex", stationId: "83075", url: "https://www.hulu.com/live" },
473
+ "movieplex-sling": { channelSelector: "MoviePlex", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
400
474
  "movieplex-spectrum": { channelSelector: "Movieplex", url: "https://watch.spectrum.net/guide" },
401
475
  movieplexp: { channelSelector: "MoviePlex (West)", name: "MoviePlex (Pacific)", stationId: "105963", url: "https://www.hulu.com/live" },
402
476
  msg: { channelSelector: "MSG", name: "MSG", stationId: "35402", url: "https://stream.directv.com" },
@@ -407,41 +481,50 @@ const BASE_CHANNELS = {
407
481
  "msnow-sling": { channelSelector: "MS NOW", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
408
482
  "msnow-spectrum": { channelSelector: "MS NOW", url: "https://watch.spectrum.net/guide" },
409
483
  "msnow-usa": { channelSelector: "image-23", url: "https://www.usanetwork.com/live" },
484
+ "msnow-xfinity": { channelSelector: "MS NOW", url: "https://www.xfinity.com/stream/listings" },
410
485
  "msnow-yttv": { channelSelector: "MS NOW", url: "https://tv.youtube.com/live" },
411
- mtv: { channelSelector: "MTV", name: "MTV", pacificStationId: "64630", stationId: "60964", url: "https://www.hulu.com/live" },
412
- "mtv-directv": { channelSelector: "MTV", url: "https://stream.directv.com" },
486
+ mtv: { channelSelector: "MTV", name: "MTV", pacificStationId: "64630", stationId: "60964", url: "https://stream.directv.com" },
487
+ "mtv-hulu": { channelSelector: "MTV", url: "https://www.hulu.com/live" },
413
488
  "mtv-spectrum": { channelSelector: "MTV", url: "https://watch.spectrum.net/guide" },
489
+ "mtv-xfinity": { channelSelector: "MTV", url: "https://www.xfinity.com/stream/listings" },
414
490
  "mtv-yttv": { channelSelector: "MTV", url: "https://tv.youtube.com/live" },
415
491
  mtv2: { channelSelector: "MTV2", name: "MTV2", pacificStationId: "75506", stationId: "75077", url: "https://stream.directv.com" },
416
492
  "mtv2-spectrum": { channelSelector: "MTV2", url: "https://watch.spectrum.net/guide" },
493
+ "mtv2-xfinity": { channelSelector: "MTV2", url: "https://www.xfinity.com/stream/listings" },
417
494
  mtvclassic: { channelSelector: "MTV Classic", name: "MTV Classic", stationId: "92240", url: "https://stream.directv.com" },
418
495
  "mtvclassic-spectrum": { channelSelector: "MTV Classic", url: "https://watch.spectrum.net/guide" },
496
+ "mtvclassic-xfinity": { channelSelector: "MTV Classic", url: "https://www.xfinity.com/stream/listings" },
419
497
  natgeo: { name: "National Geographic", stationId: "49438", url: "https://www.nationalgeographic.com/tv/watch-live/0826a9a3-3384-4bb5-8841-91f01cb0e3a7" },
420
498
  "natgeo-directv": { channelSelector: "National Geographic Channel", url: "https://stream.directv.com" },
421
499
  "natgeo-hulu": { channelSelector: "National Geographic", url: "https://www.hulu.com/live" },
422
500
  "natgeo-sling": { channelSelector: "National Geographic", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
423
501
  "natgeo-spectrum": { channelSelector: "National Geographic", url: "https://watch.spectrum.net/guide" },
502
+ "natgeo-xfinity": { channelSelector: "Nat Geo", url: "https://www.xfinity.com/stream/listings" },
424
503
  "natgeo-yttv": { channelSelector: "Nat Geo", url: "https://tv.youtube.com/live" },
425
504
  natgeop: { name: "National Geographic (Pacific)", stationId: "71601", url: "https://www.nationalgeographic.com/tv/watch-live/91456580-f32f-417c-8e1a-9f82640832a7" },
426
505
  natgeowild: { name: "Nat Geo Wild", stationId: "67331", url: "https://www.nationalgeographic.com/tv/watch-live/239b9590-583f-4955-a499-22e9eefff9cf" },
427
506
  "natgeowild-directv": { channelSelector: "Nat Geo WILD", url: "https://stream.directv.com" },
428
507
  "natgeowild-hulu": { channelSelector: "Nat Geo WILD", url: "https://www.hulu.com/live" },
429
508
  "natgeowild-spectrum": { channelSelector: "NatGeo Wild", url: "https://watch.spectrum.net/guide" },
509
+ "natgeowild-xfinity": { channelSelector: "National Geographic WILD", url: "https://www.xfinity.com/stream/listings" },
430
510
  "natgeowild-yttv": { channelSelector: "Nat Geo WILD", url: "https://tv.youtube.com/live" },
431
511
  nba: { name: "NBA TV", stationId: "45526", url: "https://www.nba.com/watch/nba-tv" },
432
512
  "nba-directv": { channelSelector: "NBA TV", url: "https://stream.directv.com" },
433
513
  "nba-spectrum": { channelSelector: "NBA TV", url: "https://watch.spectrum.net/guide" },
514
+ "nba-xfinity": { channelSelector: "NBA TV", url: "https://www.xfinity.com/stream/listings" },
434
515
  "nba-yttv": { channelSelector: "NBA TV", url: "https://tv.youtube.com/live" },
435
516
  nbc: { name: "NBC", url: "https://www.nbc.com/live?brand=nbc&callsign=nbc" },
436
517
  "nbc-directv": { channelSelector: "NBC", url: "https://stream.directv.com" },
437
518
  "nbc-hulu": { channelSelector: "NBC", url: "https://www.hulu.com/live" },
438
519
  "nbc-sling": { channelSelector: "NBC", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
439
520
  "nbc-spectrum": { channelSelector: "NBC", url: "https://watch.spectrum.net/guide" },
521
+ "nbc-xfinity": { channelSelector: "NBC", url: "https://www.xfinity.com/stream/listings" },
440
522
  "nbc-yttv": { channelSelector: "NBC", url: "https://tv.youtube.com/live" },
441
523
  nbcnews: { name: "NBC News Now", stationId: "114174", url: "https://www.nbc.com/live?brand=nbc-news&callsign=nbcnews" },
442
524
  "nbcnews-directv": { channelSelector: "NBC News Now", url: "https://stream.directv.com" },
443
525
  "nbcnews-hulu": { channelSelector: "NBC News NOW", url: "https://www.hulu.com/live" },
444
526
  "nbcnews-sling": { channelSelector: "NBC News Now", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
527
+ "nbcnews-xfinity": { channelSelector: "NBC News NOW", url: "https://www.xfinity.com/stream/listings" },
445
528
  "nbcnews-yttv": { channelSelector: "NBC News NOW", url: "https://tv.youtube.com/live" },
446
529
  nbcsbayarea: { name: "NBC Sports Bay Area", stationId: "63138", url: "https://www.nbc.com/live?brand=rsn-bay-area&callsign=nbcsbayarea" },
447
530
  nbcsboston: { name: "NBC Sports Boston", stationId: "49198", url: "https://www.nbc.com/live?brand=rsn-boston&callsign=nbcsboston" },
@@ -449,32 +532,38 @@ const BASE_CHANNELS = {
449
532
  nbcsn: { channelSelector: "NBC Sports Network", name: "NBC Sports Network", stationId: "194412", url: "https://tv.youtube.com/live" },
450
533
  nbcsphiladelphia: { name: "NBC Sports Philadelphia", stationId: "32571", url: "https://www.nbc.com/live?brand=rsn-philadelphia&callsign=nbcsphiladelphia" },
451
534
  necn: { name: "NECN", stationId: "66278", url: "https://www.nbc.com/live?brand=necn&callsign=necn" },
452
- nfl: { channelSelector: "NFL Network", name: "NFL Network", stationId: "45399", url: "https://www.hulu.com/live" },
453
- "nfl-directv": { channelSelector: "NFL Network", url: "https://stream.directv.com" },
535
+ nfl: { channelSelector: "NFL Network", name: "NFL Network", stationId: "45399", url: "https://stream.directv.com" },
536
+ "nfl-hulu": { channelSelector: "NFL Network", url: "https://www.hulu.com/live" },
454
537
  "nfl-sling": { channelSelector: "NFL Network", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
455
538
  "nfl-spectrum": { channelSelector: "NFL Network", url: "https://watch.spectrum.net/guide" },
539
+ "nfl-xfinity": { channelSelector: "NFL Network", url: "https://www.xfinity.com/stream/listings" },
456
540
  "nfl-yttv": { channelSelector: "NFL Network", url: "https://tv.youtube.com/live" },
457
541
  nhl: { channelSelector: "NHL Network HD", name: "NHL Network", stationId: "58690", url: "https://stream.directv.com" },
458
542
  "nhl-spectrum": { channelSelector: "NHL Network", url: "https://watch.spectrum.net/guide" },
543
+ "nhl-xfinity": { channelSelector: "NHL Network", url: "https://www.xfinity.com/stream/listings" },
459
544
  own: { name: "OWN", stationId: "70388", url: "https://watch.foodnetwork.com/channel/own" },
460
545
  "own-directv": { channelSelector: "OWN", url: "https://stream.directv.com" },
461
546
  "own-hulu": { channelSelector: "Oprah Winfrey Network", url: "https://www.hulu.com/live" },
462
547
  "own-spectrum": { channelSelector: "OWN", url: "https://watch.spectrum.net/guide" },
548
+ "own-xfinity": { channelSelector: "OWN", url: "https://www.xfinity.com/stream/listings" },
463
549
  "own-yttv": { channelSelector: "OWN", url: "https://tv.youtube.com/live" },
464
550
  oxygen: { channelSelector: "Oxygen_East", name: "Oxygen", stationId: "70522", url: "https://www.usanetwork.com/live" },
465
551
  "oxygen-directv": { channelSelector: "Oxygen True Crime", url: "https://stream.directv.com" },
466
552
  "oxygen-hulu": { channelSelector: "Oxygen True Crime", url: "https://www.hulu.com/live" },
467
553
  "oxygen-spectrum": { channelSelector: "Oxygen", url: "https://watch.spectrum.net/guide" },
554
+ "oxygen-xfinity": { channelSelector: "Oxygen True Crime", url: "https://www.xfinity.com/stream/listings" },
468
555
  "oxygen-yttv": { channelSelector: "Oxygen True Crime", url: "https://tv.youtube.com/live" },
469
556
  oxygenp: { channelSelector: "Oxygen_West", name: "Oxygen (Pacific)", stationId: "74032", url: "https://www.usanetwork.com/live" },
470
557
  paramount: { channelSelector: "Paramount Network", name: "Paramount Network", stationId: "59186", url: "https://www.hulu.com/live" },
471
558
  "paramount-spectrum": { channelSelector: "Paramount Network", url: "https://watch.spectrum.net/guide" },
559
+ "paramount-xfinity": { channelSelector: "Paramount Network", url: "https://www.xfinity.com/stream/listings" },
472
560
  "paramount-yttv": { channelSelector: "Paramount", url: "https://tv.youtube.com/live" },
473
561
  paramountp: { name: "Paramount (Pacific)", stationId: "64593", url: "https://tv.youtube.com/live" },
474
562
  "paramountp-yttv": { channelSelector: "Paramount Network", url: "https://tv.youtube.com/live" },
475
- pbs: { channelSelector: "PBS", name: "PBS", url: "https://www.hulu.com/live" },
476
- "pbs-directv": { channelSelector: "PBS", url: "https://stream.directv.com" },
563
+ pbs: { channelSelector: "PBS", name: "PBS", url: "https://stream.directv.com" },
564
+ "pbs-hulu": { channelSelector: "PBS", url: "https://www.hulu.com/live" },
477
565
  "pbs-spectrum": { channelSelector: "PBS", url: "https://watch.spectrum.net/guide" },
566
+ "pbs-xfinity": { channelSelector: "PBS", url: "https://www.xfinity.com/stream/listings" },
478
567
  "pbs-yttv": { channelSelector: "PBS", url: "https://tv.youtube.com/live" },
479
568
  pbschicago: { name: "PBS Chicago (WTTW)", stationId: "30415", url: "https://www.wttw.com/wttw-live-stream" },
480
569
  "pbschicago-hulu": { channelSelector: "PBS", url: "https://www.hulu.com/live" },
@@ -487,16 +576,21 @@ const BASE_CHANNELS = {
487
576
  science: { name: "Science", stationId: "57390", url: "https://watch.foodnetwork.com/channel/science" },
488
577
  "science-directv": { channelSelector: "Science", url: "https://stream.directv.com" },
489
578
  "science-spectrum": { channelSelector: "Science", url: "https://watch.spectrum.net/guide" },
579
+ "science-xfinity": { channelSelector: "Science Channel", url: "https://www.xfinity.com/stream/listings" },
490
580
  showtime: { name: "Showtime", stationId: "91620", url: "https://www.paramountplus.com/live-tv/stream/showtime-east" },
581
+ "showtime-xfinity": { channelSelector: "PSHOh", url: "https://www.xfinity.com/stream/listings" },
491
582
  "showtime-yttv": { channelSelector: "Showtime East", url: "https://tv.youtube.com/live" },
492
583
  showtimep: { name: "Showtime (Pacific)", stationId: "91621", url: "https://www.paramountplus.com/live-tv/stream/showtime-west" },
493
- smithsonian: { channelSelector: "Smithsonian Channel", name: "Smithsonian Channel", pacificStationId: "82695", stationId: "58532", url: "https://www.hulu.com/live" },
494
- "smithsonian-directv": { channelSelector: "Smithsonian Channel HD", url: "https://stream.directv.com" },
584
+ smithsonian: { channelSelector: "Smithsonian Channel HD", name: "Smithsonian Channel", pacificStationId: "82695", stationId: "58532", url: "https://stream.directv.com" },
585
+ "smithsonian-hulu": { channelSelector: "Smithsonian Channel", url: "https://www.hulu.com/live" },
495
586
  "smithsonian-spectrum": { channelSelector: "Smithsonian Channel", url: "https://watch.spectrum.net/guide" },
587
+ "smithsonian-xfinity": { channelSelector: "Smithsonian", url: "https://www.xfinity.com/stream/listings" },
496
588
  "smithsonian-yttv": { channelSelector: "Smithsonian Channel", url: "https://tv.youtube.com/live" },
497
589
  sny: { channelSelector: "SportsNet New York HD 639", name: "SportsNet New York", stationId: "50038", url: "https://stream.directv.com" },
498
590
  starz: { name: "Starz", stationId: "34941", url: "https://www.starz.com/us/en/play/2" },
499
591
  "starz-hulu": { channelSelector: "STARZ (East)", url: "https://www.hulu.com/live" },
592
+ "starz-sling": { channelSelector: "STARZ", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
593
+ "starz-xfinity": { channelSelector: "STARZ", url: "https://www.xfinity.com/stream/listings" },
500
594
  starzcinema: { channelSelector: "STARZ Cinema (East)", name: "Starz Cinema", stationId: "67236", url: "https://www.hulu.com/live" },
501
595
  "starzcinema-sling": { channelSelector: "Starz Cinema", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
502
596
  starzcinemap: { channelSelector: "STARZ Cinema (West)", name: "Starz Cinema (Pacific)", stationId: "67365", url: "https://www.hulu.com/live" },
@@ -508,11 +602,14 @@ const BASE_CHANNELS = {
508
602
  starzedgep: { channelSelector: "STARZ Edge (West)", name: "Starz Edge (Pacific)", stationId: "57578", url: "https://www.hulu.com/live" },
509
603
  starzencore: { channelSelector: "STARZ Encore (East)", name: "Starz Encore", stationId: "36225", url: "https://www.hulu.com/live" },
510
604
  "starzencore-sling": { channelSelector: "Starz Encore", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
605
+ "starzencore-xfinity": { channelSelector: "STZEH", url: "https://www.xfinity.com/stream/listings" },
511
606
  starzencoreaction: { channelSelector: "STARZ Encore Action (East)", name: "Starz Encore Action", stationId: "72015", url: "https://www.hulu.com/live" },
512
607
  "starzencoreaction-sling": { channelSelector: "Starz Encore Action", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
608
+ "starzencoreaction-xfinity": { channelSelector: "STZAH", url: "https://www.xfinity.com/stream/listings" },
513
609
  starzencoreactionp: { channelSelector: "STARZ Encore Action (West)", name: "Starz Encore Action (Pacific)", stationId: "103833", url: "https://www.hulu.com/live" },
514
610
  starzencoreblack: { channelSelector: "STARZ Encore Black (East)", name: "Starz Encore Black", stationId: "72014", url: "https://www.hulu.com/live" },
515
611
  "starzencoreblack-sling": { channelSelector: "Starz Encore Black", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
612
+ "starzencoreblack-xfinity": { channelSelector: "STZBH", url: "https://www.xfinity.com/stream/listings" },
516
613
  starzencoreblackp: { channelSelector: "STARZ Encore Black (West)", name: "Starz Encore Black (Pacific)", stationId: "103834", url: "https://www.hulu.com/live" },
517
614
  starzencoreclassic: { channelSelector: "STARZ Encore Classic (East)", name: "Starz Encore Classic", stationId: "83404", url: "https://www.hulu.com/live" },
518
615
  "starzencoreclassic-sling": { channelSelector: "Starz Encore Classic", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
@@ -524,25 +621,31 @@ const BASE_CHANNELS = {
524
621
  "starzencorefamily-sling": { channelSelector: "Starz Encore Family", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
525
622
  starzencorefamilyp: { channelSelector: "STARZ Encore Family (West)", name: "Starz Encore Family (Pacific)", stationId: "103829", url: "https://www.hulu.com/live" },
526
623
  starzencorep: { channelSelector: "STARZ Encore (West)", name: "Starz Encore (Pacific)", stationId: "67237", url: "https://www.hulu.com/live" },
624
+ "starzencorep-sling": { channelSelector: "Starz Encore West", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
527
625
  starzencoresuspense: { channelSelector: "STARZ Encore Suspense (East)", name: "Starz Encore Suspense", stationId: "83076", url: "https://www.hulu.com/live" },
528
626
  "starzencoresuspense-sling": { channelSelector: "Starz Encore Suspense", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
529
627
  starzencoresuspensep: { channelSelector: "STARZ Encore Suspense (West)", name: "Starz Encore Suspense (Pacific)", stationId: "103836", url: "https://www.hulu.com/live" },
530
628
  starzencorewesterns: { channelSelector: "STARZ Encore Westerns (East)", name: "Starz Encore Westerns", stationId: "14765", url: "https://www.hulu.com/live" },
629
+ "starzencorewesterns-sling": { channelSelector: "Starz Encore Westerns", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
531
630
  starzencorewesternsp: { channelSelector: "STARZ Encore Westerns (West)", name: "Starz Encore Westerns (Pacific)", stationId: "103856", url: "https://www.hulu.com/live" },
532
631
  starzinblack: { channelSelector: "STARZ in Black (East)", name: "Starz in Black", stationId: "67235", url: "https://www.hulu.com/live" },
533
632
  "starzinblack-sling": { channelSelector: "Starz in Black", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
534
633
  starzinblackp: { channelSelector: "STARZ in Black (West)", name: "Starz in Black (Pacific)", stationId: "67367", url: "https://www.hulu.com/live" },
535
634
  starzkids: { channelSelector: "STARZ Kids (East)", name: "Starz Kids", stationId: "57581", url: "https://www.hulu.com/live" },
635
+ "starzkids-sling": { channelSelector: "Starz Kids", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
536
636
  starzkidsp: { channelSelector: "STARZ Kids (West)", name: "Starz Kids (Pacific)", stationId: "57583", url: "https://www.hulu.com/live" },
537
637
  starzp: { channelSelector: "STARZ (West)", name: "Starz (Pacific)", stationId: "34949", url: "https://www.hulu.com/live" },
538
- sundancetv: { channelSelector: "SundanceTV", name: "SundanceTV", pacificStationId: "78806", stationId: "71280", url: "https://tv.youtube.com/live" },
539
- "sundancetv-directv": { channelSelector: "Sundance TV", url: "https://stream.directv.com" },
638
+ "starzp-sling": { channelSelector: "Starz West", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
639
+ sundancetv: { channelSelector: "Sundance TV", name: "SundanceTV", pacificStationId: "78806", stationId: "71280", url: "https://stream.directv.com" },
540
640
  "sundancetv-spectrum": { channelSelector: "SundanceTV", url: "https://watch.spectrum.net/guide" },
641
+ "sundancetv-xfinity": { channelSelector: "SundanceTV", url: "https://www.xfinity.com/stream/listings" },
642
+ "sundancetv-yttv": { channelSelector: "SundanceTV", url: "https://tv.youtube.com/live" },
541
643
  syfy: { channelSelector: "Syfy_East", name: "Syfy", stationId: "58623", url: "https://www.usanetwork.com/live" },
542
644
  "syfy-directv": { channelSelector: "Syfy", url: "https://stream.directv.com" },
543
645
  "syfy-hulu": { channelSelector: "SYFY", url: "https://www.hulu.com/live" },
544
646
  "syfy-sling": { channelSelector: "SYFY", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
545
647
  "syfy-spectrum": { channelSelector: "Syfy", url: "https://watch.spectrum.net/guide" },
648
+ "syfy-xfinity": { channelSelector: "SYFY", url: "https://www.xfinity.com/stream/listings" },
546
649
  "syfy-yttv": { channelSelector: "SYFY", url: "https://tv.youtube.com/live" },
547
650
  syfyp: { channelSelector: "Syfy_West", name: "Syfy (Pacific)", stationId: "65626", url: "https://www.usanetwork.com/live" },
548
651
  tbs: { name: "TBS", stationId: "58515", url: "https://www.tbs.com/watchtbs/east" },
@@ -550,31 +653,37 @@ const BASE_CHANNELS = {
550
653
  "tbs-hulu": { channelSelector: "TBS (East)", url: "https://www.hulu.com/live" },
551
654
  "tbs-sling": { channelSelector: "TBS", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
552
655
  "tbs-spectrum": { channelSelector: "TBS", url: "https://watch.spectrum.net/guide" },
656
+ "tbs-xfinity": { channelSelector: "TBS", url: "https://www.xfinity.com/stream/listings" },
553
657
  "tbs-yttv": { channelSelector: "TBS", url: "https://tv.youtube.com/live" },
554
658
  tbsp: { name: "TBS (Pacific)", stationId: "67890", url: "https://www.tbs.com/watchtbs/west" },
555
659
  "tbsp-hulu": { channelSelector: "TBS (West)", url: "https://www.hulu.com/live" },
556
- tcm: { channelSelector: "TCM (East)", name: "TCM", stationId: "64312", url: "https://www.hulu.com/live" },
557
- "tcm-directv": { channelSelector: "TCM", url: "https://stream.directv.com" },
660
+ tcm: { channelSelector: "TCM", name: "TCM", stationId: "64312", url: "https://stream.directv.com" },
661
+ "tcm-hulu": { channelSelector: "TCM (East)", url: "https://www.hulu.com/live" },
558
662
  "tcm-spectrum": { channelSelector: "TCM", url: "https://watch.spectrum.net/guide" },
663
+ "tcm-xfinity": { channelSelector: "TCM", url: "https://www.xfinity.com/stream/listings" },
559
664
  "tcm-yttv": { channelSelector: "Turner Classic Movies", url: "https://tv.youtube.com/live" },
560
665
  tcmp: { channelSelector: "TCM (West)", name: "TCM (Pacific)", stationId: "64312", tvgShift: 3, url: "https://www.hulu.com/live" },
561
- tennis: { channelSelector: "Tennis Channel", name: "Tennis Channel", stationId: "60316", url: "https://tv.youtube.com/live" },
562
- "tennis-directv": { channelSelector: "Tennis Channel HD", url: "https://stream.directv.com" },
666
+ tennis: { channelSelector: "Tennis Channel HD", name: "Tennis Channel", stationId: "60316", url: "https://stream.directv.com" },
563
667
  "tennis-spectrum": { channelSelector: "Tennis Channel", url: "https://watch.spectrum.net/guide" },
564
- tennis2: { channelSelector: "T2", name: "Tennis Channel 2", stationId: "137752", url: "https://tv.youtube.com/live" },
565
- "tennis2-hulu": { channelSelector: "Tennis Channel 2", url: "https://www.hulu.com/live" },
668
+ "tennis-xfinity": { channelSelector: "Tennis Channel", url: "https://www.xfinity.com/stream/listings" },
669
+ "tennis-yttv": { channelSelector: "Tennis Channel", url: "https://tv.youtube.com/live" },
670
+ tennis2: { channelSelector: "Tennis Channel 2", name: "Tennis Channel 2", stationId: "137752", url: "https://www.hulu.com/live" },
566
671
  "tennis2-sling": { channelSelector: "T2", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
672
+ "tennis2-xfinity": { channelSelector: "T2", url: "https://www.xfinity.com/stream/listings" },
673
+ "tennis2-yttv": { channelSelector: "T2", url: "https://tv.youtube.com/live" },
567
674
  tlc: { name: "TLC", pacificStationId: "79911", stationId: "57391", url: "https://watch.foodnetwork.com/channel/tlc" },
568
675
  "tlc-directv": { channelSelector: "TLC", url: "https://stream.directv.com" },
569
676
  "tlc-hulu": { channelSelector: "TLC", url: "https://www.hulu.com/live" },
570
677
  "tlc-sling": { channelSelector: "TLC", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
571
678
  "tlc-spectrum": { channelSelector: "TLC", url: "https://watch.spectrum.net/guide" },
679
+ "tlc-xfinity": { channelSelector: "TLC", url: "https://www.xfinity.com/stream/listings" },
572
680
  "tlc-yttv": { channelSelector: "TLC", url: "https://tv.youtube.com/live" },
573
681
  tnt: { name: "TNT", stationId: "42642", url: "https://www.tntdrama.com/watchtnt/east" },
574
682
  "tnt-directv": { channelSelector: "TNT", url: "https://stream.directv.com" },
575
683
  "tnt-hulu": { channelSelector: "TNT (East)", url: "https://www.hulu.com/live" },
576
684
  "tnt-sling": { channelSelector: "TNT", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
577
685
  "tnt-spectrum": { channelSelector: "TNT", url: "https://watch.spectrum.net/guide" },
686
+ "tnt-xfinity": { channelSelector: "TNT", url: "https://www.xfinity.com/stream/listings" },
578
687
  "tnt-yttv": { channelSelector: "TNT", url: "https://tv.youtube.com/live" },
579
688
  tntp: { name: "TNT (Pacific)", stationId: "61340", url: "https://www.tntdrama.com/watchtnt/west" },
580
689
  "tntp-hulu": { channelSelector: "TNT (West)", url: "https://www.hulu.com/live" },
@@ -583,41 +692,49 @@ const BASE_CHANNELS = {
583
692
  "travel-hulu": { channelSelector: "Travel Channel", url: "https://www.hulu.com/live" },
584
693
  "travel-sling": { channelSelector: "Travel Channel", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
585
694
  "travel-spectrum": { channelSelector: "Travel Channel", url: "https://watch.spectrum.net/guide" },
695
+ "travel-xfinity": { channelSelector: "Travel Channel", url: "https://www.xfinity.com/stream/listings" },
586
696
  "travel-yttv": { channelSelector: "Travel Channel", url: "https://tv.youtube.com/live" },
587
697
  trutv: { name: "truTV", pacificStationId: "65717", stationId: "64490", url: "https://www.trutv.com/watchtrutv/east" },
588
698
  "trutv-directv": { channelSelector: "truTV", url: "https://stream.directv.com" },
589
699
  "trutv-hulu": { channelSelector: "truTV (East)", url: "https://www.hulu.com/live" },
590
700
  "trutv-sling": { channelSelector: "truTV", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
591
701
  "trutv-spectrum": { channelSelector: "truTV", url: "https://watch.spectrum.net/guide" },
702
+ "trutv-xfinity": { channelSelector: "truTV", url: "https://www.xfinity.com/stream/listings" },
592
703
  "trutv-yttv": { channelSelector: "truTV", url: "https://tv.youtube.com/live" },
593
704
  "trutvp-hulu": { channelSelector: "truTV (West)", url: "https://www.hulu.com/live" },
594
- tvland: { channelSelector: "TV Land", name: "TV Land", pacificStationId: "74134", stationId: "73541", url: "https://tv.youtube.com/live" },
595
- "tvland-directv": { channelSelector: "TV Land", url: "https://stream.directv.com" },
705
+ tvland: { channelSelector: "TV Land", name: "TV Land", pacificStationId: "74134", stationId: "73541", url: "https://stream.directv.com" },
596
706
  "tvland-hulu": { channelSelector: "TV Land", url: "https://www.hulu.com/live" },
597
707
  "tvland-spectrum": { channelSelector: "TV Land", url: "https://watch.spectrum.net/guide" },
708
+ "tvland-xfinity": { channelSelector: "TV Land", url: "https://www.xfinity.com/stream/listings" },
709
+ "tvland-yttv": { channelSelector: "TV Land", url: "https://tv.youtube.com/live" },
598
710
  usa: { channelSelector: "USA_East", name: "USA Network", stationId: "58452", url: "https://www.usanetwork.com/live" },
599
711
  "usa-directv": { channelSelector: "USA Network", url: "https://stream.directv.com" },
600
712
  "usa-hulu": { channelSelector: "USA", url: "https://www.hulu.com/live" },
601
713
  "usa-sling": { channelSelector: "USA", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
602
714
  "usa-spectrum": { channelSelector: "USA", url: "https://watch.spectrum.net/guide" },
715
+ "usa-xfinity": { channelSelector: "USA", url: "https://www.xfinity.com/stream/listings" },
603
716
  "usa-yttv": { channelSelector: "USA", url: "https://tv.youtube.com/live" },
604
717
  usap: { channelSelector: "USA_West", name: "USA Network (Pacific)", stationId: "74030", url: "https://www.usanetwork.com/live" },
605
718
  vh1: { name: "VH1", pacificStationId: "64634", stationId: "60046", url: "https://www.vh1.com/live-tv" },
606
719
  "vh1-directv": { channelSelector: "VH1", url: "https://stream.directv.com" },
607
720
  "vh1-hulu": { channelSelector: "VH1", url: "https://www.hulu.com/live" },
608
721
  "vh1-spectrum": { channelSelector: "VH1", url: "https://watch.spectrum.net/guide" },
722
+ "vh1-xfinity": { channelSelector: "VH1", url: "https://www.xfinity.com/stream/listings" },
609
723
  "vh1-yttv": { channelSelector: "VH1", url: "https://tv.youtube.com/live" },
610
- vice: { channelSelector: "Vice", name: "Vice", pacificStationId: "92375", stationId: "65732", url: "https://www.hulu.com/live" },
611
- "vice-directv": { channelSelector: "VICE", url: "https://stream.directv.com" },
724
+ vice: { channelSelector: "VICE", name: "Vice", pacificStationId: "92375", stationId: "65732", url: "https://stream.directv.com" },
725
+ "vice-hulu": { channelSelector: "Vice", url: "https://www.hulu.com/live" },
612
726
  "vice-sling": { channelSelector: "VICE", url: "https://watch.sling.com/dashboard/grid_guide/grid_guide_a_z" },
613
727
  "vice-spectrum": { channelSelector: "Vice", url: "https://watch.spectrum.net/guide" },
614
- weather: { channelSelector: "The Weather Channel", name: "The Weather Channel", stationId: "58812", url: "https://www.hulu.com/live" },
615
- "weather-directv": { channelSelector: "The Weather Channel HD", url: "https://stream.directv.com" },
728
+ "vice-xfinity": { channelSelector: "VICE", url: "https://www.xfinity.com/stream/listings" },
729
+ weather: { channelSelector: "The Weather Channel HD", name: "The Weather Channel", stationId: "58812", url: "https://stream.directv.com" },
730
+ "weather-hulu": { channelSelector: "The Weather Channel", url: "https://www.hulu.com/live" },
616
731
  "weather-spectrum": { channelSelector: "The Weather Channel", url: "https://watch.spectrum.net/guide" },
732
+ "weather-xfinity": { channelSelector: "Weather Channel", url: "https://www.xfinity.com/stream/listings" },
617
733
  "weather-yttv": { channelSelector: "The Weather Channel", url: "https://tv.youtube.com/live" },
618
- wetv: { channelSelector: "WE tv", name: "WE tv", pacificStationId: "108192", stationId: "59296", url: "https://tv.youtube.com/live" },
619
- "wetv-directv": { channelSelector: "WE TV", url: "https://stream.directv.com" },
734
+ wetv: { channelSelector: "WE TV", name: "WE tv", pacificStationId: "108192", stationId: "59296", url: "https://stream.directv.com" },
620
735
  "wetv-spectrum": { channelSelector: "WE tv", url: "https://watch.spectrum.net/guide" },
736
+ "wetv-xfinity": { channelSelector: "WE tv", url: "https://www.xfinity.com/stream/listings" },
737
+ "wetv-yttv": { channelSelector: "WE tv", url: "https://tv.youtube.com/live" },
621
738
  yes: { channelSelector: "Yes Network HD", name: "YES Network", stationId: "63558", url: "https://stream.directv.com" },
622
739
  "yes-spectrum": { channelSelector: "YES Network", url: "https://watch.spectrum.net/guide" }
623
740
  };