Pushed an update this morning to bnhf/prismcast:latest (aka bnhf/prismcast:2026.01.26) that brings the docker version to v1.0.8.
This is exactly the type of low end system I was warning against running this project on. It's not just that you will have issues with this container, but performance problems could spillover to anything else you're running on this PC. Channels DVR, other Docker projects, etc.
Understood. Was testing more out of curiosity (I like to tinker). I've been slowly moving everything off my Synology NAS (except storage) so trying to see what ultimately I want to have setup. I have an Intel NUC (i7-1165G7) as my desktop PC but considering ordering a Ryzen 7 7840HS Mini PC so I can do AV1 hardware encoding. If I do pull the trigger, then I would move the i7 to be a Linux box with Channels and all my dockers to it.
Very nice solution, I'll be keeping an eye on it and see how this progresses over time.
Tried on Win 11 server.
It actually worked, sort of, but I will abandon for now.
Here's how it went generally speaking, no details with logs:
With the help of CoPilot along the way, I installed the nodejs etc and did the steps.
The only problem along the way was a message about "pkill" which is not part of windows,
this is part of the Prismcast service install I think which and was a problem so I set it up manually.
Lo and behold in Chrome the 67 channels showed up, I thought it would be all my channels.
I did the auth with my kox account on one of the channels A&E.
Later I had to auth again channel by channel as I tried each channel within Channels.
I had added a Source in Channels CoxP
and that brought in 67 channels, this was disappointing as I have more that than.
Most of them played, kinda rough and slow, as expected with this kind of Streamlink thing.
HOWEVER, even tho the NBC ch itself loaded and played, none of the other NBC channels would auth.
Back on Chrome it kept saying Chose a tv provider, then gave about 3 seconds to fine my provider which was not enough time, but I did get to my provider a few times and entered credentials but still no Auth.
Like for instance the golf channel, which is a problem for me, I could not get it or SciFi, or USA etc.to auth.
Lastly, i stopped and restarted Channels to see if that would help and it did not,
Channels lost it's connection to the localhost:5589/playlist in the Source which now shows 0 channels.
I tried to get that connection re-established but did not succeed and stopped.
The manual service startup thing I did apparently was not done right.
With only the 67 built in channels and the trouble with the service auto start and the failure with NBC owned Ch it's not worth it at this point.
It is very interesting however and actually pretty easy,
no Containers etc etc, just follow the steps (along with CoPilot).
Pull up the channels tab in the PrismCast webUI, find the relevant channel and click "login"...PrismCast will pull it up in Chrome and give you 15 minutes to login so you can save your credentials.
Glad to hear it at least somewhat works in the Windows world.
PrismCast joins the Project One-Click family of Actions. Installs in seconds, ready to use in minutes!:
Use the defaults, or set your own host system ports and CDVR starting channel number:
Or from the new Project WebUI+ dropdowns:
I intend to use PrismCast once things stabilize with running under Windows.
However, I do want to put in a request while things are still in flux.
My hearing isn't too good, and I can't watch most programs without Captions. PLEASE, PLEASE include these. If closed captions are not available, please include a per channel option to show captions and make them part of the visible recording. Having this will make me very happy. Thanks for all the work you have done.
Thanks for reply, here's a little more infor for those trying on WIndows.
I now cannot get the PrismCast tab (http://localhost:5589/) to even load up in Chrome, now I get this
This site cannot be reached localhost refused to connect
.
The first channel I did, A&E, in the PrismCast channels tab worked fine.
I tried clicking on others as i wasn't clear whether clicking just one would do all.
None of the other clicks on "login" did anything.
By the way, my comment about other NBC owned channels not authorizing like Golf, SciFy, etc...
those channels are now split off to Versant or somesuch, but still Cox should auth.
As I tried to watch some of the other channels in my new Channels DVR Source
It would switch me to the PrismCast tab and show the channel and show a Link to TV Provider button,
Clicking that button would show a short group of Providers, mine not in that group,
clicking to show more providers (the long list) gave me about 2 seconds to scroll down and find it, not enough time, and on the few instances where i did manage to click on Cox, it never did auth.
And also now, back in Channels DVR and trying to add the new Source again, it says
failed to load m3u: Get "http://localhost:5589/playlist": dial tcp [::1]:5589: connectex: No connection could be made because the target machine actively refused it.
Hey TV-Ken.
Here's what I do: Headphones. I hate reading Captions.
I tried using Bluetooth headphones, they worked but I never was satisfied with that, huge earmuffs,
plus I need 2, one for wife. Transmitting to Two is a problem for Bluetooth, and volume was not great.
.
So, I use tv's Optical Out, to an adapter that outputs analog red/white audio.($10 Walmart)
I then use that as input to the old audio/video transmitter-receiver boxes from yesteryear i had laying around
This transmits the audio to the receiver box under the sofa, that then plugs into a $25 mini amp with 4 outputs.
Now now wife and I have wired headphones of your choice, and the mini-amp has a volume control for each output.
A little convoluted but I had all these pieces adapters etc in my box of "stuff".
Works great.
Tried using Project On-Click to install this, but dvr box does not allow typing. When I click on it, it only shows a second dropdown choice. I did do the clear cached images and files tip you posted in the other topic.
So are you saying that neither of the dropdown choices are correct for your servers? Is this using the "classic" dashboard or WebUI+? Not having the correct DVRs defined in your env vars is something you should definitely fix.
Either way, that's defined by your OliveTin env vars. If you have a single DVR defined then you'll have a field that allows data entry, with that server as the default. If you've defined multiple DVRs then it's a dropdown.
Feel free to post your current env vars if you have questions (might require a redaction or two)...
It's on the "classic" dashboard. If I use any of the other buttons, that I don't already have installed, they prepopulate correctly with my dvr.
Right on -- I see the issue now. I'm building a new container as I write this, which should be available to pull in about 15 minutes. Thanks for reporting this!
EDIT: Re-pull and redeploy
That's fixed, thanks. Now I get this error;
exit status 1
jq: error (at :0): Cannot index string with string "Name"
JSON response from http://192.168.88.240:9000/api/stacks/create/standalone/string?endpointId=:
{
"message": "Invalid JWT token",
"details": "Unauthorized"
}
false
Let's move this discussion over to the Project One-Click thread. That error indicates a problem with your env vars, so if you could post an OliveTin Post-Install Healthcheck in that thread, we'll get it sorted out. Needed redactions are handled automatically with the healthcheck output.
Thanks for adding this...when you're ready with the PR for Docker/containers, I look forward to incorporating it.
Any other observations from your experience?
No problem, I'll submit a PR as soon as I'm confident we have a conatiner that functions in multiple setups.
If someone is not interested in using any of the standard channels you've included, is it possible to use an independent M3U file, rather than the in-built playlist -- like what we've been using with cc4c or ch4c?
For example I have premium Sling channels, which is primarily what I want to use. It's a one-time login, and then all the channels are good to go. When I went from testing cc4c to ch4c, a couple of quick finds and replaces was all that was needed to move the "text" M3U from one to the other.
Is there anyway to craft a URL, for use in an M3U, that doesn't require the channel to already be setup through the PrismCast interface? Or if not, is that something you'd be willing to add?
See the Configuration tab in the PrismCast UI - under backup. You can save/restore your custom channels. Importing M3Us into PrismCast should be straightforward as well...and not quite what you want, but you can save/restore custom channels. Internally, it's all a JSON anyway. I think that's a useful future feature potentially...but ultimately this is a one-time exercise for most users, no?
The ability to tune a bespoke channel that's not preconfigured...doable, but from an end user perspective it can easily become a maintenance mess. What's the use case where that makes sense? Can you help me better understand it?
Current thinking:
- If you don't want any of the preconfigured PrismCast channels, you can disable them in Channels DVR.
- If you want to override any of the preconfigured PrismCast channels, you can - just add the same channel key as a custom channel and it will override the builtin one.
- The benefit of creating and maintaining custom channels in PrismCast is that no restarts are needed. You can add/remove/tweak the profiles and use them right away. If you add/remove, you will need to reload the M3U on Channels DVR so it's aware.
So I've been playing around with this a little in Windows Docker and have a couple of observations.
The preprogrammed channels work fine and I was able to correct the Golf Channel url so that it also plays well.
I was also able to add the Weatherstar 4K channel as a static page. But I've noticed that for Channels to show it in the guide, I have to first save it with the "auto" profile, then change it to static.
I tried to add a Spectrum channel that works in CC4C, but it doesn't here. The url is https://watch.spectrum.net/livetv?tmsid=64593 for the Paramount channel. When I add it and try to watch, it does not open Chrome.
Finally, I tried to add a channel from Fruitdeeplinks (another project here in Channels) and it opened the Peacock site, but then I got the "little kitty" page saying something went wrong. This url is http://192.168.88.240:6655/api/lane/3/launch?deeplink_format=http.
The problem I have is that I can't get some of the channels that I want, and that work in CC4C, here. I would like to have all of these in one project. Tagging @KineticMan and @bnhf here for their information.
For people looking to use PrismCast with the multiple pre-defined websites, and provider credentials, I believe you're on the right track.
However, for those of us using streaming websites like Sling, YouTubeTV and even Weatherscan, a slightly different setup is needed.
Let's take my use case as an example:
I have a subscription to a set of Sling Premium channels that I'd like to use with PrismCast. Also, I'd like to be able to view Weatherscan. I'm not particularly interested in any of the pre-defined PrismCast channels -- as I have those well covered through other sources.
So, I converted a cc4c M3U file I've been using into a JSON to import into PrismCast, and M3U text to paste into a Custom CDVR Source.
The source cc4c M3U looks like this:
#EXTM3U
#EXTINF:-1 channel-id="WTHRSCN" tvc-guide-stationid="21586",Weatherscan
chrome://cc4c2:5589/stream?url=https://v2.weatherscan.net
#EXTINF:-1 channel-id="STZHD" tvc-guide-stationid="34941",Starz HD
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/1a3c345b84b149918e0bad8f797df70a/watch
#EXTINF:-1 channel-id="STZHDP" tvc-guide-stationid="34949",Starz HD West
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/8a84458592844ff5849712ef7766fb4e/watch
#EXTINF:-1 channel-id="STZKHD" tvc-guide-stationid="57581",Starz Kids & Family HD
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/148a1e391db94edf96bf25e25beb307d/watch
#EXTINF:-1 channel-id="STZCHD" tvc-guide-stationid="57569",Starz Comedy HD
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/d96b102ac5c54967bf56b8b57e20c84e/watch
#EXTINF:-1 channel-id="STZEHD" tvc-guide-stationid="57573",Starz Edge HD
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/1535e572f07348159d8924d58200690e/watch
#EXTINF:-1 channel-id="STRZIBH" tvc-guide-stationid="67235",Starz in Black HD
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/23a6ea3c163a47f390f73900ccc76bc1/watch
#EXTINF:-1 channel-id="STRZCIH" tvc-guide-stationid="67236",Starz Cinema HD
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/0eedb59656d243da914fef990a8db903/watch
#EXTINF:-1 channel-id="STZENHD" tvc-guide-stationid="36225",Starz Encore HD
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/ed5d0f85928f45249f8a67c9746a80b7/watch
#EXTINF:-1 channel-id="STZENCP" tvc-guide-stationid="17125",Starz Encore West
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/a0515fde0c074dc389981e8881874aae/watch
#EXTINF:-1 channel-id="STZENCL" tvc-guide-stationid="14764",Starz Encore Classic
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/2230d31d16d541c08e654d4a11863d2c/watch
#EXTINF:-1 channel-id="STZEWSS" tvc-guide-stationid="102906",Starz Encore Westerns
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/73ab11e5664241a9811e7e22602bfda9/watch
#EXTINF:-1 channel-id="STZENSU" tvc-guide-stationid="14766",Starz Encore Suspense
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/04e4a4f1e0ec4dfba961414197e57d7f/watch
#EXTINF:-1 channel-id="STZENBK" tvc-guide-stationid="14870",Starz Encore Black
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/1ec67d324b564a528f6901ed8e09334e/watch
#EXTINF:-1 channel-id="SZEAHD" tvc-guide-stationid="72015",Starz Encore Action HD
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/8aed8223a6104b53b24f03555fc933a9/watch
#EXTINF:-1 channel-id="STZENFS" tvc-guide-stationid="102903",Starz Encore Family
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/22076462a8124832967e30e0f9f92213/watch
#EXTINF:-1 channel-id="INDIEHD" tvc-guide-stationid="65795",IndiePlex HD
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/7a17fd0c15754658885b368a0b273565/watch
#EXTINF:-1 channel-id="RETROHD" tvc-guide-stationid="65791",RetroPlex HD
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/9ad3916eb22d4c169c7713afa5ee0f2b/watch
#EXTINF:-1 channel-id="MPLEXHD" tvc-guide-stationid="83075",MoviePlex HD
chrome://cc4c2:5589/stream?url=https://watch.sling.com/1/channel/deba2421b6ff44478320b2c60051f1d7/watch
I've added an Action in OliveTin-for-Channels to POST a JSON to PrismCast that looks like this, based on the above M3U as an input:
{
"indiehd": {
"name": "IndiePlex HD",
"url": "https://watch.sling.com/1/channel/7a17fd0c15754658885b368a0b273565/watch",
"stationId": "65795"
},
"mplexhd": {
"name": "MoviePlex HD",
"url": "https://watch.sling.com/1/channel/deba2421b6ff44478320b2c60051f1d7/watch",
"stationId": "83075"
},
"retrohd": {
"name": "RetroPlex HD",
"url": "https://watch.sling.com/1/channel/9ad3916eb22d4c169c7713afa5ee0f2b/watch",
"stationId": "65791"
},
"strzcih": {
"name": "Starz Cinema HD",
"url": "https://watch.sling.com/1/channel/0eedb59656d243da914fef990a8db903/watch",
"stationId": "67236"
},
"strzibh": {
"name": "Starz in Black HD",
"url": "https://watch.sling.com/1/channel/23a6ea3c163a47f390f73900ccc76bc1/watch",
"stationId": "67235"
},
"stzchd": {
"name": "Starz Comedy HD",
"url": "https://watch.sling.com/1/channel/d96b102ac5c54967bf56b8b57e20c84e/watch",
"stationId": "57569"
},
"stzehd": {
"name": "Starz Edge HD",
"url": "https://watch.sling.com/1/channel/1535e572f07348159d8924d58200690e/watch",
"stationId": "57573"
},
"stzenbk": {
"name": "Starz Encore Black",
"url": "https://watch.sling.com/1/channel/1ec67d324b564a528f6901ed8e09334e/watch",
"stationId": "14870"
},
"stzencl": {
"name": "Starz Encore Classic",
"url": "https://watch.sling.com/1/channel/2230d31d16d541c08e654d4a11863d2c/watch",
"stationId": "14764"
},
"stzencp": {
"name": "Starz Encore West",
"url": "https://watch.sling.com/1/channel/a0515fde0c074dc389981e8881874aae/watch",
"stationId": "17125"
},
"stzenfs": {
"name": "Starz Encore Family",
"url": "https://watch.sling.com/1/channel/22076462a8124832967e30e0f9f92213/watch",
"stationId": "102903"
},
"stzenhd": {
"name": "Starz Encore HD",
"url": "https://watch.sling.com/1/channel/ed5d0f85928f45249f8a67c9746a80b7/watch",
"stationId": "36225"
},
"stzensu": {
"name": "Starz Encore Suspense",
"url": "https://watch.sling.com/1/channel/04e4a4f1e0ec4dfba961414197e57d7f/watch",
"stationId": "14766"
},
"stzewss": {
"name": "Starz Encore Westerns",
"url": "https://watch.sling.com/1/channel/73ab11e5664241a9811e7e22602bfda9/watch",
"stationId": "102906"
},
"stzhd": {
"name": "Starz HD",
"url": "https://watch.sling.com/1/channel/1a3c345b84b149918e0bad8f797df70a/watch",
"stationId": "34941"
},
"stzhdp": {
"name": "Starz HD West",
"url": "https://watch.sling.com/1/channel/8a84458592844ff5849712ef7766fb4e/watch",
"stationId": "34949"
},
"stzkhd": {
"name": "Starz Kids & Family HD",
"url": "https://watch.sling.com/1/channel/148a1e391db94edf96bf25e25beb307d/watch",
"stationId": "57581"
},
"szeahd": {
"name": "Starz Encore Action HD",
"url": "https://watch.sling.com/1/channel/8aed8223a6104b53b24f03555fc933a9/watch",
"stationId": "72015"
},
"wthrscn": {
"name": "Weatherscan",
"url": "https://v2.weatherscan.net",
"stationId": "21586"
}
}
This Action also outputs a text-based M3U that looks like this, which can then be pasted into the CDVR Custom Source in place of the standard PrismCast "playlist" URL:
#EXTM3U
#EXTINF:-1 channel-id="INDIEHD" tvc-guide-stationid="65795",IndiePlex HD
http://convertible-pc3:5589/hls/indiehd/stream.m3u8
#EXTINF:-1 channel-id="MPLEXHD" tvc-guide-stationid="83075",MoviePlex HD
http://convertible-pc3:5589/hls/mplexhd/stream.m3u8
#EXTINF:-1 channel-id="RETROHD" tvc-guide-stationid="65791",RetroPlex HD
http://convertible-pc3:5589/hls/retrohd/stream.m3u8
#EXTINF:-1 channel-id="STRZCIH" tvc-guide-stationid="67236",Starz Cinema HD
http://convertible-pc3:5589/hls/strzcih/stream.m3u8
#EXTINF:-1 channel-id="STRZIBH" tvc-guide-stationid="67235",Starz in Black HD
http://convertible-pc3:5589/hls/strzibh/stream.m3u8
#EXTINF:-1 channel-id="STZCHD" tvc-guide-stationid="57569",Starz Comedy HD
http://convertible-pc3:5589/hls/stzchd/stream.m3u8
#EXTINF:-1 channel-id="STZEHD" tvc-guide-stationid="57573",Starz Edge HD
http://convertible-pc3:5589/hls/stzehd/stream.m3u8
#EXTINF:-1 channel-id="STZENBK" tvc-guide-stationid="14870",Starz Encore Black
http://convertible-pc3:5589/hls/stzenbk/stream.m3u8
#EXTINF:-1 channel-id="STZENCL" tvc-guide-stationid="14764",Starz Encore Classic
http://convertible-pc3:5589/hls/stzencl/stream.m3u8
#EXTINF:-1 channel-id="STZENCP" tvc-guide-stationid="17125",Starz Encore West
http://convertible-pc3:5589/hls/stzencp/stream.m3u8
#EXTINF:-1 channel-id="STZENFS" tvc-guide-stationid="102903",Starz Encore Family
http://convertible-pc3:5589/hls/stzenfs/stream.m3u8
#EXTINF:-1 channel-id="STZENHD" tvc-guide-stationid="36225",Starz Encore HD
http://convertible-pc3:5589/hls/stzenhd/stream.m3u8
#EXTINF:-1 channel-id="STZENSU" tvc-guide-stationid="14766",Starz Encore Suspense
http://convertible-pc3:5589/hls/stzensu/stream.m3u8
#EXTINF:-1 channel-id="STZEWSS" tvc-guide-stationid="102906",Starz Encore Westerns
http://convertible-pc3:5589/hls/stzewss/stream.m3u8
#EXTINF:-1 channel-id="STZHD" tvc-guide-stationid="34941",Starz HD
http://convertible-pc3:5589/hls/stzhd/stream.m3u8
#EXTINF:-1 channel-id="STZHDP" tvc-guide-stationid="34949",Starz HD West
http://convertible-pc3:5589/hls/stzhdp/stream.m3u8
#EXTINF:-1 channel-id="STZKHD" tvc-guide-stationid="57581",Starz Kids & Family HD
http://convertible-pc3:5589/hls/stzkhd/stream.m3u8
#EXTINF:-1 channel-id="SZEAHD" tvc-guide-stationid="72015",Starz Encore Action HD
http://convertible-pc3:5589/hls/szeahd/stream.m3u8
#EXTINF:-1 channel-id="WTHRSCN" tvc-guide-stationid="21586",Weatherscan
http://convertible-pc3:5589/hls/wthrscn/stream.m3u8
This works well, although there are some things to know, and settings changes needed for Sling that could be relevant to similar setups others might be trying.
First, as far as login goes, using VNC or noVNC (before even attempting to tune) and navigating to the provider's website independently is the way to go.
Also, for a provider like Sling several settings are too aggressive. Here are the adjustmens that worked for me (non-default shown in blue -- as you know):
Playback settings:
Streaming settings:
The stack needs to be stopped and restarted to apply those changes. With the above setup, the experience is similar to cc4c/ch4c, while benefitting from the reduced CPU requirements of this project.
One thing that may need a code fix though is Weatherscan. When I attempt to tune to it, PrismCast keeps resetting the connection. PrismCast is recognizing that it's a "static" page, but keeps looking for video elements -- so the page is reset again and again.
Logs for Weatherscan tune:
[2026/01/29 14:42:22.829] [wthrscn-e1npe8] Streaming Weatherscan (staticPage, FFmpeg).
[2026/01/29 14:42:24.837] [WARN] [wthrscn-e1npe8] Video element not found (attempt 1/3). Context: main page, frames: 1, videoCount: 0.
[2026/01/29 14:42:26.830] [WARN] [wthrscn-e1npe8] Video element not found (attempt 2/3). Context: main page, frames: 1, videoCount: 0.
[2026/01/29 14:42:26.831] [wthrscn-e1npe8] Re-searching frames for video element.
[2026/01/29 14:42:26.832] [WARN] [wthrscn-e1npe8] Re-search did not find video in any frame.
[2026/01/29 14:42:28.830] [WARN] [wthrscn-e1npe8] Video element not found (attempt 3/3). Context: main page, frames: 1, videoCount: 0.
[2026/01/29 14:42:28.830] [WARN] [wthrscn-e1npe8] Video element not found. Attempting page navigation...
[2026/01/29 14:42:49.375] [WARN] [wthrscn-e1npe8] Failed to reinitialize video after page navigation: Waiting for selector `video` failed.
[2026/01/29 14:42:49.375] [WARN] [wthrscn-e1npe8] Page navigation unsuccessful.
[2026/01/29 14:42:50.831] [WARN] [wthrscn-e1npe8] Video element not found (attempt 4/3). Context: main page, frames: 1, videoCount: 0.
[2026/01/29 14:42:50.831] [WARN] [wthrscn-e1npe8] Video element not found. Attempting page navigation...
[2026/01/29 14:43:11.585] [WARN] [wthrscn-e1npe8] Failed to reinitialize video after page navigation: Waiting for selector `video` failed.
[2026/01/29 14:43:11.586] [WARN] [wthrscn-e1npe8] Page navigation unsuccessful.
[2026/01/29 14:43:12.831] [WARN] [wthrscn-e1npe8] Video element not found (attempt 5/3). Context: main page, frames: 1, videoCount: 0.
[2026/01/29 14:43:12.831] [WARN] [wthrscn-e1npe8] Video element not found. Attempting page navigation...
[2026/01/29 14:43:33.579] [WARN] [wthrscn-e1npe8] Failed to reinitialize video after page navigation: Waiting for selector `video` failed.
[2026/01/29 14:43:33.579] [WARN] [wthrscn-e1npe8] Page navigation unsuccessful.
[2026/01/29 14:43:34.834] [WARN] [wthrscn-e1npe8] Video element not found (attempt 6/3). Context: main page, frames: 1, videoCount: 0.
[2026/01/29 14:43:34.834] [WARN] [wthrscn-e1npe8] Video element not found. Attempting page navigation...
[2026/01/29 14:43:34.834] [ERROR] [wthrscn-e1npe8] Exceeded maximum page navigations (3 in 15 minutes). Cannot recover without video element.
[2026/01/29 14:43:34.835] [wthrscn-e1npe8] Stream ended after 1m 13s (too many errors). Recoveries: 4 attempted, 0 succeeded.





