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

I wanted to share a bit of an experiment I've been working on called PrismCast — a streaming server that captures live video from web-based TV players and delivers it as HLS streams for Channels DVR.

PrismCast was directly inspired by Chrome Capture for Channels, and I'm grateful to the Channels DVR team for creating the foundation that made this project possible, and hope the community enjoys this contribution.

Why PrismCast?

  • Native HLS output — Serves fMP4/HLS streams directly, which Channels DVR tends to handle better than MPEG-TS.
  • Runs as a service — Designed to be installed as a system service that starts automatically at login. One command to install, runs in the background.
  • Real-time web dashboard — Monitor active streams with live health status, duration, and memory usage. When recording, it even shows the name of the show
    being recorded.
  • Channel management UI — Add, edit, and delete custom channels directly in the browser. No config files to edit.
  • Intelligent recovery — Issue-aware recovery that chooses the right fix for different problems (buffering gets different treatment than paused playback).
  • Site profile system — Data-driven configuration makes it easy to add support for new streaming sites.
  • Quality presets — Choose from 480p to 4K with automatic adaptation to your display.
  • Live log viewer — Stream server logs in real-time for easy troubleshooting.

Getting Started

  npm install -g prismcast
  prismcast service install (to install and start the PrismCast service)
  ...or...
  prismcast -c (to run in console mode)

Then open http://localhost:5589 in your browser. To add to Channels DVR:

  1. Go to Settings → Custom Channels → Add Source
  2. Select M3U Playlist
  3. Enter: http://:5589/playlist
  4. Set Stream Format to HLS

PrismCast comes with most major US television networks preconfigured. Just authenticate with your TV provider and you're ready to go.

Requirements

  • macOS (Linux/Windows may work but are untested)
  • Node.js 22 or later
  • Google Chrome

Links

Feedback, bug reports, and contributions are welcome! If you've got a streaming site that works well with PrismCast, consider submitting a PR to add it to the preconfigured channels.

3 Likes

does not appear to work in docker desktop for windows.
cannot access the webpage

I installed the docker Node.js, but I see they have a windows installer. I may try that later, but I'm going to start from scratch with docker first since I can't seem to get olivetin to work either. right now it's just dd4w, portainer, ah4c.

Gonna need an easier way to install as a docker container (ie. Docker-compose.yml file). I use portainer to watch my containers so yeah.

Seems promising as a potential future TVE standby replacement (and may be quite useful now for the non-TVE channels)

Assuming it auto authenticates when the network tokens expire (like CDVR TVE).

PrismCast is macOS-first, as the documentation notes.

There are hooks for Linux and Windows, but they’re untested and I’m not planning to take on validation/support for those platforms right now. If someone wants to run it there and send PRs to make those paths solid, I’ll review them.

Same for Docker/containers: there’s some notional support, but it isn’t tested and I’m not actively developing for container deployments.

I know Channels DVR setups vary a lot. This project is intentionally macOS-first, with room for the community to extend it to other environments if there’s interest.

Curious what you're running it on, how many max simultaneous streams you've had going and what the resource usage looks like on your device. You using ffmpeg in your setup?