PrismCast v1.12.1 is here. This is the fix for the screen-capture corruption that 1.12.0 introduced, along with a round of reliability work that came out of chasing it.
First, the apology. On the 25th I said this would land by the end of that week, and it took several days longer than I promised, and I also have a real world to contend with.
The fix itself came together quickly...the time went into testing it across displays and into the surrounding work I wanted to get right so this doesn't recur across a bunch of scenarios. Thanks for your patience, and thanks to everyone for the reports and screenshots that made the problem easy to pin down.
The 1.12.0 capture corruption is fixed. If you saw the picture cut off at the right and bottom, frozen bands, or a zoomed-in frame on screen-captured channels, this release is for you. The cause was a Chrome quirk on Retina and other high-density displays: Chrome composited the capture through the window's own presentation rather than the page surface PrismCast emulates. PrismCast now emulates capture pages at the display's real pixel density and keeps the Chrome window on screen while a capture is running. One visible change comes with that: while a screen-captured channel is streaming, the Chrome window stays un-minimized on the desktop, and it minimizes again on its own when the last capture ends. That's expected, and the Help page explains it. Native HLS channels never use the window, so it stays minimized for those. If you downgraded to 1.11.1 to work around the bug, upgrade to 1.12.1 the same way you installed, or use the Upgrade button in the web interface.
PrismCast stays out of your way while it captures. Since the window now has to be visible during captures, I put work into making it unobtrusive. Capture tabs open in the background of one shared Chrome window, your own tab stays selected and is handed back whenever a tune has to bring a capture tab forward for a moment, a capture tab you click on snaps back to its capture view within about a second, and channel discovery renders its guide in a window of its own so the shared window can stay minimized. The window also keeps whatever size and placement you last gave it.
Beyond the headlines:
-
Chrome that can no longer start captures - your running recordings keep going, new tunes are refused at once instead of failing slowly, and PrismCast relaunches Chrome on its own once the last stream ends. The web interface shows when a relaunch is pending.
-
Hung-tab replacement without risking the recording - the replacement is built and tuned first while the old capture keeps running, so a replacement that fails leaves your recording exactly where it was.
-
Plex and other HDHomeRun clients follow a stream through changes - when a replaced tab comes back with different encoder settings or a native stream falls back to screen capture, the client is disconnected so it reconnects cleanly instead of stalling on a broken picture.
-
Recovery that doesn't waste time - a stream that can't be revived ends immediately instead of two minutes later, and resolution recovery no longer misfires on an ordinary adaptive quality dip. The stream detail now shows the source resolution beside the capture resolution, so you can see what the site is actually sending.
-
Clean shutdown and complete logs - Ctrl-C and a service stop shut PrismCast down gracefully, Chrome closes through its own shutdown so your sign-ins are saved, and the log file no longer loses lines at startup or shutdown.
-
BET - BET.com no longer provides a live stream, so the builtin BET channel now tunes through your television provider only.
-
Numerous fixes - steadier channel discovery, cookie-consent banners that appear after the video is already fullscreen, Pacific-feed channels keeping every provider they should, HDHomeRun discovery leaving other tuners' requests alone, and a sweep of web interface and configuration details.
As always, I really appreciate the feedback, enthusiasm, and passion around PrismCast. Almost every feature added since 1.0.0 has come from thoughtful, respectful discussion with this community.
My only ask is simple: please be kind, not demanding. PrismCast started as a project for my own needs, and I share it because I enjoy this community and wanted to give something back. Respectful feedback is always welcome; entitlement is not.
Thank you to everyone who's shared encouragement or joy in using PrismCast — it genuinely keeps this project fun to work on.
One more note for everyone's benefit: please don't repost the same questions in this thread. Many of them have already been asked and answered, and the forum's topic-only search works well. Keeping discussions focused helps everyone. Please treat the thread and each other with the same consideration you'd expect in return.
To reiterate from prior release notes:
If you've created user-defined channels that are now covered by predefined options, I recommend deleting those overrides and using the defaults. Predefined channels are what I test and maintain; overrides are entirely optional, but they do create long-term configuration debt for you as PrismCast evolves.
1.12.1 (2026-09-04)
- Improvement: PrismCast stays out of your way while it captures - capture tabs open in the background of one shared Chrome window, your own tab stays selected and is handed back whenever a tune has to bring a capture tab forward for a moment, a capture tab you click on snaps back to its capture view within about a second, and channel discovery renders its guide in a window of its own so the shared window can stay minimized. The window also keeps whatever size and placement you last gave it.
- Improvement: replacing a hung tab no longer puts the recording at risk - the replacement is built and tuned first while the old capture keeps running, so a replacement that fails leaves your recording exactly where it was.
- Fix: screen-capture recordings on Retina and other high-density displays no longer show the intermittent corruption 1.12.0 could produce - the cut-off picture, frozen bands, and zoomed bumper frames. As part of this, the Chrome window now stays on screen while any screen-capture stream is running and minimizes again when the last one ends. That is expected, and the Help page explains it; native HLS channels never use the window, so it stays minimized for those.
- Fix: the captured picture fills the frame more reliably - page elements can no longer sit on top of the video, a player's own sizing can no longer leave the picture shifted or letterboxed, and fullscreen is verified in both dimensions. Most builtin profiles no longer need the player's own fullscreen mode; Hulu Live and embedded-player sites still use it, and the Help page names the profiles that bring the Chrome window forward during a tune.
- Fix: resolution recovery no longer misfires on an ordinary adaptive quality dip - it triggers only when the picture collapses below a third of the best resolution the stream has delivered. The stream detail now shows the source resolution beside the capture resolution, so you can see what the site is actually sending.
- Fix: a Chrome that can no longer start new captures is handled gracefully - your running recordings keep going, new tunes are refused at once instead of failing slowly, a capture that fails to start is retried once before the tune gives up, and PrismCast relaunches Chrome on its own once the last stream ends. The web interface and the health endpoint show when a relaunch is pending.
- Fix: stream recovery spends less time on lost causes - a native stream that stalls no longer drops to screen capture while its recovery is still settling, a failed tab replacement on a broken Chrome no longer delays the next attempt, and a stream that cannot be revived ends immediately instead of two minutes later.
- Fix: Plex and other HDHomeRun clients no longer stall or show a broken picture when a stream changes underneath them - whether a replaced tab came back with different encoder settings, a native stream fell back to screen capture, or a native channel switched its stream parameters mid-stream, the client is disconnected so it reconnects cleanly into the new stream.
- Fix: channel discovery is steadier - a scan that comes back with only a small fraction of the saved lineup leaves the saved lineup in place, and each scan runs under its own time limit.
- Fix: BET.com no longer provides a live stream, so the builtin BET channel now tunes through your television provider only.
- Fix: web interface details across the channel table and status views - the tag filter funnel, the playlist hint icon, and the tag filter's Show None toggle respond to clicks again; every stream row's tint follows its own health color in both themes; the predefined-channel hint, the playlist hint icon, and the restart dialog's buttons read correctly in dark mode; health updates reach every channel of a service, including ones the table's current filter hides; a native stream's issue label names the current cause of its trouble; a channel hosted at a bare IP address such as 10.0.1.50 is labeled by the whole address instead of "1.50"; and the log API reports an unrecognized level filter instead of silently ignoring it.
- Fix: the log file is complete at both ends and survives a flaky disk - the earliest startup lines are written as soon as the log opens, the shutdown lines land in the file before the process exits, a crash before the log opens still leaves its last lines in the log file, a disk that briefly refuses writes no longer costs you the shutdown lines or the first minute of the next run's log, and anything logged after the logger has stopped goes straight to the file instead of being dropped. HTTP request lines report the full request time, slow requests are always logged, and console-mode request lines carry one timestamp instead of two.
- Fix: Ctrl-C and a service stop shut PrismCast down cleanly, and Chrome closes through its own shutdown so its profile - your sign-ins included - is saved properly.
- Fix: configuration edge cases - the settings page's environment-override badge shows the value actually in effect, an environment variable with an unusable value is warned about in the log every time settings load, startup enforces the same limits the settings form does (a log-size limit below 512 KB is now refused at startup as the form already refused it), a custom domain mapping for a subdomain of a builtin site is accepted, every text field of a custom profile is cleaned on save, and a startup that repairs a corrupt settings or health file reports it once instead of twice.
- Fix: a cookie-consent banner that pops up after the video is already playing fullscreen is still dismissed, and overlay handling stays active for the whole of a tune rather than a fixed window.
- Fix: a Chrome tab that opens after PrismCast has given up waiting for it is closed instead of lingering for the browser's lifetime.
- Fix: a Pacific-feed channel keeps every provider it should - a provider whose channel name merely contains "East" or "West" (Starz Encore Westerns on Sling, for example) was being mistaken for a timezone feed and dropped from the Pacific channel.
- Fix: PrismCast no longer answers HDHomeRun discovery requests meant for another tuner on your network.
- Housekeeping.