prismcast 1.7.0 → 1.9.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 (208) hide show
  1. package/README.md +6 -6
  2. package/dist/app.js +24 -13
  3. package/dist/app.js.map +1 -1
  4. package/dist/browser/cdp.d.ts +4 -6
  5. package/dist/browser/cdp.js +13 -17
  6. package/dist/browser/cdp.js.map +1 -1
  7. package/dist/browser/index.js +3 -3
  8. package/dist/browser/index.js.map +1 -1
  9. package/dist/browser/login.js +11 -8
  10. package/dist/browser/login.js.map +1 -1
  11. package/dist/browser/precaching.d.ts +1 -1
  12. package/dist/browser/precaching.js +23 -23
  13. package/dist/browser/precaching.js.map +1 -1
  14. package/dist/browser/tuning/directv.js +4 -7
  15. package/dist/browser/tuning/directv.js.map +1 -1
  16. package/dist/browser/tuning/fox.js +1 -1
  17. package/dist/browser/tuning/fox.js.map +1 -1
  18. package/dist/browser/tuning/hbo.js +1 -1
  19. package/dist/browser/tuning/hbo.js.map +1 -1
  20. package/dist/browser/tuning/hulu.js +3 -3
  21. package/dist/browser/tuning/hulu.js.map +1 -1
  22. package/dist/browser/tuning/sling.js +2 -2
  23. package/dist/browser/tuning/sling.js.map +1 -1
  24. package/dist/channels/index.d.ts +2 -0
  25. package/dist/channels/index.js +438 -252
  26. package/dist/channels/index.js.map +1 -1
  27. package/dist/config/health.d.ts +3 -3
  28. package/dist/config/health.js +13 -18
  29. package/dist/config/health.js.map +1 -1
  30. package/dist/config/index.js +11 -2
  31. package/dist/config/index.js.map +1 -1
  32. package/dist/config/persistence.d.ts +59 -0
  33. package/dist/config/persistence.js +127 -0
  34. package/dist/config/persistence.js.map +1 -0
  35. package/dist/config/profiles.js +10 -10
  36. package/dist/config/profiles.js.map +1 -1
  37. package/dist/config/servicePacks.d.ts +46 -0
  38. package/dist/config/{providerPacks.js → servicePacks.js} +28 -31
  39. package/dist/config/servicePacks.js.map +1 -0
  40. package/dist/config/services.d.ts +202 -0
  41. package/dist/config/services.js +758 -0
  42. package/dist/config/services.js.map +1 -0
  43. package/dist/config/sites.js +61 -61
  44. package/dist/config/sites.js.map +1 -1
  45. package/dist/config/userChannels.d.ts +89 -27
  46. package/dist/config/userChannels.js +400 -184
  47. package/dist/config/userChannels.js.map +1 -1
  48. package/dist/config/userConfig.d.ts +13 -9
  49. package/dist/config/userConfig.js +78 -60
  50. package/dist/config/userConfig.js.map +1 -1
  51. package/dist/config/userProfiles.d.ts +31 -15
  52. package/dist/config/userProfiles.js +154 -123
  53. package/dist/config/userProfiles.js.map +1 -1
  54. package/dist/hdhr/channelMap.d.ts +1 -1
  55. package/dist/hdhr/channelMap.js +4 -7
  56. package/dist/hdhr/channelMap.js.map +1 -1
  57. package/dist/hdhr/discover.js +7 -15
  58. package/dist/hdhr/discover.js.map +1 -1
  59. package/dist/hdhr/index.js +6 -9
  60. package/dist/hdhr/index.js.map +1 -1
  61. package/dist/native/index.d.ts +2 -2
  62. package/dist/native/index.js +17 -27
  63. package/dist/native/index.js.map +1 -1
  64. package/dist/native/intercept.js +86 -89
  65. package/dist/native/intercept.js.map +1 -1
  66. package/dist/native/probe.js +2 -2
  67. package/dist/native/probe.js.map +1 -1
  68. package/dist/native/proxy.d.ts +2 -2
  69. package/dist/native/proxy.js +4 -4
  70. package/dist/native/proxy.js.map +1 -1
  71. package/dist/routes/assets.js +29 -51
  72. package/dist/routes/assets.js.map +1 -1
  73. package/dist/routes/auth.js +3 -3
  74. package/dist/routes/auth.js.map +1 -1
  75. package/dist/routes/channels.js +5 -11
  76. package/dist/routes/channels.js.map +1 -1
  77. package/dist/routes/components.d.ts +0 -8
  78. package/dist/routes/components.js +0 -19
  79. package/dist/routes/components.js.map +1 -1
  80. package/dist/routes/config/channels/index.d.ts +1 -1
  81. package/dist/routes/config/channels/index.js +1 -1
  82. package/dist/routes/config/channels/index.js.map +1 -1
  83. package/dist/routes/config/channels/routes.js +748 -420
  84. package/dist/routes/config/channels/routes.js.map +1 -1
  85. package/dist/routes/config/channels/table.d.ts +21 -6
  86. package/dist/routes/config/channels/table.js +456 -193
  87. package/dist/routes/config/channels/table.js.map +1 -1
  88. package/dist/routes/config/index.d.ts +2 -2
  89. package/dist/routes/config/index.js +3 -3
  90. package/dist/routes/config/index.js.map +1 -1
  91. package/dist/routes/config/{providers.js → services.js} +47 -42
  92. package/dist/routes/config/services.js.map +1 -0
  93. package/dist/routes/config/settings.js +88 -49
  94. package/dist/routes/config/settings.js.map +1 -1
  95. package/dist/routes/debug.js +5 -7
  96. package/dist/routes/debug.js.map +1 -1
  97. package/dist/routes/health.js +1 -1
  98. package/dist/routes/health.js.map +1 -1
  99. package/dist/routes/icons.d.ts +16 -0
  100. package/dist/routes/icons.js +44 -0
  101. package/dist/routes/icons.js.map +1 -0
  102. package/dist/routes/index.js +2 -2
  103. package/dist/routes/index.js.map +1 -1
  104. package/dist/routes/logs.js +4 -4
  105. package/dist/routes/logs.js.map +1 -1
  106. package/dist/routes/playlist.d.ts +6 -4
  107. package/dist/routes/playlist.js +98 -45
  108. package/dist/routes/playlist.js.map +1 -1
  109. package/dist/routes/root/content.js +94 -55
  110. package/dist/routes/root/content.js.map +1 -1
  111. package/dist/routes/root/scripts/channels.js +620 -478
  112. package/dist/routes/root/scripts/channels.js.map +1 -1
  113. package/dist/routes/root/scripts/config.js +884 -964
  114. package/dist/routes/root/scripts/config.js.map +1 -1
  115. package/dist/routes/root/scripts/shared.js +468 -188
  116. package/dist/routes/root/scripts/shared.js.map +1 -1
  117. package/dist/routes/root/scripts/status.js +252 -207
  118. package/dist/routes/root/scripts/status.js.map +1 -1
  119. package/dist/routes/root/styles.js +57 -8
  120. package/dist/routes/root/styles.js.map +1 -1
  121. package/dist/routes/services.d.ts +6 -0
  122. package/dist/routes/{providers.js → services.js} +43 -43
  123. package/dist/routes/services.js.map +1 -0
  124. package/dist/routes/ui.d.ts +1 -1
  125. package/dist/routes/ui.js +3 -1
  126. package/dist/routes/ui.js.map +1 -1
  127. package/dist/service/commands.js +8 -43
  128. package/dist/service/commands.js.map +1 -1
  129. package/dist/service/generators.d.ts +1 -1
  130. package/dist/service/generators.js +143 -41
  131. package/dist/service/generators.js.map +1 -1
  132. package/dist/streaming/codec.d.ts +20 -0
  133. package/dist/streaming/codec.js +68 -0
  134. package/dist/streaming/codec.js.map +1 -0
  135. package/dist/streaming/fmp4Segmenter.d.ts +2 -2
  136. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  137. package/dist/streaming/hls.d.ts +4 -4
  138. package/dist/streaming/hls.js +35 -29
  139. package/dist/streaming/hls.js.map +1 -1
  140. package/dist/streaming/hlsResume.js +3 -3
  141. package/dist/streaming/hlsResume.js.map +1 -1
  142. package/dist/streaming/monitor.d.ts +2 -2
  143. package/dist/streaming/monitor.js +19 -13
  144. package/dist/streaming/monitor.js.map +1 -1
  145. package/dist/streaming/preroll.d.ts +15 -14
  146. package/dist/streaming/preroll.js +32 -12
  147. package/dist/streaming/preroll.js.map +1 -1
  148. package/dist/streaming/registry.d.ts +2 -2
  149. package/dist/streaming/registry.js +4 -8
  150. package/dist/streaming/registry.js.map +1 -1
  151. package/dist/streaming/setup.d.ts +4 -4
  152. package/dist/streaming/setup.js +28 -34
  153. package/dist/streaming/setup.js.map +1 -1
  154. package/dist/streaming/showInfo.js +8 -10
  155. package/dist/streaming/showInfo.js.map +1 -1
  156. package/dist/streaming/statusEmitter.d.ts +4 -3
  157. package/dist/streaming/statusEmitter.js +3 -3
  158. package/dist/streaming/statusEmitter.js.map +1 -1
  159. package/dist/types/channels.d.ts +18 -11
  160. package/dist/types/config.d.ts +3 -2
  161. package/dist/types/index.d.ts +4 -3
  162. package/dist/types/index.js +1 -0
  163. package/dist/types/index.js.map +1 -1
  164. package/dist/types/profiles.d.ts +9 -9
  165. package/dist/types/selection.d.ts +1 -1
  166. package/dist/types/shared.d.ts +1 -1
  167. package/dist/types/streaming.d.ts +8 -16
  168. package/dist/types/streaming.js +5 -1
  169. package/dist/types/streaming.js.map +1 -1
  170. package/dist/upgrade/commands.js +1 -16
  171. package/dist/upgrade/commands.js.map +1 -1
  172. package/dist/utils/chromeFetch.js +1 -1
  173. package/dist/utils/cliOutput.d.ts +10 -0
  174. package/dist/utils/cliOutput.js +17 -0
  175. package/dist/utils/cliOutput.js.map +1 -0
  176. package/dist/utils/debugFilter.js +3 -3
  177. package/dist/utils/debugFilter.js.map +1 -1
  178. package/dist/utils/fileLogger.js +4 -3
  179. package/dist/utils/fileLogger.js.map +1 -1
  180. package/dist/utils/format.d.ts +21 -4
  181. package/dist/utils/format.js +45 -7
  182. package/dist/utils/format.js.map +1 -1
  183. package/dist/utils/index.d.ts +1 -0
  184. package/dist/utils/index.js +1 -0
  185. package/dist/utils/index.js.map +1 -1
  186. package/dist/utils/logger.js +17 -27
  187. package/dist/utils/logger.js.map +1 -1
  188. package/dist/utils/morganStream.js +2 -2
  189. package/dist/utils/morganStream.js.map +1 -1
  190. package/dist/utils/platform.js +3 -2
  191. package/dist/utils/platform.js.map +1 -1
  192. package/dist/utils/retry.js +2 -4
  193. package/dist/utils/retry.js.map +1 -1
  194. package/dist/utils/streamContext.d.ts +7 -0
  195. package/dist/utils/streamContext.js +10 -1
  196. package/dist/utils/streamContext.js.map +1 -1
  197. package/dist/utils/version.js +4 -4
  198. package/dist/utils/version.js.map +1 -1
  199. package/package.json +5 -7
  200. package/dist/config/providerPacks.d.ts +0 -46
  201. package/dist/config/providerPacks.js.map +0 -1
  202. package/dist/config/providers.d.ts +0 -175
  203. package/dist/config/providers.js +0 -678
  204. package/dist/config/providers.js.map +0 -1
  205. package/dist/routes/config/providers.js.map +0 -1
  206. package/dist/routes/providers.d.ts +0 -6
  207. package/dist/routes/providers.js.map +0 -1
  208. /package/dist/routes/config/{providers.d.ts → services.d.ts} +0 -0
@@ -86,7 +86,7 @@ export function generateOverviewContent(baseUrl) {
86
86
  "<h3>What Is PrismCast?</h3>",
87
87
  "<p>PrismCast captures live video from web-based TV players by driving a real Chrome browser. It navigates to streaming sites, captures the ",
88
88
  "screen and audio output, and serves the result as HLS streams over HTTP. For TV Everywhere sites that deliver non-DRMed streams, PrismCast can also ",
89
- "bypass screen capture entirely and consume the stream directly at full provider quality with significantly lower CPU usage. Think of it as a ",
89
+ "bypass screen capture entirely and consume the stream directly at full service quality with significantly lower CPU usage. Think of it as a ",
90
90
  "<strong>virtual TV tuner for web-based content</strong> &mdash; it lets Channels DVR (and other applications) record and watch content from ",
91
91
  "streaming sites that do not offer direct video URLs.</p>",
92
92
  "<p>PrismCast is built around three priorities, in order:</p>",
@@ -106,7 +106,7 @@ export function generateOverviewContent(baseUrl) {
106
106
  "Quality presets can be changed in the <a href=\"#config/settings\">Configuration</a> tab.</p>",
107
107
  "<p>For screen-captured channels, this is <em>not</em> a replacement for native 4K, HDR, Dolby Vision, or surround sound &mdash; PrismCast ",
108
108
  "captures directly from Chrome's media pipeline with <strong>no video transcoding</strong>, which is why tuning is fast and CPU usage stays low. ",
109
- "For channels using <strong>native HLS streaming</strong> (TV Everywhere sites with non-DRMed streams), PrismCast delivers the provider's original ",
109
+ "For channels using <strong>native HLS streaming</strong> (TV Everywhere sites with non-DRMed streams), PrismCast delivers the service's original ",
110
110
  "stream quality without screen capture limitations. The result is good quality video that works well for everyday viewing and DVR recording. ",
111
111
  "PrismCast is designed for content you <strong>cannot get any other way</strong> in Channels DVR: network streaming sites, free ad-supported TV, ",
112
112
  "and live channels that only exist on the web.</p>",
@@ -119,10 +119,9 @@ export function generateOverviewContent(baseUrl) {
119
119
  "<li>Go to <strong>Settings &rarr; Custom Channels</strong> in your Channels DVR server.</li>",
120
120
  "<li>Click <strong>Add Source</strong> and select <strong>M3U Playlist</strong>.</li>",
121
121
  "<li>Enter the playlist URL: <code id=\"overview-playlist-url\">" + baseUrl + "/playlist</code> ",
122
- "<button class=\"btn-copy-inline\" onclick=\"copyOverviewPlaylistUrl()\" title=\"Copy URL\">Copy</button>",
123
- "<span id=\"overview-copy-feedback\" class=\"copy-feedback-inline\">Copied!</span></li>",
122
+ "<button class=\"btn-copy-inline\" onclick=\"copyOverviewPlaylistUrl()\" title=\"Copy URL\">Copy</button></li>",
124
123
  "<li>Set <strong>Stream Format</strong> to <strong>HLS</strong>.</li>",
125
- "<li>Optionally, go to the <a href=\"#channels\">Channels tab</a> and set the <strong>provider filter</strong> to only include streaming services you ",
124
+ "<li>Optionally, go to the <a href=\"#channels\">Channels tab</a> and set the <strong>service filter</strong> to only include streaming services you ",
126
125
  "subscribe to. This controls which channels Channels DVR sees in the playlist.</li>",
127
126
  "<li>Your configured channels will be imported automatically.</li>",
128
127
  "</ol>",
@@ -148,7 +147,7 @@ export function generateOverviewContent(baseUrl) {
148
147
  "<h4>Direct URL Channels (~3&ndash;5 seconds)</h4>",
149
148
  "<p>Sites where PrismCast navigates directly to a player page and video starts automatically. ",
150
149
  "Examples: NBC, ABC, Paramount+, USA Network.</p>",
151
- "<h4>Guide-Based Providers &mdash; First Tune (~5&ndash;10 seconds)</h4>",
150
+ "<h4>Guide-Based Services &mdash; First Tune (~5&ndash;10 seconds)</h4>",
152
151
  "<p>Sites where PrismCast navigates a live TV guide to find and select the channel. The first tune for a given channel is slower because the ",
153
152
  "guide grid must be searched. Examples: " + providerInfo.map((p) => escapeHtml(p.label)).sort().join(", ") + ".</p>",
154
153
  ...(slowProviderLabels.length > 0 ? [
@@ -156,7 +155,7 @@ export function generateOverviewContent(baseUrl) {
156
155
  " players are slow to initialize &mdash; expect 15&ndash;30 seconds for channel changes. " +
157
156
  "This is a limitation of the web player, not PrismCast.</p>"
158
157
  ] : []),
159
- "<h4>Guide-Based Providers &mdash; Subsequent Tunes (~3&ndash;5 seconds)</h4>",
158
+ "<h4>Guide-Based Services &mdash; Subsequent Tunes (~3&ndash;5 seconds)</h4>",
160
159
  "<p>After the first tune, PrismCast caches channel data for <strong>" +
161
160
  providerInfo.filter((p) => !p.noDirectTuneOptimization).map((p) => escapeHtml(p.label)).sort().join(", ") +
162
161
  "</strong>. Subsequent tunes skip guide navigation entirely and are comparable to direct URL channels. " +
@@ -181,8 +180,8 @@ export function generateOverviewContent(baseUrl) {
181
180
  "</ol>",
182
181
  "<p>Your login credentials are saved in the browser profile and persist across restarts. You only need to authenticate once per TV provider. ",
183
182
  "The <a href=\"#channels\">Channels tab</a> shows <strong>green and red indicators</strong> next to each channel reflecting the last tune result, ",
184
- "and <strong>provider authentication badges</strong> that confirm which providers have active sessions. Some TV providers periodically expire ",
185
- "sessions on their end, requiring re-authentication. This is a provider limitation, not a PrismCast issue &mdash; simply click Login again to ",
183
+ "and <strong>authentication badges</strong> that confirm which services have active sessions. Some TV providers periodically expire ",
184
+ "sessions on their end, requiring re-authentication. This is a service limitation, not a PrismCast issue &mdash; simply click Login again to ",
186
185
  "re-authenticate.</p>",
187
186
  "<p class=\"description-hint\">If PrismCast is running headless or on a remote server, use a VNC client to access the browser for authentication.</p>",
188
187
  "</div>",
@@ -190,35 +189,35 @@ export function generateOverviewContent(baseUrl) {
190
189
  "<div class=\"section\">",
191
190
  "<h3>Working with Channels</h3>",
192
191
  "<h4>Predefined Channels</h4>",
193
- "<p>PrismCast ships with channels across multiple streaming providers, maintained and updated with each release. You can disable any channels ",
192
+ "<p>PrismCast ships with channels across multiple streaming services, maintained and updated with each release. You can disable any channels ",
194
193
  "you do not need from the <a href=\"#channels\">Channels tab</a>. The predefined set covers common networks and is a good starting point &mdash; ",
195
194
  "enable what you watch and disable the rest. You can also override any predefined channel with your own custom definition ",
196
195
  "(see <em>Overriding Predefined Channels</em> below).</p>",
197
- "<h4>Provider Variants</h4>",
198
- "<p>Some channels (Comedy Central, Fox, NBC, etc.) are available from multiple streaming providers. The <strong>provider dropdown</strong> on each ",
199
- "channel lets you choose which service to use for that channel. Different providers may offer different tuning performance.</p>",
200
- "<h4>Provider Filter</h4>",
201
- "<p>If you only subscribe to certain streaming services, use the <strong>provider filter</strong> on the ",
196
+ "<h4>Service Variants</h4>",
197
+ "<p>Some channels (Comedy Central, Fox, NBC, etc.) are available from multiple streaming services. The <strong>service dropdown</strong> on each ",
198
+ "channel lets you choose which service to use for that channel. Different services may offer different tuning performance.</p>",
199
+ "<h4>Service Filter</h4>",
200
+ "<p>If you only subscribe to certain streaming services, use the <strong>service filter</strong> on the ",
202
201
  "<a href=\"#channels\">Channels tab</a> toolbar to show only relevant channels. This filter also controls which channels appear in the playlist ",
203
202
  "that Channels DVR imports &mdash; set it before adding the playlist source in the <a href=\"#overview\">Quick Start</a>. You can also filter ",
204
- "programmatically using the <code>?provider=</code> query parameter on the playlist URL.</p>",
203
+ "programmatically using the <code>?service=</code> query parameter on the playlist URL.</p>",
205
204
  "<h4>Bulk Operations</h4>",
206
- "<p>The <strong>Set all channels to</strong> dropdown on the <a href=\"#channels\">Channels tab</a> toolbar switches every multi-provider channel ",
207
- "to a single provider at once. This is useful when you want all channels routed through one streaming service. The operation can be undone by ",
208
- "switching individual channels back or selecting a different provider from the same dropdown.</p>",
205
+ "<p>The <strong>Set all channels to</strong> dropdown on the <a href=\"#channels\">Channels tab</a> toolbar switches every multi-service channel ",
206
+ "to a single service at once. This is useful when you want all channels routed through one streaming service. The operation can be undone by ",
207
+ "switching individual channels back or selecting a different service from the same dropdown.</p>",
209
208
  "<h4>User-Defined Channels</h4>",
210
209
  "<p>You can add custom channels for any streaming site. Provide a URL, select a site profile, and PrismCast will capture it. For sites with ",
211
- "multiple live channels (like a live TV provider), the <strong>Channel Selector</strong> field tells PrismCast which channel to tune to &mdash; ",
212
- "the expected value depends on the provider. When adding or editing a channel, select a profile to see the <strong>Profile Reference</strong> ",
213
- "section with site-specific guidance, including expected channel selector formats for known providers.</p>",
214
- "<h4>User-Defined Provider Profiles</h4>",
210
+ "multiple live channels (like a live TV service), the <strong>Channel Selector</strong> field tells PrismCast which channel to tune to &mdash; ",
211
+ "the expected value depends on the service. When adding or editing a channel, select a profile to see the <strong>Profile Reference</strong> ",
212
+ "section with site-specific guidance, including expected channel selector formats for known services.</p>",
213
+ "<h4>User-Defined Service Profiles</h4>",
215
214
  "<p>You can add support for streaming sites that PrismCast does not have builtin support for. The <a href=\"#channels/custom-profiles\">Custom Profiles tab</a> ",
216
215
  "includes a step-by-step wizard that guides you through creating a custom site profile &mdash; defining how to enter fullscreen, handle iframes, ",
217
- "and interact with the player. You can also export your profiles as <strong>provider packs</strong> to share with other PrismCast users, and ",
216
+ "and interact with the player. You can also export your profiles as <strong>service packs</strong> to share with other PrismCast users, and ",
218
217
  "import packs that others have created.</p>",
219
218
  "<h4>Overriding Predefined Channels</h4>",
220
- "<p>To override a predefined channel, create a user-defined channel with the same channel key. Both versions will appear in the provider ",
221
- "dropdown &mdash; yours labeled <em>Custom</em> and the original with its provider name. You can switch between them at any time.</p>",
219
+ "<p>To override a predefined channel, create a user-defined channel with the same channel key. Both versions will appear in the service ",
220
+ "dropdown &mdash; yours labeled <em>Custom</em> and the original with its service name. You can switch between them at any time.</p>",
222
221
  "<p class=\"description-hint\">For automation and integration with other workflows, see the <a href=\"#api\">API Reference</a> tab for the full HTTP API.</p>",
223
222
  "</div>",
224
223
  // Requirements.
@@ -268,7 +267,7 @@ export function generateHelpContent() {
268
267
  "<p>Copy the data directory (<code>~/.prismcast</code>) or just the three JSON files listed above. To restore, place them in the data ",
269
268
  "directory on the new machine and restart PrismCast. Docker users should ensure their container's data directory volume is backed up.</p>",
270
269
  "<h4>What Is Not Included</h4>",
271
- "<p><strong>Provider login sessions</strong> are stored in Chrome's profile data, not in the configuration files. After migrating to a new ",
270
+ "<p><strong>Service login sessions</strong> are stored in Chrome's profile data, not in the configuration files. After migrating to a new ",
272
271
  "machine, you will need to re-authenticate with each TV provider through the browser. The <code>health.json</code> file (channel health ",
273
272
  "and authentication state indicators) is also not exported &mdash; it rebuilds automatically as channels are tuned.</p>",
274
273
  "</div>",
@@ -334,14 +333,14 @@ export function generateHelpContent() {
334
333
  "</tr>",
335
334
  "<tr>",
336
335
  "<td>Slow first tune (~5&ndash;10 seconds)</td>",
337
- "<td>Guide-based providers need to search their channel grid on the first tune.</td>",
336
+ "<td>Guide-based services need to search their channel grid on the first tune.</td>",
338
337
  "<td>This is normal. Subsequent tunes of the same channel are faster due to caching. Enable channel precaching in ",
339
338
  "<a href=\"#config/settings\">Configuration</a> for faster first tunes.</td>",
340
339
  "</tr>",
341
340
  "<tr>",
342
341
  "<td>\"Channel not found\" or wrong channel plays</td>",
343
- "<td>The Channel Selector value does not match the provider's guide entry.</td>",
344
- "<td>Check the log for available channel names. The expected format varies by provider &mdash; some use display names, ",
342
+ "<td>The Channel Selector value does not match the service's guide entry.</td>",
343
+ "<td>Check the log for available channel names. The expected format varies by service &mdash; some use display names, ",
345
344
  "others use internal codes.</td>",
346
345
  "</tr>",
347
346
  "<tr>",
@@ -366,7 +365,7 @@ export function generateHelpContent() {
366
365
  "frame rate setting.</li>",
367
366
  "<li><strong>No closed captions.</strong> Chrome's capture API does not include caption data. Subtitles are not available in PrismCast streams.</li>",
368
367
  "<li><strong>No 4K, HDR, or surround sound for screen-captured channels.</strong> Screen-captured channels deliver H.264 video with AAC stereo audio. ",
369
- "Channels using native HLS streaming deliver the provider's original stream quality. Neither mode supports Dolby Vision or Dolby Atmos.</li>",
368
+ "Channels using native HLS streaming deliver the service's original stream quality. Neither mode supports Dolby Vision or Dolby Atmos.</li>",
370
369
  "<li><strong>Capture resolution is limited by display size.</strong> This applies to screen-captured channels only. See the Display and Resolution ",
371
370
  "section above for details. Native HLS channels are not affected by display size.</li>",
372
371
  "<li><strong>Chrome may drop frames after extended use.</strong> The Chrome encoder can degrade after many hours of continuous operation. PrismCast ",
@@ -404,11 +403,19 @@ export function generateApiReferenceContent() {
404
403
  "<a href=\"#api-channels\"><code>POST /config/channels/import</code></a>",
405
404
  "</div>",
406
405
  "<div class=\"api-index-group\">",
407
- "<a href=\"#api-providers\" class=\"api-index-heading\">Providers</a>",
408
- "<span class=\"api-index-desc\">Channel discovery, provider selection, and playlist filtering.</span>",
409
- "<a href=\"#api-providers\"><code>GET /providers/:slug/channels</code></a>",
410
- "<a href=\"#api-providers\"><code>POST /config/provider</code></a>",
411
- "<a href=\"#api-providers\"><code>POST /config/provider-filter</code></a>",
406
+ "<a href=\"#api-services\" class=\"api-index-heading\">Services</a>",
407
+ "<span class=\"api-index-desc\">Channel discovery, service selection, and playlist filtering.</span>",
408
+ "<a href=\"#api-services\"><code>GET /services/:slug/channels</code></a>",
409
+ "<a href=\"#api-services\"><code>POST /config/service</code></a>",
410
+ "<a href=\"#api-services\"><code>POST /config/service-filter</code></a>",
411
+ "</div>",
412
+ "<div class=\"api-index-group\">",
413
+ "<a href=\"#api-profiles\" class=\"api-index-heading\">Profiles</a>",
414
+ "<span class=\"api-index-desc\">Custom site profiles and service packs.</span>",
415
+ "<a href=\"#api-profiles\"><code>GET /config/profiles</code></a>",
416
+ "<a href=\"#api-profiles\"><code>POST /config/profiles</code></a>",
417
+ "<a href=\"#api-profiles\"><code>POST /config/profiles/import</code></a>",
418
+ "<a href=\"#api-profiles\"><code>GET /config/profiles/export</code></a>",
412
419
  "</div>",
413
420
  "<div class=\"api-index-group\">",
414
421
  "<a href=\"#api-auth\" class=\"api-index-heading\">Authentication</a>",
@@ -478,13 +485,13 @@ export function generateApiReferenceContent() {
478
485
  "<td class=\"endpoint\"><a href=\"/playlist\"><code>GET /playlist</code></a></td>",
479
486
  "<td>M3U playlist of all channels in Channels DVR format. Use this URL when adding PrismCast as a custom channel source. " +
480
487
  "Optional query parameters: " +
481
- "<code>?provider=</code> filters by streaming provider (<code>?provider=yttv</code>, <code>?provider=yttv,sling</code>, " +
482
- "<code>?provider=-hulu</code>). " +
483
- "<code>?sort=</code> overrides sort field (<code>name</code>, <code>key</code>, <code>channelNumber</code>, <code>provider</code>, " +
488
+ "<code>?service=</code> filters by streaming service (<code>?service=yttv</code>, <code>?service=yttv,sling</code>, " +
489
+ "<code>?service=-hulu</code>). " +
490
+ "<code>?sort=</code> overrides sort field (<code>name</code>, <code>key</code>, <code>channelNumber</code>, <code>service</code>," +
484
491
  "<code>profile</code>, <code>stationId</code>, <code>channelSelector</code>). " +
485
492
  "<code>?direction=</code> overrides sort direction (<code>asc</code> or <code>desc</code>). " +
486
493
  "All parameters are optional and can be combined. " +
487
- "<strong>Provider filter only controls which channels appear in the playlist, not which provider is used for tuning.</strong></td>",
494
+ "<strong>Service filter only controls which channels appear in the playlist, not which service is used for tuning.</strong></td>",
488
495
  "</tr>",
489
496
  "</table>",
490
497
  "</div>",
@@ -529,38 +536,70 @@ export function generateApiReferenceContent() {
529
536
  "</tr>",
530
537
  "</table>",
531
538
  "</div>",
532
- // Provider endpoints.
539
+ // Service endpoints.
533
540
  "<div class=\"section\">",
534
- "<h3 id=\"api-providers\">Providers</h3>",
535
- "<p>Channel discovery, provider selection, and filtering for multi-provider channels.</p>",
541
+ "<h3 id=\"api-services\">Services</h3>",
542
+ "<p>Channel discovery, service selection, and filtering for multi-service channels.</p>",
536
543
  "<table>",
537
544
  "<tr><th style=\"width: 35%;\">Endpoint</th><th>Description</th></tr>",
538
545
  "<tr>",
539
- "<td class=\"endpoint\"><code>GET /providers/:slug/channels</code></td>",
540
- "<td>Discover all available channels for a provider. Returns a JSON array of channel objects with <code>name</code>, <code>channelSelector</code>, " +
541
- "and optional <code>affiliate</code> and <code>tier</code> fields. Provider slugs: " +
546
+ "<td class=\"endpoint\"><code>GET /services/:slug/channels</code></td>",
547
+ "<td>Discover all available channels for a service. Returns a JSON array of channel objects with <code>name</code>, <code>channelSelector</code>, " +
548
+ "and optional <code>affiliate</code> and <code>tier</code> fields. Service slugs: " +
542
549
  getProviderModuleInfo().map((p) => "<code>" + escapeHtml(p.slug) + "</code>").sort().join(", ") +
543
550
  ". Returns cached results instantly when a prior tune or discovery call has already " +
544
551
  "enumerated the lineup. " +
545
552
  "Add <code>?refresh=true</code> to clear caches and force a fresh discovery walk.</td>",
546
553
  "</tr>",
547
554
  "<tr>",
548
- "<td class=\"endpoint\"><code>POST /config/provider</code></td>",
549
- "<td>Update provider selection for a multi-provider channel. Body: <code>{ \"channel\": \"nbc\", \"provider\": \"nbc-hulu\" }</code></td>",
555
+ "<td class=\"endpoint\"><code>POST /config/service</code></td>",
556
+ "<td>Update service selection for a multi-service channel. Body: <code>{ \"channel\": \"nbc\", \"service\": \"nbc-hulu\" }</code></td>",
550
557
  "</tr>",
551
558
  "<tr>",
552
- "<td class=\"endpoint\"><code>POST /config/provider-filter</code></td>",
553
- "<td>Set enabled provider tags. Body: <code>{ \"enabledProviders\": [\"hulu\", \"yttv\"] }</code>. Empty array disables filter.</td>",
559
+ "<td class=\"endpoint\"><code>POST /config/service-filter</code></td>",
560
+ "<td>Set enabled service tags. Body: <code>{ \"enabledServices\": [\"hulu\", \"yttv\"] }</code>. Empty array disables filter.</td>",
554
561
  "</tr>",
555
562
  "<tr>",
556
- "<td class=\"endpoint\"><code>POST /config/provider-bulk-assign</code></td>",
557
- "<td>Assign a provider to all multi-provider channels. Body: <code>{ \"provider\": \"hulu\" }</code>. " +
563
+ "<td class=\"endpoint\"><code>POST /config/service-bulk-assign</code></td>",
564
+ "<td>Assign a service to all multi-service channels. Body: <code>{ \"service\": \"hulu\" }</code>. " +
558
565
  "Returns <code>{ affected, previousSelections, selections }</code></td>",
559
566
  "</tr>",
560
567
  "<tr>",
561
- "<td class=\"endpoint\"><code>POST /config/provider-bulk-restore</code></td>",
562
- "<td>Restore previous provider selections (undo bulk assign). Body: <code>{ \"selections\": { \"nbc\": \"nbc-hulu\", \"fox\": null } }</code>. " +
563
- "A <code>null</code> value restores the channel to its default provider.</td>",
568
+ "<td class=\"endpoint\"><code>POST /config/service-bulk-restore</code></td>",
569
+ "<td>Restore previous service selections (undo bulk assign). Body: <code>{ \"selections\": { \"nbc\": \"nbc-hulu\", \"fox\": null } }</code>. " +
570
+ "A <code>null</code> value restores the channel to its default service.</td>",
571
+ "</tr>",
572
+ "</table>",
573
+ "</div>",
574
+ // Profile endpoints.
575
+ "<div class=\"section\">",
576
+ "<h3 id=\"api-profiles\">Profiles</h3>",
577
+ "<p>Custom site profiles and service pack distribution. Profiles define how PrismCast interacts with a streaming site. " +
578
+ "Service packs bundle profiles, domain mappings, and optional channels for sharing across instances.</p>",
579
+ "<table>",
580
+ "<tr><th style=\"width: 35%;\">Endpoint</th><th>Description</th></tr>",
581
+ "<tr>",
582
+ "<td class=\"endpoint\"><code>GET /config/profiles</code></td>",
583
+ "<td>List all user-defined profiles and domain mappings with associated channel counts.</td>",
584
+ "</tr>",
585
+ "<tr>",
586
+ "<td class=\"endpoint\"><code>POST /config/profiles</code></td>",
587
+ "<td>Create or update a user-defined profile with optional domain mappings. Body: <code>{ \"key\": \"myProfile\", " +
588
+ "\"profile\": { \"extends\": \"embeddedPlayer\", ... }, \"domains\": { \"example.com\": { \"profile\": \"myProfile\" } } }</code></td>",
589
+ "</tr>",
590
+ "<tr>",
591
+ "<td class=\"endpoint\"><code>DELETE /config/profiles/:key</code></td>",
592
+ "<td>Delete a user-defined profile and its associated domain mappings.</td>",
593
+ "</tr>",
594
+ "<tr>",
595
+ "<td class=\"endpoint\"><code>POST /config/profiles/import</code></td>",
596
+ "<td>Import a service pack JSON file. Validates profiles, domains, and optional channels. " +
597
+ "Body: <code>{ \"data\": { ... }, \"skipChannels\": false }</code></td>",
598
+ "</tr>",
599
+ "<tr>",
600
+ "<td class=\"endpoint\"><code>GET /config/profiles/export</code></td>",
601
+ "<td>Export user profile(s) as a service pack JSON file download. Query params: <code>?profile=key1,key2</code> (required), " +
602
+ "<code>&amp;channels=1</code> (include channels), <code>&amp;domains=0</code> (exclude domains), <code>&amp;name=</code> (pack display name).</td>",
564
603
  "</tr>",
565
604
  "</table>",
566
605
  "</div>",
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/routes/root/content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/routes/root/content.ts"],"names":[],"mappings":"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"}