Introducing PrismCast: Browser-based Live TV Capture for Channels DVR and Plex

I've migrated my system to a new computer, everything is up and running just fine on 1.10.1. only issue is that no matter which service is selected in the dropdown, it is opening up Spectrum in the Chrome window. That's fine if I'm only watching/recording one thing at a time, but if I have multiple things scheduled at the same time, Spectrum gives a too many streams error. For example for National Geographic, it will open the Spectrum link and not the Nat Geo link. I have logged into Nat Geo, so that's not an issue.

EDIT: I want to clarify that doesn't seem to be for all the services as ESPN will open in ESPN.com, but this opens in spectrum

1 Like

It was suggested to me that I should post here with a link to a thread I have regarding PrismCast and HBO Max. This is regarding issues I am having in getting PrismCast to recognize my authentication to HBO Max as well as failing to navigate to the linear channels. Everything worked fine when first setup but when the Mac Mini I have PrismCast installed on was moved from one location to another as a "portable" source for two separate ChannelsDVR servers (identical hardware/image), HBO Max no longer works but yet up to 7 other services work fine.

Any input or assistance would be appreciated. Thanks!

I think the 24/7 channels page for HBO Max has changed with some new feeds like "All the Laughs." The default profile probably needs to be updated.

If you need a quick fix, I would use the individual channels' URLs, such as https://play.hbomax.com/channel/watch/a903ca8a-6d5e-559b-a027-f82997397694/452e5d78-1cca-59a9-8508-21b25d813874 (HBO)

It was suggested to me that I should post here with a link to a thread I have regarding PrismCast and HBO Max. This is regarding issues I am having in getting PrismCast to recognize my authentication to HBO Max as well as failing to navigate to the linear channels. Everything worked fine when first setup but when the Mac Mini I have PrismCast installed on was moved from one location to another as a "portable" source for two separate ChannelsDVR servers (identical hardware/image), HBO Max no longer works but yet up to 7 other services work fine.

I’m aware. HBOMax has shifted their site on Monday. I’ll be addressing it in an upcoming update. Thanks for raising it.

No worries. Nice to know it's not me! LOL. Thanks!

Addressed in v1.10.2. Enjoy.

1 Like

Got it! Thanks!

Can PrismCast be installed and run comfortably on the same machine as your Channels DVR server? I'm currently using a M4 Mac Mini as my Channels DVR server.

Not in all cases -- but in yours, a definite yes.

Has anyone been able to successfully add the apple tv MLB games to prismcast? I installed fruitdeeplinks but I don't know if it will show up when the game comes on tonight. Is there another way to add the apple mlb games to prism?

I'm trying to restart the prismcast container but the log says there is another instance running. If there is an orphaned PID file, I am unable to find it. I've tried to restart the docker service but that doesn't solve the issue.

Error: another PrismCast instance is already running (PID 31). Stop it before starting a new one.
(there is no PID 31)

Thanks

Im not sure it will work for you but here is what works for mine:
# Cleans the virtual display and the PID lock so it survives a Docker restart
entrypoint: >
sh -c "rm -f /tmp/.X99-lock /tmp/.X11-unix/X99 /root/.prismcast/prismcast.pid && /usr/local/bin/docker-entrypoint.sh"

entrypoint: >
  sh -c "rm -f /tmp/.X99-lock /tmp/.X11-unix/X99 /root/.prismcast/prismcast.pid && /usr/local/bin/docker-entrypoint.sh"

I'd like to understand what's causing this in your installation, as the docker-entrypoint.sh script is already set up to handle this type of "unclean" shutdown:

# Remove stale X11 lock files from previous container runs. Without this, Xvfb refuses to start after an unclean shutdown.
rm -f /tmp/.X${DISPLAY_NUM}-lock /tmp/.X11-unix/X${DISPLAY_NUM}

im really not sure why but until i put that line in every docker resart i got an error and had to start over from scratch?

services:
  prismcast:
    # 2026.02.09
    # GitHub home for this project with setup instructions: https://github.com/hjdhjd/prismcast.
    # Docker container home for this project : https://ghcr.io/hjdhjd/prismcast.
    image: ghcr.io/hjdhjd/prismcast:${TAG:-latest}
    container_name: prismcast
    hostname: prismcast
    dns_search: ${DOMAIN:-localdomain}
    shm_size: '1gb'
    # Cleans the virtual display and the PID lock so it survives a Docker restart
    entrypoint: >
      sh -c "rm -f /tmp/.X99-lock /tmp/.X11-unix/X99 /root/.prismcast/prismcast.pid && /usr/local/bin/docker-entrypoint.sh"    
    ports:
      - ${HOST_PORT:-5589}:5589
      - ${HOST_VNC_PORT:-5900}:5900
      - ${HOST_NOVNC_PORT:-6080}:6080
      - ${HOST_HDHR_PORT:-5004}:5004
    environment:
      - DISPLAY_NUM=${DISPLAY_NUM:-99}
      - SCREEN_WIDTH=${SCREEN_WIDTH:-1920}
      - SCREEN_HEIGHT=${SCREEN_HEIGHT:-1080}
      - SCREEN_DEPTH=${SCREEN_DEPTH:-24}
      - TZ=${TZ}     
    healthcheck:
      test: ["CMD", "wget", "-q", "--spider", "http://localhost:5589/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 30s
    volumes:
      - prismcast-data:/root/.prismcast
    restart: unless-stopped
volumes:
  prismcast-data:

TAG=latest
DOMAIN=localdomain
HOST_PORT=5589
HOST_VNC_PORT=5900
HOST_NOVNC_PORT=6080
HOST_HDHR_PORT=5004
DISPLAY_NUM=99
SCREEN_WIDTH=1920
SCREEN_HEIGHT=1440
SCREEN_DEPTH=24
CDVR_STARTING_CHANNEL=12000
TZ=America/New_York
PCAST_SERVER=192.168.1.248
PCAST_PORT=5589

it is docker desktop for windows and happened on both computers i use for servers if that makes a difference?

OK, I'll check this out when I get back to home base. The startup script is written to handle this exact scenario, so I'll see if I can recreate a situation where it will fail.

@gfhartzell My Timberwolves are getting shown the door, so I decided to try this now. I did a stack start, followed by a dirty restart -- and it worked fine. Any chance you can get me logs showing this failing without your redundant delete of the lock file?

Starting PrismCast with noVNC support...
  Display: :99
  Screen: 1920x1080x24
  VNC Port: 5900
  noVNC Port: 6080
  PrismCast Port: 5589
  Data Directory: /root/.prismcast
  Intel GPU: /dev/dri/renderD128 present (LIBVA_DRIVER_NAME=iHD)
Starting Xvfb...
screen 0 shmid 0
WARNING: Kernel has no file descriptor comparison support: Operation not permitted
Xvfb started successfully (DRI3: -vfbdevice /dev/dri/renderD128).
Starting x11vnc...
Xlib:  extension "DPMS" missing on display ":99".
The VNC desktop is:      prismcast:0

0
x11vnc started successfully.
Starting noVNC...
Warning: could not find self.pem
Using installed websockify at /usr/bin/websockify
Starting webserver and WebSockets proxy on port 6080
WebSocket server settings:
  - Listen on :6080
  - Web server. Web root: /usr/share/novnc
  - No SSL/TLS support (no cert file)
  - proxying from :6080 to localhost:5900
noVNC started successfully.
==============================================
  noVNC available at: http://localhost:6080/vnc.html
  PrismCast UI at:    http://localhost:5589
==============================================
Starting PrismCast...
Navigate to this URL:
    http://prismcast:6080/vnc.html?host=prismcast&port=6080
Press Ctrl-C to exit
[2026/05/15 08:33:49.462 PM] Starting PrismCast v1.10.1 with configuration:
[2026/05/15 08:33:49.462 PM]   Configuration file: /root/.prismcast/config.json
[2026/05/15 08:33:49.462 PM]   Chrome profile: /root/.prismcast/chromedata
[2026/05/15 08:33:49.462 PM]   Server port: 5589
[2026/05/15 08:33:49.462 PM]   Quality preset: 720p-high (1280×720)
[2026/05/15 08:33:49.462 PM]   Capture codecs: h264, hevc
[2026/05/15 08:33:49.462 PM]   Video bitrate: 12000000
[2026/05/15 08:33:49.462 PM]   Max retries: 4
[2026/05/15 08:33:49.462 PM]   Max concurrent streams: 10
[2026/05/15 08:33:49.462 PM]   Circuit breaker threshold: 10 failures in 5 minutes
[2026/05/15 08:33:49.462 PM]   Chrome executable: /usr/local/bin/chrome-no-sandbox
[2026/05/15 08:33:49.462 PM]   HLS segment duration: 2s, max segments: 10
[2026/05/15 08:33:49.462 PM]   HDHomeRun emulation: enabled (port 5004)
[2026/05/15 08:33:49.482 PM] Using FFmpeg at: /usr/lib/node_modules/prismcast/node_modules/ffmpeg-for-homebridge/ffmpeg
[2026/05/15 08:33:49.502 PM] Loaded 1384 channels (214 user, 1170 predefined).
[2026/05/15 08:33:49.503 PM] Loaded health state for 2 channels and 2 domains.
[2026/05/15 08:33:50.653 PM] Chrome ready: Chrome/148.0.7778.96 (GPU: Mesa Intel(R) Graphics (ADL-N)).
[2026/05/15 08:33:53.918 PM] Capture system verified successfully.
[2026/05/15 08:33:54.051 PM] PrismCast is now listening on 0.0.0.0:5589.
[2026/05/15 08:33:54.051 PM] HDHomeRun emulation is now listening on 0.0.0.0:5004 (DeviceID: 2A87050E).
[2026/05/15 08:33:54.180 PM] Update available: v1.10.2 (current: v1.10.1).
Shutting down...
[2026/05/15 08:34:21.046 PM] Shutting down.
Terminating WebSockets proxy (37)
caught signal: 15
Starting PrismCast with noVNC support...
  Display: :99
  Screen: 1920x1080x24
  VNC Port: 5900
  noVNC Port: 6080
  PrismCast Port: 5589
  Data Directory: /root/.prismcast
  Intel GPU: /dev/dri/renderD128 present (LIBVA_DRIVER_NAME=iHD)
Starting Xvfb...
screen 0 shmid 0
WARNING: Kernel has no file descriptor comparison support: Operation not permitted
Xvfb started successfully (DRI3: -vfbdevice /dev/dri/renderD128).
Starting x11vnc...
Xlib:  extension "DPMS" missing on display ":99".
The VNC desktop is:      prismcast:0

0
x11vnc started successfully.
Starting noVNC...
Warning: could not find self.pem
Using installed websockify at /usr/bin/websockify
Starting webserver and WebSockets proxy on port 6080
WebSocket server settings:
  - Listen on :6080
  - Web server. Web root: /usr/share/novnc
  - No SSL/TLS support (no cert file)
  - proxying from :6080 to localhost:5900
noVNC started successfully.
==============================================
  noVNC available at: http://localhost:6080/vnc.html
  PrismCast UI at:    http://localhost:5589
==============================================
Starting PrismCast...
Navigate to this URL:
    http://prismcast:6080/vnc.html?host=prismcast&port=6080
Press Ctrl-C to exit
[2026/05/15 08:34:25.998 PM] Starting PrismCast v1.10.1 with configuration:
[2026/05/15 08:34:25.998 PM]   Configuration file: /root/.prismcast/config.json
[2026/05/15 08:34:25.998 PM]   Chrome profile: /root/.prismcast/chromedata
[2026/05/15 08:34:25.998 PM]   Server port: 5589
[2026/05/15 08:34:25.998 PM]   Quality preset: 720p-high (1280×720)
[2026/05/15 08:34:25.998 PM]   Capture codecs: h264, hevc
[2026/05/15 08:34:25.998 PM]   Video bitrate: 12000000
[2026/05/15 08:34:25.998 PM]   Max retries: 4
[2026/05/15 08:34:25.998 PM]   Max concurrent streams: 10
[2026/05/15 08:34:25.998 PM]   Circuit breaker threshold: 10 failures in 5 minutes
[2026/05/15 08:34:25.998 PM]   Chrome executable: /usr/local/bin/chrome-no-sandbox
[2026/05/15 08:34:25.998 PM]   HLS segment duration: 2s, max segments: 10
[2026/05/15 08:34:25.998 PM]   HDHomeRun emulation: enabled (port 5004)
[2026/05/15 08:34:26.002 PM] Using FFmpeg at: /usr/lib/node_modules/prismcast/node_modules/ffmpeg-for-homebridge/ffmpeg
[2026/05/15 08:34:26.023 PM] Loaded 1384 channels (214 user, 1170 predefined).
[2026/05/15 08:34:26.024 PM] Loaded health state for 2 channels and 2 domains.
[2026/05/15 08:34:26.485 PM] Chrome ready: Chrome/148.0.7778.96 (GPU: Mesa Intel(R) Graphics (ADL-N)).
[2026/05/15 08:34:29.695 PM] Capture system verified successfully.
[2026/05/15 08:34:29.832 PM] PrismCast is now listening on 0.0.0.0:5589.
[2026/05/15 08:34:29.832 PM] HDHomeRun emulation is now listening on 0.0.0.0:5004 (DeviceID: 2A87050E).
[2026/05/15 08:34:29.901 PM] Update available: v1.10.2 (current: v1.10.1).

Thank you. I'll look into it. I have a good background in Linux but I know just enough about docker to install, monitor and update. I haven't done anything with entrypoints.

Thanks,