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

As I feared I'm seeing random timeouts trying to get USA, the code is just not fast enough to get the stream going before channels times out. Here's the latest logs.

This is when channels starts the job and times out, then switches recording to the backup source.

2026/02/08 11:00:00.001042 [DVR] Starting job 1770566400-155 2026 Milan Cortina Olympics on ch=[7064 6010]

2026/02/08 11:00:14.012747 [ERR] Failed to start stream on channel 7064 via M3U-Prismcast: M3U: Could not fetch playlist from localhost:5589 (Timeout): Get "http://localhost:5589/hls/usa/stream.m3u8": net/http: timeout awaiting response headers

2026/02/08 11:00:14.025616 [TNR] Opened connection to M3U-LocalChannelStreamlinks for ch6010 USA

Here's the prism log showing that it was a second too late:

[2026/02/08 11:00:15.729] [usa-q4zhaw] Streaming USA Network (keyboardDynamicMultiVideo, FFmpeg).

This should not happen when I can see the video streaming in VNC multiple seconds before channels gets it. Maybe it's Chrome on Windows, I don't know. It's definitely not because my server is not fast enough, it has plenty of horsepower.

I hope someone can fix it.

@hjd I haven't looked at the code, but often in web frameworks there's a way to flush the response headers. This would avoid timeouts on the DVR side even if the response body itself takes some time to start flowing.

Another hack sometimes used, for MPEGTS response bodies, is to send the initial byte 'G' (or a full 188-byte dummy frame)

@hjd I haven't looked at the code, but often in web frameworks there's a way to flush the response headers. This would avoid timeouts on the DVR side even if the response body itself takes some time to start flowing.

Appreciated. I'll look into incorporating that for the next release. Thanks for the pointer.

Another hack sometimes used, for MPEGTS response bodies, is to send the initial byte 'G' (or a full 188-byte dummy frame)

I'd rather keep the output as clean as possible back to CDVR, but I'll pocket this as a fallback if header flushing alone isn't enough. We default to HLS for CDVR.

On a related note, PrismCast already inserts #EXT-X-DISCONTINUITY tags in the HLS playlist when it recovers from a playback interruption (source reload, page navigation, etc.) so clients know to flush their decoder state. If there's anything specific about how CDVR handles those tags or expects timestamp resets across discontinuity boundaries, I'd appreciate the guidance.

As I feared I'm seeing random timeouts trying to get USA, the code is just not fast enough to get the stream going before channels times out. Here's the latest logs.

Your logs show you’re running an older version of PrismCast, not the current release.

I’m still not able to reproduce this behavior on my end. Without a concrete, reliable way to recreate it, there’s a limit to how much further I can help here.

As I've mentioned previously, investigating edge cases like this is on my backlog, but it isn’t a current priority.

Please don’t keep reposting the same issue in the thread. It doesn’t move things forward and makes it harder to keep the discussion productive.

Just updated to 1.2.1 via brew and I can't get the service to start. I checked all privacy permission, but everything has access. An uninstall/reinstall isn't helping.

EDIT - Full uninstall and reinstall needed to get it to run again. Not sure why brew update [email protected] brew upgrade would't let the service to start again.

Clean install of 1.2.1

No issues found in this version you don't already know.

No issues found in this version you don't already know.

Thanks! Let me know how the channels behave themselves after a bit of testing. It should be decidedly less noisy but still catching (and correcting) real stream issues.

Hi @hjd thanks again for the work. It is working spectacularly. Not sure if it got mixed in with everyone else’s posts, but wanted to know if it’s possible to codify the espn channels to be classified as “sports” on Channels DVR? I currently have them setup as favorites but for my kids it would be much simpler if it’s possible for them to be tagged as sports.

Once again THANK YOU for your work!

1 Like

You don't have to recreate it, you already have a way to work around it for those platforms that might have the issue.

But thanks, I won't bring it up again.

Hi @hjd thanks again for the work. It is working spectacularly. Not sure if it got mixed in with everyone else’s posts, but wanted to know if it’s possible to codify the espn channels to be classified as “sports” on Channels DVR? I currently have them setup as favorites but for my kids it would be much simpler if it’s possible for them to be tagged as sports.

I have no issues doing it, but I don't believe that the M3U that Channels DVR supports that: Channels Support - Add Custom Channels with M3U Playlists - keep in mind, PrismCast doesn't (and won't be) provide guide data, so only the first part of that page really applies. If there's a way to do it, let me know.

Enjoy!

1 Like

You don't have to recreate it, you already have a way to work around it for those platforms that might have the issue.

I’m happy to look at concrete workarounds.

If you’re referring to the comment by @tmm1, that guidance applies to MPEG-TS clients. PrismCast uses HLS for Channels DVR, so it isn’t applicable here.

If you have a concrete workaround you’d like to propose, I’m happy to look at it in a PR. What I’m not interested in engaging with is passive-aggressive commentary framed as “help.” If you want to me to respond and engage on issues or questions you may have here, please keep it collaborative and constructive.

Moving forward, do we have to switch to Homebrew on macOS? If not, how do you upgrade to the latest version with npm?

1 Like

I installed this on my Win 11 Channels PC got it running all ok BUT do I simply re run the"npm install -g prismcast" command in windows command prompt to "update" it as thats how i installed the forst time.
Yes I know this is Mac OS first but figured Id ask anyways for some guidance

Would be nice if that could be put on his github page Readme

It's there now for Homebrew
To update to the latest version:

brew upgrade prismcast

But not npm

I would assume (but not sure) that you first update it and then restart the service

I would assume (but not sure) that you first update it and then restart the service

Yep!

Good call on the README.

1 Like

The Fox (now called Fox One) networks can be linked to your provider at https://www.fox.com/, same as any other TVE network, like the Discovery network channels.

1 Like

The Fox (now called Fox One) networks can be linked to your provider at https://www.fox.com/, same as any other TVE network, like the Discovery network channels.

Found it. I'll poke through and see what I can do for the next update or two. :smile:

Got this running - it's a wonderful TVE replacement! (And couldn't come at a better time). Kicking the tires now.

One ease of use feature request - toggle all applicable sources to a given source.
EG - be able to move every channel with an available YouTubeTV source to that, saving you from needing to toggle 1 by 1, or export/change/import.

2 Likes

One ease of use feature request - toggle all applicable sources to a given source.
EG - be able to move every channel with an available YouTubeTV source to that, saving you from needing to toggle 1 by 1, or export/change/import.

On the backlog. Stay tuned. :smile:

Glad you're enjoying it...it's still early days for PrismCast. Curious myself to see how it evolves...

2 Likes