prismcast 1.0.12 → 1.1.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 (57) hide show
  1. package/README.md +83 -58
  2. package/dist/browser/channelSelection.d.ts +1 -1
  3. package/dist/browser/channelSelection.js +24 -8
  4. package/dist/browser/channelSelection.js.map +1 -1
  5. package/dist/browser/index.js +13 -6
  6. package/dist/browser/index.js.map +1 -1
  7. package/dist/browser/video.js +43 -26
  8. package/dist/browser/video.js.map +1 -1
  9. package/dist/channels/index.js +73 -97
  10. package/dist/channels/index.js.map +1 -1
  11. package/dist/config/profiles.d.ts +3 -0
  12. package/dist/config/profiles.js +11 -5
  13. package/dist/config/profiles.js.map +1 -1
  14. package/dist/config/userConfig.js +4 -2
  15. package/dist/config/userConfig.js.map +1 -1
  16. package/dist/routes/config.js +4 -1
  17. package/dist/routes/config.js.map +1 -1
  18. package/dist/routes/index.d.ts +1 -0
  19. package/dist/routes/index.js +3 -0
  20. package/dist/routes/index.js.map +1 -1
  21. package/dist/routes/play.d.ts +6 -0
  22. package/dist/routes/play.js +21 -0
  23. package/dist/routes/play.js.map +1 -0
  24. package/dist/routes/root.js +18 -10
  25. package/dist/routes/root.js.map +1 -1
  26. package/dist/routes/ui.js +1 -1
  27. package/dist/service/commands.js.map +1 -1
  28. package/dist/streaming/clients.js +5 -15
  29. package/dist/streaming/clients.js.map +1 -1
  30. package/dist/streaming/fmp4Segmenter.d.ts +29 -3
  31. package/dist/streaming/fmp4Segmenter.js +180 -21
  32. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  33. package/dist/streaming/hls.d.ts +16 -2
  34. package/dist/streaming/hls.js +213 -100
  35. package/dist/streaming/hls.js.map +1 -1
  36. package/dist/streaming/hlsSegments.js +4 -12
  37. package/dist/streaming/hlsSegments.js.map +1 -1
  38. package/dist/streaming/lifecycle.js +18 -18
  39. package/dist/streaming/lifecycle.js.map +1 -1
  40. package/dist/streaming/mp4Parser.d.ts +21 -0
  41. package/dist/streaming/mp4Parser.js +248 -3
  42. package/dist/streaming/mp4Parser.js.map +1 -1
  43. package/dist/streaming/mpegts.js +1 -3
  44. package/dist/streaming/mpegts.js.map +1 -1
  45. package/dist/streaming/registry.js +2 -6
  46. package/dist/streaming/registry.js.map +1 -1
  47. package/dist/streaming/setup.d.ts +3 -1
  48. package/dist/streaming/setup.js +97 -32
  49. package/dist/streaming/setup.js.map +1 -1
  50. package/dist/streaming/showInfo.js +4 -12
  51. package/dist/streaming/showInfo.js.map +1 -1
  52. package/dist/utils/ffmpeg.d.ts +5 -3
  53. package/dist/utils/ffmpeg.js +40 -6
  54. package/dist/utils/ffmpeg.js.map +1 -1
  55. package/package.json +5 -2
  56. package/prismcast.png +0 -0
  57. package/prismcast.svg +74 -0
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
  [![Version](https://img.shields.io/npm/v/prismcast?color=636382&label=PrismCast&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAwIiBoZWlnaHQ9IjEwMDAiIHZpZXdCb3g9IjAgMCAxMDAwIDEwMDAiPjxnIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Ik0zODYgMjIwYy0xOCA2LTIyIDExLTQ2IDU1bC0xMSAxOS01NSA5OS00NCA4MS0xNSAyNi05IDE3LTUgOC0zMyA2MS02NCAxMTdjLTQgOS00IDI5IDAgMzdsNCA3YzYgMTQgMjQgMjggNDEgMzEgMTAgMiA1MzIgMiA1NDAgMCAzOS0xMCA1My00NyAzMi04NmExNTE0IDE1MTQgMCAwIDAtNjgtMTEzIDU1NyA1NTcgMCAwIDAtNzMtMTRsLTM2LTYtMTctMi0xNC0yLTE0LTItMTQtMi0yMS0zYy0zNy01LTQ4IDExLTE1IDIxbDI0IDcgMzIgOSA0MSA5IDEzIDMgMTIgMiA1NiAxNGMzIDEgNCAzIDExIDE1bDMzIDU3cTI2IDM5IDEwIDUwYy02IDItMjc5IDQtMjgyIDItMy0zLTEtNDc1IDItNDc4cTQtMyA3IDJsMyA2YTU3NiA1NzYgMCAwIDEgMzkgNjNsMjkgNTBjMTYgMjggMjIgMzIgMzkgMjRxMTgtNyAxMS0yMWwtNTMtOTAtNS03LTUtOS03LTEyYy0yMC0zNi00Ny01Mi03My00NW0tMjYgMjYyYy0xIDEzOS0xIDE0MC00IDE0MGwtNCAxLTc4IDM2LTIxIDEwLTI0IDExLTc3IDM0Yy00IDAgMi0xMiAyMS00N2wxMy0yMyAxMC0xOCA0MS03OCAzOS03MSA2LTEwIDYtMTEgNy0xMyA3LTEyIDYtMTIgMTItMjEgMzAtNTZjOS0xNiA4LTE2IDktNXptMCAyMTRjMCA0NSAyIDQxLTE2IDQxLTMzIDItMTUzIDItMTUzIDBsNS0zIDE0LTYgMTYtNyA1OS0yNiAyMS05IDQwLTE4YzE0LTcgMTMtOSAxNCAyOG00MzctNDM0cS0yMyAxMC04IDMzYTM0NyAzNDcgMCAwIDEgNTYgMTE3bDMgMTAgNCAyNGMxMSA1MyA1IDExOC0xNCAxNjZxLTExIDI0IDYgMzFjMjQgMTIgNDAtMTMgNTItODZhMzgxIDM4MSAwIDAgMC0xMC0xNTRjLTEyLTQ3LTM0LTk3LTU3LTEyOHEtMTYtMTktMzItMTNtLTc4IDYzcS0yMCA3IDMgNDJhMjUwIDI1MCAwIDAgMSAzMSAyMTJjLTQgMTIgNiAyNSAyMSAyNyAxNyAxIDI3LTIwIDMyLTcyYTMyMSAzMjEgMCAwIDAtNDMtMTg2cS0yMS0zNS00NC0yMyIvPjxwYXRoIGQ9Ik02NTQgMzY3YTMzOSAzMzkgMCAwIDAtNDkgMjNsLTc5IDM3LTQyIDIwLTEzIDYtMzEgMTZjLTE2IDEwLTIgMzEgMTYgMjNsNTctMjIgMjItOCAxOC03IDgtMyAyMS05IDIwLTcgNi0zIDIyLTkgMTItNSAxOS03YzIxLTkgMjYtMTYgMTktMzJxLTctMTktMjYtMTNtMzYgMTA3LTQwIDctMTQgMi0xMyAzLTE5IDMtMzIgNi0xNSAyLTE1IDMtNTEgMTAtMTIgMmMtMTMgMi0xOCAxMC0xMSAxNSA0IDIgMjUgMyAzOSAybDMyLTJjNzctNCAxMzktNyAxNTAtOWw5LTJjMjEtMyAxOS00NC0yLTQzeiIvPjwvZz48L3N2Zz4=&style=for-the-badge)](https://www.npmjs.com/package/prismcast)
10
10
  [![Channels DVR](https://img.shields.io/badge/Channels%20DVR-Ready-636382?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQxIiBoZWlnaHQ9IjE2NSIgdmlld0JveD0iMCAwIDI0MSAxNjUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiPgo8cGF0aCBkPSJNNDYuMSAzNS4ySDcuOTAwMDJWMTQyLjVINDYuMVYzNS4yWiIgZmlsbD0iI0VEREE2RiIvPgo8cGF0aCBkPSJNNDYuMSAxNDJINy45MDAwMlYxNTYuOEg0Ni4xVjE0MloiIGZpbGw9IiM3NTkyQ0EiLz4KPHBhdGggZD0iTTg0LjEgMzUuMkg0NS45VjE0Mi41SDg0LjFWMzUuMloiIGZpbGw9IiNBNEM0NUUiLz4KPHBhdGggZD0iTTg0LjEgMTQySDQ1LjlWMTU2LjhIODQuMVYxNDJaIiBmaWxsPSIjNDg1MUEzIi8+CjxwYXRoIGQ9Ik0xMjIuMSAzNS4ySDgzLjlWMTQyLjVIMTIyLjFWMzUuMloiIGZpbGw9IiM2NUJCQzUiLz4KPHBhdGggZD0iTTEyMi4xIDE0Mkg4My45VjE1Ni44SDEyMi4xVjE0MloiIGZpbGw9IiNFNDZENjIiLz4KPHBhdGggZD0iTTE2MC4xIDM1LjJIMTIxLjlWMTQyLjVIMTYwLjFWMzUuMloiIGZpbGw9IiNDNjgzQTAiLz4KPHBhdGggZD0iTTE2MC4xIDE0MkgxMjEuOVYxNTYuOEgxNjAuMVYxNDJaIiBmaWxsPSIjNTQ0QTlFIi8+CjxwYXRoIGQ9Ik0xOTguMSAzNS4ySDE1OS45VjE0Mi41SDE5OC4xVjM1LjJaIiBmaWxsPSIjRTQ2RDYyIi8+CjxwYXRoIGQ9Ik0xOTguMSAxNDJIMTU5LjlWMTU2LjhIMTk4LjFWMTQyWiIgZmlsbD0iIzY1QkFDNCIvPgo8cGF0aCBkPSJNMjM2LjEgMzUuMkgxOTcuOVYxNDIuNUgyMzYuMVYzNS4yWiIgZmlsbD0iIzc1OTJDQSIvPgo8cGF0aCBkPSJNMjM2LjEgMTQySDE5Ny45VjE1Ni44SDIzNi4xVjE0MloiIGZpbGw9IiM2MDQyOUEiLz4KPHBhdGggZD0iTTIzNi45IDI3LjZIMTM1LjhDMTQyLjMgMjAuOCAxNTUuNiA2LjkgMTU3LjMgNUMxNTguNiAzLjUgMTU4LjIgMS45IDE1Ny4yIDAuODk5OTk3QzE1Ni4xIC0wLjEwMDAwMyAxNTQuMiAtMC41MDAwMDMgMTUzLjEgMC41OTk5OTdDMTUxLjkgMS44IDEyNy4xIDI0LjkgMTI0LjIgMjcuNkgxMTYuOUMxMTQgMjQuOSA4OS4xIDEuOCA4OCAwLjU5OTk5N0M4Ni45IC0wLjUwMDAwMyA4NSAtMC4xMDAwMDMgODMuOSAwLjg5OTk5N0M4Mi45IDEuOSA4Mi41IDMuNSA4My44IDQuOUM4NS41IDYuNyA5OC44IDIwLjcgMTA1LjMgMjcuNUg0QzEuOCAyNy41IDAgMjkuMyAwIDMxLjVWMTYwLjJDMCAxNjIuNCAxLjggMTY0LjIgNCAxNjQuMkgyMzYuOUMyMzkuMSAxNjQuMiAyNDAuOSAxNjIuNCAyNDAuOSAxNjAuMlYzMS42QzI0MC45IDI5LjQgMjM5LjEgMjcuNiAyMzYuOSAyNy42Wk0yMzIuOSAxNTYuM0g4VjM1LjZIMjMyLjlWMTU2LjNaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwIj4KPHJlY3Qgd2lkdGg9IjI0MC45IiBoZWlnaHQ9IjE2NC4zIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=&style=for-the-badge)](https://getchannels.com/)
11
11
 
12
- ## Browser-based live TV capture for [Channels DVR](https://getchannels.com).
12
+ ## Browser-based live TV capture for [Channels DVR](https://getchannels.com) and [Plex](https://plex.tv).
13
13
 
14
14
  </DIV>
15
15
  </SPAN>
@@ -64,14 +64,16 @@ If you're already using Chrome Capture for Channels and it's working well for yo
64
64
 
65
65
  ## Requirements
66
66
 
67
- - **macOS** - PrismCast is developed and tested on macOS. Linux and Windows may work but are untested.
68
- - **Node.js 22** or later
69
- - **Google Chrome** (PrismCast will try to find it automatically, or you can specify the path)
67
+ - **macOS, Linux, or Windows** - PrismCast is developed on macOS and also runs on Linux (natively or via Docker) and Windows.
68
+ - **Node.js 22** or later (not required for Docker deployment)
69
+ - **Google Chrome** (PrismCast will try to find it automatically, or you can specify the path; included in the Docker image)
70
70
  - **Channels DVR**, **Plex**, or any client that can consume HLS or MPEG-TS streams
71
71
 
72
72
  ## Installation
73
73
 
74
- The recommended approach is to install PrismCast globally and run it as a system service:
74
+ PrismCast can be installed as a Node.js package or deployed as a Docker container. For Docker, see [Docker / Container Deployment](#docker--container-deployment) below.
75
+
76
+ The recommended approach for native installation is to install PrismCast globally and run it as a system service:
75
77
 
76
78
  ```sh
77
79
  npm install -g prismcast
@@ -145,84 +147,99 @@ Configuration is stored in `~/.prismcast/config.json` and your TV provider sessi
145
147
 
146
148
  **macOS** is the primary development and testing platform. PrismCast is thoroughly tested on macOS and should work reliably there.
147
149
 
148
- **Linux and Windows** have built-in support (including service installation), but these platforms are not actively tested. If you'd like to use PrismCast on Linux or Windows, you're welcome to try it, but please understand that you may encounter issues that haven't been discovered yet. Bug reports and pull requests for these platforms are always appreciated!
150
+ **Linux** is supported both natively and via Docker. The Docker image includes everything needed to run PrismCast (Chrome, virtual display, VNC access) and is the recommended approach for Linux server deployments. Native Linux installation works with Node.js and Google Chrome installed manually.
151
+
152
+ **Windows** is supported and users have reported success running PrismCast on Windows 11. Windows is not the primary development platform, so bug reports and pull requests are always appreciated.
149
153
 
150
154
  ## Docker / Container Deployment
151
155
 
152
- > **Note:** Docker deployment is untested. The following guidance is based on the requirements of the underlying technologies (Chrome, Puppeteer) and the approach used by similar projects like [Chrome Capture for Channels](https://github.com/fancybits/chrome-capture-for-channels). Feedback and contributions welcome!
156
+ PrismCast provides a prebuilt Docker image with everything included: Google Chrome, a virtual display (Xvfb), VNC access, and a browser-based noVNC interface for managing TV provider authentication. The image is available on [Docker Hub](https://hub.docker.com/r/bnhf/prismcast).
153
157
 
154
- PrismCast can run in a Docker container, but requires some specific configuration because it needs a browser with a display.
158
+ ### Quick Start with Docker Compose
155
159
 
156
- ### Requirements
160
+ The repository includes a ready-to-use Docker Compose file. This is the recommended approach for Docker deployments.
157
161
 
158
- - **Google Chrome** (not Chromium) - PrismCast uses Chrome-specific APIs for media capture
159
- - **Virtual display** - Chrome needs a display; use Xvfb or expose VNC for remote access
160
- - **Shared memory** - Chrome requires adequate shared memory (`--shm-size=1g` recommended)
161
- - **Persistent storage** - Mount a volume for `~/.prismcast` to preserve TV provider logins across container restarts
162
+ 1. Download the compose file and environment template:
162
163
 
163
- ### Example Dockerfile
164
+ ```bash
165
+ curl -O https://raw.githubusercontent.com/hjdhjd/prismcast/main/prismcast.yaml
166
+ curl -O https://raw.githubusercontent.com/hjdhjd/prismcast/main/prismcast.env.example
167
+ ```
164
168
 
165
- ```dockerfile
166
- FROM node:22-slim
169
+ 2. Optionally, copy the environment template and customize it:
167
170
 
168
- # Install Chrome and Xvfb
169
- RUN apt-get update && apt-get install -y \
170
- wget \
171
- gnupg \
172
- xvfb \
173
- && wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - \
174
- && echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list \
175
- && apt-get update \
176
- && apt-get install -y google-chrome-stable \
177
- && rm -rf /var/lib/apt/lists/*
171
+ ```bash
172
+ cp prismcast.env.example prismcast.env
173
+ ```
178
174
 
179
- # Install PrismCast
180
- RUN npm install -g prismcast
175
+ 3. Start the container:
181
176
 
182
- # Set Chrome path
183
- ENV CHROME_BIN=/usr/bin/google-chrome-stable
177
+ ```bash
178
+ docker compose -f prismcast.yaml up -d
179
+ ```
184
180
 
185
- # Expose the web interface and HDHomeRun emulation port
186
- EXPOSE 5589 5004
181
+ 4. Open `http://localhost:5589` for the PrismCast web interface and `http://localhost:6080/vnc.html` for browser-based VNC access to Chrome.
187
182
 
188
- # Run with virtual framebuffer
189
- CMD ["xvfb-run", "--auto-servernum", "--server-args=-screen 0 1920x1080x24", "prismcast"]
190
- ```
183
+ ### Quick Start with Docker Run
191
184
 
192
- ### Running the Container
185
+ If you prefer not to use Docker Compose:
193
186
 
194
187
  ```bash
195
188
  docker run -d \
196
189
  --name prismcast \
197
190
  --shm-size=1g \
198
191
  -p 5589:5589 \
192
+ -p 5900:5900 \
193
+ -p 6080:6080 \
199
194
  -p 5004:5004 \
200
195
  -v prismcast-data:/root/.prismcast \
201
- your-prismcast-image
196
+ bnhf/prismcast:latest
202
197
  ```
203
198
 
204
- ### Authentication Considerations
199
+ ### Ports
200
+
201
+ | Port | Service | Description |
202
+ |------|---------|-------------|
203
+ | 5589 | PrismCast | Web interface and HLS/MPEG-TS streaming |
204
+ | 5900 | VNC | Direct VNC access to the Chrome browser |
205
+ | 6080 | noVNC | Browser-based VNC access (no VNC client needed) |
206
+ | 5004 | HDHomeRun | HDHomeRun emulation for Plex |
207
+
208
+ ### TV Provider Authentication
209
+
210
+ TV provider authentication requires interacting with the Chrome browser running inside the container. The container includes two built-in options:
205
211
 
206
- TV provider authentication requires interacting with the Chrome browser. Options include:
212
+ 1. **noVNC (recommended)** - Open `http://localhost:6080/vnc.html` in any browser for a web-based view of the Chrome instance. No VNC client needed. Use this to complete TV provider logins, then return to the PrismCast web interface and click "Done" on the channel.
213
+ 2. **VNC** - Connect any VNC client to `localhost:5900` for direct access. Set the `NOVNC_PASSWORD` environment variable to require a password for VNC connections.
207
214
 
208
- 1. **VNC access** - Add a VNC server to your container and expose port 5900 for remote desktop access during login
209
- 2. **Pre-authenticated volume** - Authenticate on a local machine, then copy the `~/.prismcast/chromedata` directory into your container volume
210
- 3. **X11 forwarding** - Forward the display to your local machine during initial setup
215
+ Your TV provider sessions are stored in the persistent volume and survive container restarts.
211
216
 
212
217
  ### Display Resolution
213
218
 
214
- The Xvfb resolution must match or exceed your configured quality preset:
219
+ The virtual display resolution must match or exceed your configured quality preset. The default is 1920x1080, which supports all presets up to 1080p High. Adjust `SCREEN_WIDTH` and `SCREEN_HEIGHT` if you need a different resolution.
215
220
 
216
- | Preset | Minimum Xvfb Resolution |
217
- |--------|------------------------|
221
+ | Preset | Minimum Resolution |
222
+ |--------|-------------------|
218
223
  | 480p | 854x480 |
219
224
  | 720p / 720p High | 1280x720 |
220
225
  | 1080p / 1080p High | 1920x1080 |
221
226
  | 4K | 3840x2160 |
222
227
 
223
- ### Environment Variables
228
+ ### Container Environment Variables
224
229
 
225
- PrismCast can be configured entirely via environment variables, which is ideal for containerized deployments:
230
+ The container accepts environment variables for both the virtual display and PrismCast itself. Display variables are set in the compose file's `environment:` section or via `-e` flags with `docker run`. PrismCast variables can be set the same way.
231
+
232
+ **Display and VNC:**
233
+
234
+ | Variable | Default | Description |
235
+ |----------|---------|-------------|
236
+ | `DISPLAY_NUM` | 99 | X11 display number |
237
+ | `SCREEN_WIDTH` | 1920 | Virtual display width in pixels |
238
+ | `SCREEN_HEIGHT` | 1080 | Virtual display height in pixels |
239
+ | `SCREEN_DEPTH` | 24 | Virtual display color depth |
240
+ | `NOVNC_PASSWORD` | (none) | Password for VNC/noVNC access. If unset, VNC is open without authentication. |
241
+
242
+ **PrismCast:**
226
243
 
227
244
  | Variable | Default | Description |
228
245
  |----------|---------|-------------|
@@ -242,21 +259,29 @@ PrismCast can be configured entirely via environment variables, which is ideal f
242
259
  | `HLS_IDLE_TIMEOUT` | 30000 | Idle stream timeout in milliseconds |
243
260
  | `MAX_CONCURRENT_STREAMS` | 10 | Maximum simultaneous streams |
244
261
 
245
- Example with environment variables:
262
+ ### Persistent Storage
263
+
264
+ The compose file mounts a Docker volume at `/root/.prismcast`, which stores:
265
+
266
+ - **Configuration** - `config.json` with all PrismCast settings
267
+ - **Custom channels** - `channels.json` with user-defined channel definitions
268
+ - **Chrome profile** - TV provider login sessions and cookies
269
+ - **Logs** - `prismcast.log` for troubleshooting
270
+
271
+ This volume persists across container restarts and image updates. Back up this volume to preserve your configuration and login sessions.
272
+
273
+ ### Building from Source
274
+
275
+ If you prefer to build the Docker image yourself:
246
276
 
247
277
  ```bash
248
- docker run -d \
249
- --name prismcast \
250
- --shm-size=1g \
251
- -p 5589:5589 \
252
- -p 5004:5004 \
253
- -v prismcast-data:/root/.prismcast \
254
- -e QUALITY_PRESET=1080p \
255
- -e VIDEO_BITRATE=15000000 \
256
- -e MAX_CONCURRENT_STREAMS=5 \
257
- your-prismcast-image
278
+ git clone https://github.com/hjdhjd/prismcast.git
279
+ cd prismcast
280
+ docker buildx build --platform linux/amd64 -f Dockerfile -t prismcast:local .
258
281
  ```
259
282
 
283
+ Then use `prismcast:local` as the image name in your compose file or `docker run` command.
284
+
260
285
  ## Contributing
261
286
 
262
287
  Contributions are welcome! Whether it's bug reports, feature requests, new channel definitions, or pull requests, I appreciate your interest in improving PrismCast. If you've got a streaming site that works well with PrismCast, consider submitting a pull request to add it to the preconfigured channels.
@@ -5,10 +5,10 @@ import type { Page } from "puppeteer-core";
5
5
  * tuneToChannel() after page navigation.
6
6
  *
7
7
  * The function handles:
8
+ * - Polling for channel slug image readiness before strategy dispatch
8
9
  * - Strategy dispatch based on profile.channelSelection.strategy
9
10
  * - No-op for single-channel sites (strategy "none" or no channelSelector)
10
11
  * - Logging of selection attempts and results
11
- * - Timing delays before and after selection
12
12
  * @param page - The Puppeteer page object.
13
13
  * @param profile - The resolved site profile containing channelSelection config and channelSelector slug.
14
14
  * @returns Result object with success status and optional failure reason.
@@ -122,6 +122,18 @@ async function thumbnailRowStrategy(page, channelSlug) {
122
122
  }, [channelSlug]);
123
123
  if (clickTarget) {
124
124
  await scrollAndClick(page, clickTarget);
125
+ // Poll for the video readyState to drop below 3, indicating the channel switch has started loading new content. This replaces a fixed post-click delay with
126
+ // early exit. If no video exists yet or readyState never drops (channel already selected), the timeout expires harmlessly and waitForVideoReady() handles the
127
+ // rest.
128
+ try {
129
+ await page.waitForFunction(() => {
130
+ const v = document.querySelector("video");
131
+ return !v || (v.readyState < 3);
132
+ }, { timeout: CONFIG.playback.channelSwitchDelay });
133
+ }
134
+ catch {
135
+ // Timeout — readyState never dropped. Proceed normally.
136
+ }
125
137
  return { success: true };
126
138
  }
127
139
  return { reason: "Channel thumbnail not found in page images.", success: false };
@@ -228,10 +240,10 @@ async function tileClickStrategy(page, channelSlug) {
228
240
  * tuneToChannel() after page navigation.
229
241
  *
230
242
  * The function handles:
243
+ * - Polling for channel slug image readiness before strategy dispatch
231
244
  * - Strategy dispatch based on profile.channelSelection.strategy
232
245
  * - No-op for single-channel sites (strategy "none" or no channelSelector)
233
246
  * - Logging of selection attempts and results
234
- * - Timing delays before and after selection
235
247
  * @param page - The Puppeteer page object.
236
248
  * @param profile - The resolved site profile containing channelSelection config and channelSelector slug.
237
249
  * @returns Result object with success status and optional failure reason.
@@ -242,8 +254,16 @@ export async function selectChannel(page, profile) {
242
254
  if ((channelSelection.strategy === "none") || !channelSelector) {
243
255
  return { success: true };
244
256
  }
245
- // Wait for the channel guide UI to fully render before attempting to interact with it.
246
- await delay(CONFIG.playback.channelSelectorDelay);
257
+ // Poll for the channel slug image to appear in the DOM. This replaces a fixed delay with an early-exit poll — if the guide renders quickly, we proceed
258
+ // immediately instead of waiting the full configured duration. The configured delay serves as the timeout ceiling.
259
+ try {
260
+ await page.waitForFunction((slug) => {
261
+ return Array.from(document.querySelectorAll("img")).some((img) => img.src && img.src.includes(slug));
262
+ }, { timeout: CONFIG.playback.channelSelectorDelay }, channelSelector);
263
+ }
264
+ catch {
265
+ // Timeout — the image hasn't appeared yet. Proceed anyway and let the strategy evaluate and report not-found naturally.
266
+ }
247
267
  // Dispatch to the appropriate strategy.
248
268
  let result;
249
269
  switch (channelSelection.strategy) {
@@ -261,11 +281,7 @@ export async function selectChannel(page, profile) {
261
281
  return { reason: "Unknown channel selection strategy.", success: false };
262
282
  }
263
283
  }
264
- if (result.success) {
265
- // Wait for the channel switch to complete and the new stream to stabilize.
266
- await delay(CONFIG.playback.channelSwitchDelay);
267
- }
268
- else {
284
+ if (!result.success) {
269
285
  LOG.warn("Failed to select %s from channel guide: %s", channelSelector, result.reason ?? "Unknown reason.");
270
286
  }
271
287
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"channelSelection.js","sourceRoot":"","sources":["../../src/browser/channelSelection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channelSelection.js","sourceRoot":"","sources":["../../src/browser/channelSelection.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { LOG, evaluateWithAbort, formatError } from "../utils/index.js";
2
2
  import { getAllStreams, getStreamCount } from "../streaming/registry.js";
3
3
  import { getEffectivePreset, getPresetViewport } from "../config/presets.js";
4
- import { getStream, launch } from "puppeteer-stream";
4
+ import { getExtensionPage, getStream, launch } from "puppeteer-stream";
5
5
  import { resizeAndMinimizeWindow, unminimizeWindow } from "./cdp.js";
6
6
  import { setBrowserChrome, setMaxSupportedViewport } from "./display.js";
7
7
  import { CONFIG } from "../config/index.js";
@@ -519,11 +519,18 @@ export async function getCurrentBrowser() {
519
519
  currentBrowser = await launch({ launch: launchWithCustomArgs }, options);
520
520
  // Register a handler for browser disconnection. This ensures we clean up properly if the browser crashes or is closed unexpectedly.
521
521
  currentBrowser.on("disconnected", handleBrowserDisconnect);
522
- // The streaming extension needs time to initialize after browser launch. It injects recording APIs into the browser context that puppeteer-stream uses
523
- // to capture media. Without this delay, stream capture may fail silently or produce blank output.
524
- await new Promise((resolve) => {
525
- setTimeout(resolve, CONFIG.browser.initTimeout);
526
- });
522
+ // Poll for the puppeteer-stream extension to finish initializing. The extension injects a START_RECORDING function into its options page context. We poll
523
+ // for this function's existence rather than using a fixed delay, so the browser is ready as soon as the extension loads — typically 200-500ms rather than the
524
+ // full configured timeout. Uses getExtensionPage() from puppeteer-stream to locate the extension's options page.
525
+ try {
526
+ const extensionPage = await getExtensionPage(currentBrowser);
527
+ await extensionPage.waitForFunction("typeof START_RECORDING === 'function'", { timeout: CONFIG.browser.initTimeout });
528
+ }
529
+ catch {
530
+ // If the extension page isn't found or START_RECORDING doesn't appear within the timeout, log a warning and proceed. The per-stream
531
+ // assertExtensionLoaded() in puppeteer-stream will retry before each capture attempt, so this isn't fatal.
532
+ LOG.warn("Extension did not initialize within %d ms. Streams may need additional time to start.", CONFIG.browser.initTimeout);
533
+ }
527
534
  // Detect display dimensions to determine maximum supported viewport. This must happen before we start streaming so the preset system can degrade to a
528
535
  // smaller preset if needed.
529
536
  await detectDisplayDimensions(currentBrowser);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
- import { LOG, delay, evaluateWithAbort, formatError } from "../utils/index.js";
1
+ /* Copyright(C) 2024-2026, HJD (https://github.com/hjdhjd). All rights reserved.
2
+ *
3
+ * video.ts: Video context and playback handling for PrismCast.
4
+ */
5
+ import { EvaluateAbortError, LOG, delay, evaluateWithAbort, formatError } from "../utils/index.js";
2
6
  import { CONFIG } from "../config/index.js";
3
7
  import { selectChannel } from "./channelSelection.js";
4
8
  /*
@@ -266,34 +270,48 @@ export async function findVideoContext(page, profile) {
266
270
  }
267
271
  // Wait for an iframe element to appear in the page DOM. This ensures the site has created the embedded player container.
268
272
  await page.waitForSelector("iframe", { timeout: CONFIG.streaming.videoTimeout });
269
- // Give the iframe content time to initialize. Complex embedded players (Brightcove, JW Player, etc.) often load additional resources and scripts after the
270
- // iframe element appears. Without this delay, we might find an empty iframe that hasn't yet loaded its video content.
271
- await delay(CONFIG.playback.iframeInitDelay);
272
- // Search through all frames to find one containing a video element. The page.frames() array includes the main frame and all nested iframes.
273
- const frames = page.frames();
274
- for (const frame of frames) {
275
- // Skip the main frame since we're looking for video in iframes, not the main page.
276
- if (frame === page.mainFrame()) {
277
- continue;
278
- }
279
- try {
280
- // Check if this frame contains a video element. We execute a simple query in the frame's document context.
281
- // eslint-disable-next-line no-await-in-loop
282
- const hasVideo = await evaluateWithAbort(frame, () => {
283
- return !!document.querySelector("video");
284
- });
285
- if (hasVideo) {
286
- return frame;
273
+ // Poll for a video element to appear in any iframe. Complex embedded players (Brightcove, JW Player, etc.) load additional resources and scripts after the
274
+ // iframe element appears, so the video may not be immediately available. We retry the search with brief pauses, using the configured delay as the overall
275
+ // timeout ceiling. This replaces a fixed delay with early exit — if the video appears quickly, we proceed immediately.
276
+ const deadline = Date.now() + CONFIG.playback.iframeInitDelay;
277
+ let iframeSearchComplete = false;
278
+ let lastFrameCount = 0;
279
+ while (!iframeSearchComplete && (Date.now() < deadline)) {
280
+ const pageFrames = page.frames();
281
+ lastFrameCount = pageFrames.length;
282
+ for (const frame of pageFrames) {
283
+ // Skip the main frame since we're looking for video in iframes, not the main page.
284
+ if (frame === page.mainFrame()) {
285
+ continue;
286
+ }
287
+ try {
288
+ // Check if this frame contains a video element. We use a short timeout (2 seconds) to prevent a single hanging frame from consuming the polling budget.
289
+ // eslint-disable-next-line no-await-in-loop
290
+ const hasVideo = await evaluateWithAbort(frame, () => {
291
+ return !!document.querySelector("video");
292
+ }, undefined, 2000);
293
+ if (hasVideo) {
294
+ return frame;
295
+ }
296
+ }
297
+ catch (error) {
298
+ // AbortError means stream was terminated — stop polling immediately.
299
+ if (error instanceof EvaluateAbortError) {
300
+ iframeSearchComplete = true;
301
+ break;
302
+ }
303
+ // Other errors (cross-origin, detached frame) — skip this frame and continue searching.
287
304
  }
288
305
  }
289
- catch (_error) {
290
- // Some frames may not be accessible due to cross-origin restrictions (CORS). This is expected for third-party analytics or ad iframes. We silently
291
- // skip these and continue searching. Also handles AbortError if stream is terminated during search.
306
+ // Brief pause before re-checking. 200ms intervals provide responsive polling without excessive CDP overhead.
307
+ if (!iframeSearchComplete && (Date.now() < deadline)) {
308
+ // eslint-disable-next-line no-await-in-loop
309
+ await delay(200);
292
310
  }
293
311
  }
294
312
  // If no iframe contains a video, fall back to the main page. This is a potential issue for iframe-handling profiles since we expected the video to be in an
295
313
  // iframe. Log a warning and verify the main page actually has a video element.
296
- LOG.warn("No iframe contained video element. Falling back to main page context (searched %s frames).", frames.length - 1);
314
+ LOG.warn("No iframe contained video element. Falling back to main page context (searched %s frames).", Math.max(0, lastFrameCount - 1));
297
315
  // Check if the main page actually contains a video element.
298
316
  try {
299
317
  const mainPageHasVideo = await evaluateWithAbort(page, () => {
@@ -761,12 +779,11 @@ export async function tuneToChannel(page, url, profile) {
761
779
  // through frames to find the one containing the video element.
762
780
  const context = await findVideoContext(page, profile);
763
781
  // For clickToPlay sites (typically Brightcove players), we need to click the video element to start playback. These players require user interaction to begin
764
- // playing, even with autoplay enabled.
782
+ // playing, even with autoplay enabled. No post-click delay is needed — waitForVideoReady() polls for readyState >= 3, which inherently waits for the click to
783
+ // take effect.
765
784
  if (profile.clickToPlay) {
766
785
  try {
767
786
  await page.click("video");
768
- // Wait for the click to take effect before checking ready state. The player needs time to process the click and begin loading media.
769
- await delay(CONFIG.playback.clickToPlayDelay);
770
787
  }
771
788
  catch (clickError) {
772
789
  LOG.warn("Could not click video to initiate playback: %s.", formatError(clickError));