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

I'm trying to get this working on Windows 11. First I tried via Docker, and that just was frustration on frustration. So I installed node.js and set it up via that. Next step is to install the server, but I get this error message:

C:\Windows\System32>prismcast service install
Installing PrismCast service...

Error: Failed to install service.
Command failed: schtasks /Create /XML C:\Users\xxxx.prismcast\prismcast-task.xml /TN PrismCast /F
ERROR: The task XML is malformed.
(1,40)::ERROR: unable to switch the encoding

I was able to locate and view prismcast-task.xml, but don't know what the exact issue is with the xml that would make it appear to be malformed.

Just to see if everything works Prismcast can be run as a console, temporarily.

prismcast -c (to run in console mode)

EDIT - Actually the channels do tune when I click through Channels. However, the below does show up when I click the "verify" link within Prismcast. I'm not sure why I am getting different results when clicking through the verify vs. tuning through Channels (which is using Prismcast). So hopefully this is much ado about nothing.....

Curious if others are having the same issue I am. I have YTTV and login to Disney.com within Prismcast. I don't use these channels much, but when going through and "re-validating" all my channels this morning, noticed that all Disney channels (Disney, Jr, DXD) are bringing up the webportal, but the video doesn't auto launch and you have to click the "play" triangle within the video window to start the video.

Like I said, no major loss for me, though I am worried that Disney may port this over to ESPN eventually which would then be a major issue since I rely on Prismcast for all ESPN content now. Or if there's a setting to address this within Prismcast, would love to pre-emptively solve this before it hits ESPN.

Thanks.

For Disney, I just had YTTV set as my provider in Prismcast but when I go into Prismcast and open the provider dropdown, my only other option is DisneyNOW, not Disney+ or Disney.com.

Have never used DisneyNow so went thru setup, changed providers in Prismcast to DisneyNOW and all three channels worked as expected when tuning from the Channels guide.

I cant for the life of me figure out why i cant navigate to the UI. keep getting site cant be reached.

installed latest via windows docker desktop on win11. portainer also running.

nothing unusual in the log that i can see

2026-05-03 11:24:13.461 | Starting PrismCast with noVNC support...
2026-05-03 11:24:13.461 |   Display: :99
2026-05-03 11:24:13.461 |   Screen: 1920x1080x24
2026-05-03 11:24:13.461 |   VNC Port: 5900
2026-05-03 11:24:13.461 |   noVNC Port: 6080
2026-05-03 11:24:13.461 |   PrismCast Port: 5589
2026-05-03 11:24:13.461 |   Data Directory: /root/.prismcast
2026-05-03 11:24:13.461 |   Intel GPU: no DRI device found, using software rendering
2026-05-03 11:24:13.462 | Starting Xvfb...
2026-05-03 11:24:13.466 | screen 0 shmid 0
2026-05-03 11:24:15.463 | Xvfb started successfully (DRI3: disabled).
2026-05-03 11:24:15.463 | Starting x11vnc...
2026-05-03 11:24:15.485 | Xlib:  extension "DPMS" missing on display ":99".
2026-05-03 11:24:15.498 | 
2026-05-03 11:24:15.498 | The VNC desktop is:      e93dcc05875e:0
2026-05-03 11:24:15.498 | PORT=5900
2026-05-03 11:24:16.464 | x11vnc started successfully.
2026-05-03 11:24:16.464 | Starting noVNC...
2026-05-03 11:24:16.470 | Warning: could not find self.pem
2026-05-03 11:24:16.471 | Using installed websockify at /usr/bin/websockify
2026-05-03 11:24:16.472 | Starting webserver and WebSockets proxy on port 6080
2026-05-03 11:24:16.546 | WebSocket server settings:
2026-05-03 11:24:16.546 |   - Listen on :6080
2026-05-03 11:24:16.546 |   - Web server. Web root: /usr/share/novnc
2026-05-03 11:24:16.546 |   - No SSL/TLS support (no cert file)
2026-05-03 11:24:16.546 |   - proxying from :6080 to localhost:5900
2026-05-03 11:24:17.466 | noVNC started successfully.
2026-05-03 11:24:17.466 | 
2026-05-03 11:24:17.466 | ==============================================
2026-05-03 11:24:17.466 |   noVNC available at: http://localhost:6080/vnc.html
2026-05-03 11:24:17.466 |   PrismCast UI at:    http://localhost:5589
2026-05-03 11:24:17.466 | ==============================================
2026-05-03 11:24:17.466 | 
2026-05-03 11:24:17.466 | Starting PrismCast...
2026-05-03 11:24:17.476 | 
2026-05-03 11:24:17.476 | 
2026-05-03 11:24:17.476 | Navigate to this URL:
2026-05-03 11:24:17.476 | 
2026-05-03 11:24:17.476 |     http://e93dcc05875e:6080/vnc.html?host=e93dcc05875e&port=6080
2026-05-03 11:24:17.476 | 
2026-05-03 11:24:17.476 | Press Ctrl-C to exit
2026-05-03 11:24:17.476 | 
2026-05-03 11:24:17.476 | 
2026-05-03 11:24:18.969 | [2026/05/03 03:24:17.716 PM] Starting PrismCast v1.9.0 with configuration:
2026-05-03 11:24:18.969 | [2026/05/03 03:24:17.716 PM]   Configuration file: /root/.prismcast/config.json
2026-05-03 11:24:18.969 | [2026/05/03 03:24:17.716 PM]   Chrome profile: /root/.prismcast/chromedata
2026-05-03 11:24:18.969 | [2026/05/03 03:24:17.716 PM]   Server port: 5589
2026-05-03 11:24:18.969 | [2026/05/03 03:24:17.716 PM]   Quality preset: 720p-high (1280×720)
2026-05-03 11:24:18.969 | [2026/05/03 03:24:17.716 PM]   Capture codecs: h264, hevc
2026-05-03 11:24:18.969 | [2026/05/03 03:24:17.716 PM]   Video bitrate: 12000000
2026-05-03 11:24:18.969 | [2026/05/03 03:24:17.716 PM]   Max retries: 4
2026-05-03 11:24:18.969 | [2026/05/03 03:24:17.716 PM]   Max concurrent streams: 10
2026-05-03 11:24:18.969 | [2026/05/03 03:24:17.716 PM]   Circuit breaker threshold: 10 failures in 5 minutes
2026-05-03 11:24:18.969 | [2026/05/03 03:24:17.716 PM]   Chrome executable: /usr/local/bin/chrome-no-sandbox
2026-05-03 11:24:18.969 | [2026/05/03 03:24:17.716 PM]   HLS segment duration: 2s, max segments: 10
2026-05-03 11:24:18.969 | [2026/05/03 03:24:17.716 PM]   HDHomeRun emulation: enabled (port 5004)
2026-05-03 11:24:18.969 | [2026/05/03 03:24:17.740 PM] Using FFmpeg at: /usr/lib/node_modules/prismcast/node_modules/ffmpeg-for-homebridge/ffmpeg
2026-05-03 11:24:18.969 | [2026/05/03 03:24:17.747 PM] Loaded 1170 channels.
2026-05-03 11:24:19.969 | [2026/05/03 03:24:19.299 PM] Chrome ready: Chrome/147.0.7727.101 (GPU: llvmpipe (LLVM 19.1.7 256 bits)).
2026-05-03 11:24:21.969 | [2026/05/03 03:24:20.901 PM] Capture system verified successfully.
2026-05-03 11:24:21.969 | [2026/05/03 03:24:21.020 PM] Generated HDHomeRun DeviceID: 52D66A0A.
2026-05-03 11:24:21.969 | [2026/05/03 03:24:21.021 PM] PrismCast is now listening on 0.0.0.0:5589.
2026-05-03 11:24:21.969 | [2026/05/03 03:24:21.022 PM] Saved configuration to /root/.prismcast/config.json.
2026-05-03 11:24:21.969 | [2026/05/03 03:24:21.022 PM] HDHomeRun emulation is now listening on 0.0.0.0:5004 (DeviceID: 52D66A0A).

That's probably a result of trying to run it using the Docker Desktop UI. A better choice would be to use Portainer, and create a stack using the recommended Docker Compose (there's a special section in the stack editor to override any of the default env vars too) -- which can be found here:

Having said the above, on Windows, installing PrismCast natively is a better choice than using Docker.

i guess ill try native, no issues with Fastchanels in docker desktop

im new to docker, so im learning as i go.

any tips on installing native? i know its designed for mac.

Very different animals. PrismCast requires significant resources. You can certainly try it with Docker, but Docker Desktop has no support for GPU acceleration.

There are fewer issues now with a native installation. You can start by running it from the command line, and deal with installing it as a service later if you like.

installed node.js, and prismcast via NPM.

manual start works, server ui accessable. keeps a shell window active.

service install bombing out.

Error: Failed to install service.
Command failed: schtasks /Create /XML C:\Users\Me\.prismcast\prismcast-task.xml /TN PrismCast /F
ERROR: The task XML is malformed.
(1,40)::ERROR: unable to switch the encoding

I need help with GPU passthrough.
Using docker compose on Unraid, I have GPU passed through. Chrome (in prismcast) reports that video decode is hardware but video encode is software. Intel i3-12100. I am seeing GPU activity but still high CPU use. Interestingly, I am not able to enable/disable HEVC, H264 in prismcast cast settings, they are grayed out.
In prismcast config tab I have a warning: "Some settings are overridden by environment variables and cannot be changed through this interface. To modify these settings, update your environment variables and restart the server. "
This appears to be the chrome path and the capture mode. I do not have a chrome path listed in my compose file or ENV file.
Any thoughts would be appreciated!

That's the expected report from Chrome.

Since Chrome is part of the the container build there's no need to ever adjust where it can be found.

GPU acceleration helps with the decoding, but this is still a container that requires significant resources to run.

Thank you very much!

Do you have any idea about why I can't enable/disable HEVC, H264 ?

I think I just figured it out. In docker, we are only able to use hardware decode. For encode, we only use software so the settings do not apply.

1 Like

Is there a way to use the HDHR emulation in software besides Plex? If so, how do you get other software (which can see physical HDHR devices just fine) to see the emulated device? So far my attempts (with NextPVR and SageTV) have not been successful. Are there some configuration-steps that need to be taken, or is it just not possible?

Lois, I brought the tuners into Sage by way of Channels DVR. So Channels DVR becomes my tuner pool that is shared between Channels and Sage. It takes a little fooling around in SageTV (with OpenDCT), but after you do it once it gets a lot easier. If you want some more instructions on this, please hit me up in the Sage forum.

1 Like

So, I tried setting up Fubo, using the @cmlittle77 guide. I get the same "video setup not permitted error" for ESPN channels. Which, unfortunately, are the main channels I was hoping to use Prismcast for. Other channels, such as Hallmark, work fine. If I click on the channel verify button in Prismcast, it opens the browser window and plays ESPN, with no issue. If I paste the edited channel link into the sandboxed Chrome browser session, ESPN plays without issue. If I try tune to ESPN using Channels, then I get the "not permitted" error. Prismcast is running on a Windows 11 PC, and I verified the monitor is HDCP 2.2 capable, and I used a new HDMI cable that is HDCP 2.2 and 2.3 capable. At a loss as to why it will play when Prismcast verifies the channel or when I paste the link, but not when Channels calls to Prismcast to tune ESPN?

Also, I had Prismcast working well with Hulu Live, but recently change over to Fubo to be able to watch my regional sports provider for baseball, which Fubo carries. I guess if Fubo is a no go, then I'll drop them for DirecTV or Spectrum.

1 Like

Covered above...

and above...

and above...

and...

I have the same issue with ESPN channels on Fubo. All other channels I have tried with Prismcast works.

Can you effectively run PrismCast on a 16 GB Raspberry Pi 5?

If so, I have a few questions:

  • Do you need to boot from an SSD or will the SD card work fine?
  • Is hardware encoding/decoding supported?
  • Would a native or docker based installation work best?