prismcast 1.8.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.
- package/README.md +6 -6
- package/dist/app.js +15 -5
- package/dist/app.js.map +1 -1
- package/dist/browser/cdp.d.ts +4 -6
- package/dist/browser/cdp.js +13 -17
- package/dist/browser/cdp.js.map +1 -1
- package/dist/browser/index.js +3 -3
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/precaching.d.ts +1 -1
- package/dist/browser/precaching.js +23 -23
- package/dist/browser/precaching.js.map +1 -1
- package/dist/browser/tuning/directv.js +4 -7
- package/dist/browser/tuning/directv.js.map +1 -1
- package/dist/browser/tuning/fox.js +1 -1
- package/dist/browser/tuning/fox.js.map +1 -1
- package/dist/browser/tuning/hbo.js +1 -1
- package/dist/browser/tuning/hbo.js.map +1 -1
- package/dist/browser/tuning/hulu.js +3 -3
- package/dist/browser/tuning/hulu.js.map +1 -1
- package/dist/browser/tuning/sling.js +2 -2
- package/dist/browser/tuning/sling.js.map +1 -1
- package/dist/channels/index.d.ts +1 -1
- package/dist/channels/index.js +416 -416
- package/dist/channels/index.js.map +1 -1
- package/dist/config/health.d.ts +3 -3
- package/dist/config/health.js +3 -3
- package/dist/config/index.js +2 -2
- package/dist/config/index.js.map +1 -1
- package/dist/config/persistence.d.ts +59 -0
- package/dist/config/persistence.js +127 -0
- package/dist/config/persistence.js.map +1 -0
- package/dist/config/servicePacks.d.ts +46 -0
- package/dist/config/{providerPacks.js → servicePacks.js} +28 -31
- package/dist/config/servicePacks.js.map +1 -0
- package/dist/config/services.d.ts +202 -0
- package/dist/config/{providers.js → services.js} +277 -210
- package/dist/config/services.js.map +1 -0
- package/dist/config/sites.js +61 -61
- package/dist/config/sites.js.map +1 -1
- package/dist/config/userChannels.d.ts +36 -27
- package/dist/config/userChannels.js +300 -212
- package/dist/config/userChannels.js.map +1 -1
- package/dist/config/userConfig.d.ts +11 -9
- package/dist/config/userConfig.js +53 -60
- package/dist/config/userConfig.js.map +1 -1
- package/dist/config/userProfiles.d.ts +31 -15
- package/dist/config/userProfiles.js +139 -96
- package/dist/config/userProfiles.js.map +1 -1
- package/dist/hdhr/channelMap.d.ts +1 -1
- package/dist/hdhr/channelMap.js +4 -7
- package/dist/hdhr/channelMap.js.map +1 -1
- package/dist/hdhr/index.js +6 -9
- package/dist/hdhr/index.js.map +1 -1
- package/dist/native/index.js +3 -3
- package/dist/native/index.js.map +1 -1
- package/dist/native/intercept.js +86 -89
- package/dist/native/intercept.js.map +1 -1
- package/dist/native/probe.js +2 -2
- package/dist/native/probe.js.map +1 -1
- package/dist/native/proxy.js +4 -4
- package/dist/native/proxy.js.map +1 -1
- package/dist/routes/assets.js +3 -3
- package/dist/routes/assets.js.map +1 -1
- package/dist/routes/auth.js +3 -3
- package/dist/routes/auth.js.map +1 -1
- package/dist/routes/config/channels/index.d.ts +1 -1
- package/dist/routes/config/channels/index.js +1 -1
- package/dist/routes/config/channels/index.js.map +1 -1
- package/dist/routes/config/channels/routes.js +488 -460
- package/dist/routes/config/channels/routes.js.map +1 -1
- package/dist/routes/config/channels/table.d.ts +4 -4
- package/dist/routes/config/channels/table.js +206 -147
- package/dist/routes/config/channels/table.js.map +1 -1
- package/dist/routes/config/index.d.ts +2 -2
- package/dist/routes/config/index.js +3 -3
- package/dist/routes/config/index.js.map +1 -1
- package/dist/routes/config/{providers.js → services.js} +44 -39
- package/dist/routes/config/services.js.map +1 -0
- package/dist/routes/config/settings.js +47 -29
- package/dist/routes/config/settings.js.map +1 -1
- package/dist/routes/debug.js +5 -7
- package/dist/routes/debug.js.map +1 -1
- package/dist/routes/health.js +1 -1
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/index.js +2 -2
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/logs.js +4 -4
- package/dist/routes/logs.js.map +1 -1
- package/dist/routes/playlist.d.ts +4 -4
- package/dist/routes/playlist.js +56 -44
- package/dist/routes/playlist.js.map +1 -1
- package/dist/routes/root/content.js +58 -58
- package/dist/routes/root/content.js.map +1 -1
- package/dist/routes/root/scripts/channels.js +529 -572
- package/dist/routes/root/scripts/channels.js.map +1 -1
- package/dist/routes/root/scripts/config.js +838 -992
- package/dist/routes/root/scripts/config.js.map +1 -1
- package/dist/routes/root/scripts/shared.js +431 -197
- package/dist/routes/root/scripts/shared.js.map +1 -1
- package/dist/routes/root/scripts/status.js +247 -196
- package/dist/routes/root/scripts/status.js.map +1 -1
- package/dist/routes/root/styles.js +12 -4
- package/dist/routes/root/styles.js.map +1 -1
- package/dist/routes/services.d.ts +6 -0
- package/dist/routes/{providers.js → services.js} +43 -43
- package/dist/routes/services.js.map +1 -0
- package/dist/routes/ui.js +2 -0
- package/dist/routes/ui.js.map +1 -1
- package/dist/service/commands.js +5 -8
- package/dist/service/commands.js.map +1 -1
- package/dist/service/generators.d.ts +1 -1
- package/dist/service/generators.js +143 -41
- package/dist/service/generators.js.map +1 -1
- package/dist/streaming/hls.d.ts +4 -4
- package/dist/streaming/hls.js +24 -23
- package/dist/streaming/hls.js.map +1 -1
- package/dist/streaming/hlsResume.js +1 -1
- package/dist/streaming/hlsResume.js.map +1 -1
- package/dist/streaming/monitor.d.ts +2 -2
- package/dist/streaming/monitor.js +19 -13
- package/dist/streaming/monitor.js.map +1 -1
- package/dist/streaming/preroll.js +1 -1
- package/dist/streaming/preroll.js.map +1 -1
- package/dist/streaming/registry.js +4 -8
- package/dist/streaming/registry.js.map +1 -1
- package/dist/streaming/setup.d.ts +2 -2
- package/dist/streaming/setup.js +23 -22
- package/dist/streaming/setup.js.map +1 -1
- package/dist/streaming/showInfo.js +8 -10
- package/dist/streaming/showInfo.js.map +1 -1
- package/dist/streaming/statusEmitter.d.ts +4 -3
- package/dist/streaming/statusEmitter.js +3 -3
- package/dist/streaming/statusEmitter.js.map +1 -1
- package/dist/types/channels.d.ts +15 -11
- package/dist/types/config.d.ts +2 -2
- package/dist/types/index.d.ts +2 -2
- package/dist/types/profiles.d.ts +9 -9
- package/dist/types/selection.d.ts +1 -1
- package/dist/types/shared.d.ts +1 -1
- package/dist/types/streaming.d.ts +1 -1
- package/dist/utils/chromeFetch.js +1 -1
- package/dist/utils/debugFilter.js +3 -3
- package/dist/utils/debugFilter.js.map +1 -1
- package/dist/utils/fileLogger.js +4 -3
- package/dist/utils/fileLogger.js.map +1 -1
- package/dist/utils/format.d.ts +7 -1
- package/dist/utils/format.js +21 -1
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/logger.js +17 -27
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/morganStream.js +2 -2
- package/dist/utils/morganStream.js.map +1 -1
- package/dist/utils/platform.js +3 -2
- package/dist/utils/platform.js.map +1 -1
- package/dist/utils/streamContext.d.ts +7 -0
- package/dist/utils/streamContext.js +10 -1
- package/dist/utils/streamContext.js.map +1 -1
- package/dist/utils/version.js +4 -4
- package/dist/utils/version.js.map +1 -1
- package/package.json +5 -7
- package/dist/config/providerPacks.d.ts +0 -46
- package/dist/config/providerPacks.js.map +0 -1
- package/dist/config/providers.d.ts +0 -175
- package/dist/config/providers.js.map +0 -1
- package/dist/routes/config/providers.js.map +0 -1
- package/dist/routes/providers.d.ts +0 -6
- package/dist/routes/providers.js.map +0 -1
- /package/dist/routes/config/{providers.d.ts → services.d.ts} +0 -0
package/dist/routes/playlist.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { VALID_SORT_FIELDS, compareChannelSort,
|
|
2
|
-
import { getActiveTagVocabulary, getAllChannels } from "../config/userChannels.js";
|
|
1
|
+
import { VALID_SORT_FIELDS, compareChannelSort, getAllServiceTags, getServiceTagForChannel, resolveServiceKey } from "../config/services.js";
|
|
2
|
+
import { getActiveTagVocabulary, getAllChannels, getChannelEffectiveTags, tagsMatch } from "../config/userChannels.js";
|
|
3
3
|
import { CONFIG } from "../config/index.js";
|
|
4
|
-
import {
|
|
4
|
+
import { getProfileForChannel } from "../config/profiles.js";
|
|
5
5
|
/**
|
|
6
6
|
* Parses and validates an include/exclude filter query parameter. The parameter is a comma-separated list of values with optional `-` prefix for exclusion mode.
|
|
7
7
|
* All values must be either include (no prefix) or exclude (`-` prefix) — mixing is not allowed. Values are case-insensitive and validated against a known set.
|
|
8
8
|
* @param param - The raw query parameter string (e.g., "sports,news" or "-kids").
|
|
9
|
-
* @param entityName - Human-readable name for error messages (e.g., "
|
|
9
|
+
* @param entityName - Human-readable name for error messages (e.g., "service tag", "tag").
|
|
10
10
|
* @param knownValues - Array of valid values to validate against.
|
|
11
11
|
* @returns An object with `filter` on success, or `error` with a descriptive message and `validTags` list on failure.
|
|
12
12
|
*/
|
|
@@ -32,8 +32,8 @@ function parseIncludeExcludeFilter(param, entityName, knownValues) {
|
|
|
32
32
|
}
|
|
33
33
|
const isExclude = excludeTokens.length > 0;
|
|
34
34
|
const filterTags = isExclude ? excludeTokens : includeTokens;
|
|
35
|
-
// Validate all values against the known set.
|
|
36
|
-
const knownSet = new Set(knownValues);
|
|
35
|
+
// Validate all values against the known set. Tokens are already lowercased, so normalize known values for case-insensitive comparison.
|
|
36
|
+
const knownSet = new Set(knownValues.map((v) => v.toLowerCase()));
|
|
37
37
|
const unknownTags = filterTags.filter((tag) => !knownSet.has(tag));
|
|
38
38
|
if (unknownTags.length > 0) {
|
|
39
39
|
return { error: "Unknown " + entityName + "(s): " + unknownTags.join(", ") + ".", validTags: knownValues.sort() };
|
|
@@ -41,12 +41,12 @@ function parseIncludeExcludeFilter(param, entityName, knownValues) {
|
|
|
41
41
|
return { filter: { exclude: isExclude, tags: filterTags } };
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
|
-
* Parses a
|
|
44
|
+
* Parses a service filter by validating against known service tags.
|
|
45
45
|
* @param param - The raw query parameter string (e.g., "yttv,sling" or "-hulu,-sling").
|
|
46
46
|
* @returns An object with `filter` on success, or `error` with a descriptive message and `validTags` list on failure.
|
|
47
47
|
*/
|
|
48
|
-
function
|
|
49
|
-
return parseIncludeExcludeFilter(param, "
|
|
48
|
+
function parseServiceFilter(param) {
|
|
49
|
+
return parseIncludeExcludeFilter(param, "service tag", getAllServiceTags().map((p) => p.tag));
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
52
|
* Parses a tag filter by validating against the active tag vocabulary.
|
|
@@ -84,59 +84,71 @@ export function resolveBaseUrl(req) {
|
|
|
84
84
|
* Generates the M3U playlist content for display on the landing page or the playlist endpoint. The playlist includes all configured video channels with their
|
|
85
85
|
* stream URLs dynamically constructed from the provided base URL.
|
|
86
86
|
* @param baseUrl - The base URL to use for stream URLs (e.g., "http://localhost:5589").
|
|
87
|
-
* @param
|
|
88
|
-
*
|
|
87
|
+
* @param serviceFilter - Optional service filter based on the currently selected service for each channel. In include mode, only channels whose selected
|
|
88
|
+
* service matches a filter tag are included. In exclude mode, channels whose selected service matches any filter tag are excluded.
|
|
89
89
|
* @param tagFilter - Optional tag filter based on the channel's effective organizational tags. In include mode, only channels with at least one matching tag are
|
|
90
|
-
* included. In exclude mode, channels with any matching tag are excluded. Tag and
|
|
90
|
+
* included. In exclude mode, channels with any matching tag are excluded. Tag and service filters compose via intersection.
|
|
91
91
|
* @param sort - Optional sort field override. When provided, channels are sorted by this field instead of the user's saved preference. Validated against
|
|
92
92
|
* VALID_SORT_FIELDS before calling.
|
|
93
93
|
* @param direction - Optional sort direction override ("asc" or "desc"). When provided, overrides the user's saved sort direction.
|
|
94
94
|
* @returns The M3U playlist content.
|
|
95
95
|
*/
|
|
96
|
-
export function generatePlaylistContent(baseUrl,
|
|
96
|
+
export function generatePlaylistContent(baseUrl, serviceFilter, tagFilter, sort, direction) {
|
|
97
97
|
const channels = getAllChannels();
|
|
98
98
|
const lines = ["#EXTM3U", ""];
|
|
99
99
|
const sortField = sort ?? CONFIG.channels.channelSortField;
|
|
100
100
|
const sortDir = direction ?? CONFIG.channels.channelSortDirection;
|
|
101
|
-
// Pre-compute the vocabulary Set once so the per-channel tag intersection below doesn't rebuild it on every iteration.
|
|
102
|
-
const vocabularySet = tagFilter ? new Set(getActiveTagVocabulary()) : undefined;
|
|
103
101
|
// Sort channel keys using the specified (or saved) sort field and direction. Default is name ascending.
|
|
104
102
|
const channelNames = Object.keys(channels).sort((a, b) => compareChannelSort(channels[a], a, channels[b], b, sortField, sortDir));
|
|
105
103
|
for (const name of channelNames) {
|
|
106
104
|
const channel = channels[name];
|
|
107
|
-
// Apply the
|
|
108
|
-
if (
|
|
109
|
-
const selectedKey =
|
|
110
|
-
const selectedTag =
|
|
111
|
-
const hasMatch =
|
|
112
|
-
// In include mode, skip channels whose selected
|
|
113
|
-
if (
|
|
105
|
+
// Apply the service filter if specified.
|
|
106
|
+
if (serviceFilter) {
|
|
107
|
+
const selectedKey = resolveServiceKey(name);
|
|
108
|
+
const selectedTag = getServiceTagForChannel(selectedKey);
|
|
109
|
+
const hasMatch = serviceFilter.tags.includes(selectedTag);
|
|
110
|
+
// In include mode, skip channels whose selected service doesn't match any filter tag. In exclude mode, skip channels whose selected service matches.
|
|
111
|
+
if (serviceFilter.exclude ? hasMatch : !hasMatch) {
|
|
114
112
|
continue;
|
|
115
113
|
}
|
|
116
114
|
}
|
|
117
|
-
//
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
115
|
+
// Compute effective tags once per channel — used for both the tag filter check and M3U attribute generation. Tags are intersected with the active vocabulary
|
|
116
|
+
// so deleted tags are invisible.
|
|
117
|
+
const effectiveTags = getChannelEffectiveTags(channel);
|
|
118
|
+
// Apply the tag filter if specified. Filter tags are lowercase (normalized by parseIncludeExcludeFilter), so compare case-insensitively.
|
|
119
|
+
if (tagFilter) {
|
|
120
|
+
const hasMatch = tagFilter.tags.some((filterTag) => effectiveTags.some((t) => tagsMatch(t, filterTag)));
|
|
121
121
|
// In include mode, skip channels that don't have any matching tag. In exclude mode, skip channels that have a matching tag.
|
|
122
122
|
if (tagFilter.exclude ? hasMatch : !hasMatch) {
|
|
123
123
|
continue;
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
//
|
|
127
|
-
const
|
|
128
|
-
if (profile.noVideo) {
|
|
129
|
-
continue;
|
|
130
|
-
}
|
|
131
|
-
// We use the channel key as the channel-id and the friendly name for display. HLS URLs are used for Channels DVR compatibility.
|
|
132
|
-
const displayName = channel.name ?? name;
|
|
126
|
+
// We use the channel key as the channel-id and the guide title (falling back to channel name) for display. HLS URLs are used for Channels DVR compatibility.
|
|
127
|
+
const displayName = channel.guideTitle ?? channel.name ?? name;
|
|
133
128
|
const streamUrl = baseUrl + "/hls/" + name + "/stream.m3u8";
|
|
134
129
|
// Build the EXTINF line with required channel-id attribute and tvg-name for the friendly display name. Include channel-number when the user has specified one,
|
|
135
|
-
// tvc-guide-stationid for Gracenote guide data when a stationId is defined,
|
|
130
|
+
// tvc-guide-stationid for Gracenote guide data when a stationId is defined, tvg-shift for EPG time offset, tvg-logo for custom channel logos, and group-title
|
|
131
|
+
// for organizational tags (semicolon-delimited for IPTV middleware compatibility).
|
|
136
132
|
const channelNumberAttr = channel.channelNumber ? " channel-number=\"" + String(channel.channelNumber) + "\"" : "";
|
|
133
|
+
const groupTitleAttr = (effectiveTags.length > 0) ? " group-title=\"" + effectiveTags.join(";") + "\"" : "";
|
|
134
|
+
const logoAttr = channel.logoUrl ? " tvg-logo=\"" + channel.logoUrl + "\"" : "";
|
|
137
135
|
const stationIdAttr = channel.stationId ? " tvc-guide-stationid=\"" + channel.stationId + "\"" : "";
|
|
138
136
|
const tvgShiftAttr = (channel.tvgShift !== undefined) ? " tvg-shift=\"" + String(channel.tvgShift) + "\"" : "";
|
|
139
|
-
|
|
137
|
+
// For channels without EPG data, emit tvc-guide-tags so Channels DVR's Automatic Channels can filter on them. Static page channels also get
|
|
138
|
+
// tvc-guide-placeholders to provide a 24-hour guide block since they display persistent content without time-based programming.
|
|
139
|
+
let tvcTagsAttr = "";
|
|
140
|
+
let tvcPlaceholdersAttr = "";
|
|
141
|
+
if (!channel.stationId) {
|
|
142
|
+
if (effectiveTags.length > 0) {
|
|
143
|
+
tvcTagsAttr = " tvc-guide-tags=\"" + effectiveTags.join(", ") + "\"";
|
|
144
|
+
}
|
|
145
|
+
const { profile } = getProfileForChannel(channel);
|
|
146
|
+
if (profile.staticCapture) {
|
|
147
|
+
tvcPlaceholdersAttr = " tvc-guide-placeholders=\"86400\"";
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
const attrs = "#EXTINF:-1 channel-id=\"" + name + "\"" + channelNumberAttr + groupTitleAttr + logoAttr + " tvg-name=\"" + displayName + "\"" + stationIdAttr +
|
|
151
|
+
tvcPlaceholdersAttr + tvcTagsAttr + tvgShiftAttr;
|
|
140
152
|
const extinfLine = attrs + "," + displayName;
|
|
141
153
|
lines.push(extinfLine);
|
|
142
154
|
lines.push(streamUrl);
|
|
@@ -153,24 +165,24 @@ const VALID_SORT_DIRECTIONS = new Set(["asc", "desc"]);
|
|
|
153
165
|
* @param app - The Express application.
|
|
154
166
|
*/
|
|
155
167
|
export function setupPlaylistEndpoint(app) {
|
|
156
|
-
// GET /playlist - Returns the M3U playlist file. Supports optional query parameters: ?
|
|
168
|
+
// GET /playlist - Returns the M3U playlist file. Supports optional query parameters: ?service= for filtering by streaming service, ?tag= for filtering by
|
|
157
169
|
// organizational tags, ?sort= for sort field override, and ?direction= for sort direction override.
|
|
158
170
|
app.get("/playlist", (req, res) => {
|
|
159
171
|
const baseUrl = resolveBaseUrl(req);
|
|
160
|
-
const
|
|
172
|
+
const serviceParam = typeof req.query.service === "string" ? req.query.service.trim() : undefined;
|
|
161
173
|
const tagParam = typeof req.query.tag === "string" ? req.query.tag.trim() : undefined;
|
|
162
174
|
const sortParam = typeof req.query.sort === "string" ? req.query.sort.trim() || undefined : undefined;
|
|
163
175
|
const directionParam = typeof req.query.direction === "string" ? req.query.direction.trim().toLowerCase() || undefined : undefined;
|
|
164
|
-
let
|
|
176
|
+
let serviceFilter;
|
|
165
177
|
let tagFilter;
|
|
166
|
-
// Parse and validate the
|
|
167
|
-
if (
|
|
168
|
-
const result =
|
|
178
|
+
// Parse and validate the service filter if specified.
|
|
179
|
+
if (serviceParam) {
|
|
180
|
+
const result = parseServiceFilter(serviceParam);
|
|
169
181
|
if ("error" in result) {
|
|
170
182
|
res.status(400).json({ error: result.error, validTags: result.validTags });
|
|
171
183
|
return;
|
|
172
184
|
}
|
|
173
|
-
|
|
185
|
+
serviceFilter = result.filter;
|
|
174
186
|
}
|
|
175
187
|
// Parse and validate the tag filter if specified.
|
|
176
188
|
if (tagParam) {
|
|
@@ -183,7 +195,7 @@ export function setupPlaylistEndpoint(app) {
|
|
|
183
195
|
}
|
|
184
196
|
// Validate the sort field if specified.
|
|
185
197
|
if (sortParam && !VALID_SORT_FIELDS.has(sortParam)) {
|
|
186
|
-
res.status(400).json({ error: "Invalid sort field: " + sortParam + ".", validFields: [...VALID_SORT_FIELDS].
|
|
198
|
+
res.status(400).json({ error: "Invalid sort field: " + sortParam + ".", validFields: [...VALID_SORT_FIELDS].toSorted() });
|
|
187
199
|
return;
|
|
188
200
|
}
|
|
189
201
|
// Validate the sort direction if specified.
|
|
@@ -193,7 +205,7 @@ export function setupPlaylistEndpoint(app) {
|
|
|
193
205
|
}
|
|
194
206
|
const sort = sortParam;
|
|
195
207
|
const direction = directionParam;
|
|
196
|
-
const playlist = generatePlaylistContent(baseUrl,
|
|
208
|
+
const playlist = generatePlaylistContent(baseUrl, serviceFilter, tagFilter, sort, direction);
|
|
197
209
|
res.set("Content-Type", "audio/x-mpegurl");
|
|
198
210
|
res.send(playlist);
|
|
199
211
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playlist.js","sourceRoot":"","sources":["../../src/routes/playlist.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"playlist.js","sourceRoot":"","sources":["../../src/routes/playlist.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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> — 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 — 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
|
|
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>",
|
|
@@ -121,7 +121,7 @@ export function generateOverviewContent(baseUrl) {
|
|
|
121
121
|
"<li>Enter the playlist URL: <code id=\"overview-playlist-url\">" + baseUrl + "/playlist</code> ",
|
|
122
122
|
"<button class=\"btn-copy-inline\" onclick=\"copyOverviewPlaylistUrl()\" title=\"Copy URL\">Copy</button></li>",
|
|
123
123
|
"<li>Set <strong>Stream Format</strong> to <strong>HLS</strong>.</li>",
|
|
124
|
-
"<li>Optionally, go to the <a href=\"#channels\">Channels tab</a> and set the <strong>
|
|
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 ",
|
|
125
125
|
"subscribe to. This controls which channels Channels DVR sees in the playlist.</li>",
|
|
126
126
|
"<li>Your configured channels will be imported automatically.</li>",
|
|
127
127
|
"</ol>",
|
|
@@ -147,7 +147,7 @@ export function generateOverviewContent(baseUrl) {
|
|
|
147
147
|
"<h4>Direct URL Channels (~3–5 seconds)</h4>",
|
|
148
148
|
"<p>Sites where PrismCast navigates directly to a player page and video starts automatically. ",
|
|
149
149
|
"Examples: NBC, ABC, Paramount+, USA Network.</p>",
|
|
150
|
-
"<h4>Guide-Based
|
|
150
|
+
"<h4>Guide-Based Services — First Tune (~5–10 seconds)</h4>",
|
|
151
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 ",
|
|
152
152
|
"guide grid must be searched. Examples: " + providerInfo.map((p) => escapeHtml(p.label)).sort().join(", ") + ".</p>",
|
|
153
153
|
...(slowProviderLabels.length > 0 ? [
|
|
@@ -155,7 +155,7 @@ export function generateOverviewContent(baseUrl) {
|
|
|
155
155
|
" players are slow to initialize — expect 15–30 seconds for channel changes. " +
|
|
156
156
|
"This is a limitation of the web player, not PrismCast.</p>"
|
|
157
157
|
] : []),
|
|
158
|
-
"<h4>Guide-Based
|
|
158
|
+
"<h4>Guide-Based Services — Subsequent Tunes (~3–5 seconds)</h4>",
|
|
159
159
|
"<p>After the first tune, PrismCast caches channel data for <strong>" +
|
|
160
160
|
providerInfo.filter((p) => !p.noDirectTuneOptimization).map((p) => escapeHtml(p.label)).sort().join(", ") +
|
|
161
161
|
"</strong>. Subsequent tunes skip guide navigation entirely and are comparable to direct URL channels. " +
|
|
@@ -180,8 +180,8 @@ export function generateOverviewContent(baseUrl) {
|
|
|
180
180
|
"</ol>",
|
|
181
181
|
"<p>Your login credentials are saved in the browser profile and persist across restarts. You only need to authenticate once per TV provider. ",
|
|
182
182
|
"The <a href=\"#channels\">Channels tab</a> shows <strong>green and red indicators</strong> next to each channel reflecting the last tune result, ",
|
|
183
|
-
"and <strong>
|
|
184
|
-
"sessions on their end, requiring re-authentication. This is a
|
|
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 — simply click Login again to ",
|
|
185
185
|
"re-authenticate.</p>",
|
|
186
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>",
|
|
187
187
|
"</div>",
|
|
@@ -189,35 +189,35 @@ export function generateOverviewContent(baseUrl) {
|
|
|
189
189
|
"<div class=\"section\">",
|
|
190
190
|
"<h3>Working with Channels</h3>",
|
|
191
191
|
"<h4>Predefined Channels</h4>",
|
|
192
|
-
"<p>PrismCast ships with channels across multiple streaming
|
|
192
|
+
"<p>PrismCast ships with channels across multiple streaming services, maintained and updated with each release. You can disable any channels ",
|
|
193
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 — ",
|
|
194
194
|
"enable what you watch and disable the rest. You can also override any predefined channel with your own custom definition ",
|
|
195
195
|
"(see <em>Overriding Predefined Channels</em> below).</p>",
|
|
196
|
-
"<h4>
|
|
197
|
-
"<p>Some channels (Comedy Central, Fox, NBC, etc.) are available from multiple streaming
|
|
198
|
-
"channel lets you choose which service to use for that channel. Different
|
|
199
|
-
"<h4>
|
|
200
|
-
"<p>If you only subscribe to certain streaming services, use the <strong>
|
|
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 ",
|
|
201
201
|
"<a href=\"#channels\">Channels tab</a> toolbar to show only relevant channels. This filter also controls which channels appear in the playlist ",
|
|
202
202
|
"that Channels DVR imports — set it before adding the playlist source in the <a href=\"#overview\">Quick Start</a>. You can also filter ",
|
|
203
|
-
"programmatically using the <code>?
|
|
203
|
+
"programmatically using the <code>?service=</code> query parameter on the playlist URL.</p>",
|
|
204
204
|
"<h4>Bulk Operations</h4>",
|
|
205
|
-
"<p>The <strong>Set all channels to</strong> dropdown on the <a href=\"#channels\">Channels tab</a> toolbar switches every multi-
|
|
206
|
-
"to a single
|
|
207
|
-
"switching individual channels back or selecting a different
|
|
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>",
|
|
208
208
|
"<h4>User-Defined Channels</h4>",
|
|
209
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 ",
|
|
210
|
-
"multiple live channels (like a live TV
|
|
211
|
-
"the expected value depends on the
|
|
212
|
-
"section with site-specific guidance, including expected channel selector formats for known
|
|
213
|
-
"<h4>User-Defined
|
|
210
|
+
"multiple live channels (like a live TV service), the <strong>Channel Selector</strong> field tells PrismCast which channel to tune to — ",
|
|
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>",
|
|
214
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> ",
|
|
215
215
|
"includes a step-by-step wizard that guides you through creating a custom site profile — defining how to enter fullscreen, handle iframes, ",
|
|
216
|
-
"and interact with the player. You can also export your profiles as <strong>
|
|
216
|
+
"and interact with the player. You can also export your profiles as <strong>service packs</strong> to share with other PrismCast users, and ",
|
|
217
217
|
"import packs that others have created.</p>",
|
|
218
218
|
"<h4>Overriding Predefined Channels</h4>",
|
|
219
|
-
"<p>To override a predefined channel, create a user-defined channel with the same channel key. Both versions will appear in the
|
|
220
|
-
"dropdown — yours labeled <em>Custom</em> and the original with its
|
|
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 — yours labeled <em>Custom</em> and the original with its service name. You can switch between them at any time.</p>",
|
|
221
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>",
|
|
222
222
|
"</div>",
|
|
223
223
|
// Requirements.
|
|
@@ -267,7 +267,7 @@ export function generateHelpContent() {
|
|
|
267
267
|
"<p>Copy the data directory (<code>~/.prismcast</code>) or just the three JSON files listed above. To restore, place them in the data ",
|
|
268
268
|
"directory on the new machine and restart PrismCast. Docker users should ensure their container's data directory volume is backed up.</p>",
|
|
269
269
|
"<h4>What Is Not Included</h4>",
|
|
270
|
-
"<p><strong>
|
|
270
|
+
"<p><strong>Service login sessions</strong> are stored in Chrome's profile data, not in the configuration files. After migrating to a new ",
|
|
271
271
|
"machine, you will need to re-authenticate with each TV provider through the browser. The <code>health.json</code> file (channel health ",
|
|
272
272
|
"and authentication state indicators) is also not exported — it rebuilds automatically as channels are tuned.</p>",
|
|
273
273
|
"</div>",
|
|
@@ -333,14 +333,14 @@ export function generateHelpContent() {
|
|
|
333
333
|
"</tr>",
|
|
334
334
|
"<tr>",
|
|
335
335
|
"<td>Slow first tune (~5–10 seconds)</td>",
|
|
336
|
-
"<td>Guide-based
|
|
336
|
+
"<td>Guide-based services need to search their channel grid on the first tune.</td>",
|
|
337
337
|
"<td>This is normal. Subsequent tunes of the same channel are faster due to caching. Enable channel precaching in ",
|
|
338
338
|
"<a href=\"#config/settings\">Configuration</a> for faster first tunes.</td>",
|
|
339
339
|
"</tr>",
|
|
340
340
|
"<tr>",
|
|
341
341
|
"<td>\"Channel not found\" or wrong channel plays</td>",
|
|
342
|
-
"<td>The Channel Selector value does not match the
|
|
343
|
-
"<td>Check the log for available channel names. The expected format varies by
|
|
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 — some use display names, ",
|
|
344
344
|
"others use internal codes.</td>",
|
|
345
345
|
"</tr>",
|
|
346
346
|
"<tr>",
|
|
@@ -365,7 +365,7 @@ export function generateHelpContent() {
|
|
|
365
365
|
"frame rate setting.</li>",
|
|
366
366
|
"<li><strong>No closed captions.</strong> Chrome's capture API does not include caption data. Subtitles are not available in PrismCast streams.</li>",
|
|
367
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. ",
|
|
368
|
-
"Channels using native HLS streaming deliver the
|
|
368
|
+
"Channels using native HLS streaming deliver the service's original stream quality. Neither mode supports Dolby Vision or Dolby Atmos.</li>",
|
|
369
369
|
"<li><strong>Capture resolution is limited by display size.</strong> This applies to screen-captured channels only. See the Display and Resolution ",
|
|
370
370
|
"section above for details. Native HLS channels are not affected by display size.</li>",
|
|
371
371
|
"<li><strong>Chrome may drop frames after extended use.</strong> The Chrome encoder can degrade after many hours of continuous operation. PrismCast ",
|
|
@@ -403,15 +403,15 @@ export function generateApiReferenceContent() {
|
|
|
403
403
|
"<a href=\"#api-channels\"><code>POST /config/channels/import</code></a>",
|
|
404
404
|
"</div>",
|
|
405
405
|
"<div class=\"api-index-group\">",
|
|
406
|
-
"<a href=\"#api-
|
|
407
|
-
"<span class=\"api-index-desc\">Channel discovery,
|
|
408
|
-
"<a href=\"#api-
|
|
409
|
-
"<a href=\"#api-
|
|
410
|
-
"<a href=\"#api-
|
|
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
411
|
"</div>",
|
|
412
412
|
"<div class=\"api-index-group\">",
|
|
413
413
|
"<a href=\"#api-profiles\" class=\"api-index-heading\">Profiles</a>",
|
|
414
|
-
"<span class=\"api-index-desc\">Custom site profiles and
|
|
414
|
+
"<span class=\"api-index-desc\">Custom site profiles and service packs.</span>",
|
|
415
415
|
"<a href=\"#api-profiles\"><code>GET /config/profiles</code></a>",
|
|
416
416
|
"<a href=\"#api-profiles\"><code>POST /config/profiles</code></a>",
|
|
417
417
|
"<a href=\"#api-profiles\"><code>POST /config/profiles/import</code></a>",
|
|
@@ -485,13 +485,13 @@ export function generateApiReferenceContent() {
|
|
|
485
485
|
"<td class=\"endpoint\"><a href=\"/playlist\"><code>GET /playlist</code></a></td>",
|
|
486
486
|
"<td>M3U playlist of all channels in Channels DVR format. Use this URL when adding PrismCast as a custom channel source. " +
|
|
487
487
|
"Optional query parameters: " +
|
|
488
|
-
"<code>?
|
|
489
|
-
"<code>?
|
|
490
|
-
"<code>?sort=</code> overrides sort field (<code>name</code>, <code>key</code>, <code>channelNumber</code>, <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>," +
|
|
491
491
|
"<code>profile</code>, <code>stationId</code>, <code>channelSelector</code>). " +
|
|
492
492
|
"<code>?direction=</code> overrides sort direction (<code>asc</code> or <code>desc</code>). " +
|
|
493
493
|
"All parameters are optional and can be combined. " +
|
|
494
|
-
"<strong>
|
|
494
|
+
"<strong>Service filter only controls which channels appear in the playlist, not which service is used for tuning.</strong></td>",
|
|
495
495
|
"</tr>",
|
|
496
496
|
"</table>",
|
|
497
497
|
"</div>",
|
|
@@ -536,46 +536,46 @@ export function generateApiReferenceContent() {
|
|
|
536
536
|
"</tr>",
|
|
537
537
|
"</table>",
|
|
538
538
|
"</div>",
|
|
539
|
-
//
|
|
539
|
+
// Service endpoints.
|
|
540
540
|
"<div class=\"section\">",
|
|
541
|
-
"<h3 id=\"api-
|
|
542
|
-
"<p>Channel discovery,
|
|
541
|
+
"<h3 id=\"api-services\">Services</h3>",
|
|
542
|
+
"<p>Channel discovery, service selection, and filtering for multi-service channels.</p>",
|
|
543
543
|
"<table>",
|
|
544
544
|
"<tr><th style=\"width: 35%;\">Endpoint</th><th>Description</th></tr>",
|
|
545
545
|
"<tr>",
|
|
546
|
-
"<td class=\"endpoint\"><code>GET /
|
|
547
|
-
"<td>Discover all available channels for a
|
|
548
|
-
"and optional <code>affiliate</code> and <code>tier</code> fields.
|
|
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: " +
|
|
549
549
|
getProviderModuleInfo().map((p) => "<code>" + escapeHtml(p.slug) + "</code>").sort().join(", ") +
|
|
550
550
|
". Returns cached results instantly when a prior tune or discovery call has already " +
|
|
551
551
|
"enumerated the lineup. " +
|
|
552
552
|
"Add <code>?refresh=true</code> to clear caches and force a fresh discovery walk.</td>",
|
|
553
553
|
"</tr>",
|
|
554
554
|
"<tr>",
|
|
555
|
-
"<td class=\"endpoint\"><code>POST /config/
|
|
556
|
-
"<td>Update
|
|
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>",
|
|
557
557
|
"</tr>",
|
|
558
558
|
"<tr>",
|
|
559
|
-
"<td class=\"endpoint\"><code>POST /config/
|
|
560
|
-
"<td>Set enabled
|
|
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>",
|
|
561
561
|
"</tr>",
|
|
562
562
|
"<tr>",
|
|
563
|
-
"<td class=\"endpoint\"><code>POST /config/
|
|
564
|
-
"<td>Assign a
|
|
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>. " +
|
|
565
565
|
"Returns <code>{ affected, previousSelections, selections }</code></td>",
|
|
566
566
|
"</tr>",
|
|
567
567
|
"<tr>",
|
|
568
|
-
"<td class=\"endpoint\"><code>POST /config/
|
|
569
|
-
"<td>Restore previous
|
|
570
|
-
"A <code>null</code> value restores the channel to its default
|
|
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
571
|
"</tr>",
|
|
572
572
|
"</table>",
|
|
573
573
|
"</div>",
|
|
574
574
|
// Profile endpoints.
|
|
575
575
|
"<div class=\"section\">",
|
|
576
576
|
"<h3 id=\"api-profiles\">Profiles</h3>",
|
|
577
|
-
"<p>Custom site profiles and
|
|
578
|
-
"
|
|
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
579
|
"<table>",
|
|
580
580
|
"<tr><th style=\"width: 35%;\">Endpoint</th><th>Description</th></tr>",
|
|
581
581
|
"<tr>",
|
|
@@ -593,12 +593,12 @@ export function generateApiReferenceContent() {
|
|
|
593
593
|
"</tr>",
|
|
594
594
|
"<tr>",
|
|
595
595
|
"<td class=\"endpoint\"><code>POST /config/profiles/import</code></td>",
|
|
596
|
-
"<td>Import a
|
|
596
|
+
"<td>Import a service pack JSON file. Validates profiles, domains, and optional channels. " +
|
|
597
597
|
"Body: <code>{ \"data\": { ... }, \"skipChannels\": false }</code></td>",
|
|
598
598
|
"</tr>",
|
|
599
599
|
"<tr>",
|
|
600
600
|
"<td class=\"endpoint\"><code>GET /config/profiles/export</code></td>",
|
|
601
|
-
"<td>Export user profile(s) as a
|
|
601
|
+
"<td>Export user profile(s) as a service pack JSON file download. Query params: <code>?profile=key1,key2</code> (required), " +
|
|
602
602
|
"<code>&channels=1</code> (include channels), <code>&domains=0</code> (exclude domains), <code>&name=</code> (pack display name).</td>",
|
|
603
603
|
"</tr>",
|
|
604
604
|
"</table>",
|
|
@@ -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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"}
|