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

A source of confusion with the UI documentation with Stream source vs. Provider.

I have PrismCast setup to get channels from tv.youtube. I call that a Stream source.
My Provider is Google YouTube TV (YTTV). I call that my Provider.

I added a channel to get my local Fox channel directly from Fox One (fox.com) using my YTTV Provider credentials. I call that a Stream source.

It didn't show in my channel list or appear in the playlist m3u.
Once I selected Show disabled channels it appeared as disabled in the channel list saying no available providers.

Found out I had to add Fox One Provider to my filters, even though I don't have a Fox One account (not my Provider).

Here are some additional stations you can get from their websites using either TVE or no login required...


You can also have your local PBS Main Feed Station with something like this...

However, for a Sub-Stream like PBS Kids, I can't get it both to select and play. I can make selection work like this...

But I need the embeddedDynamicMultiVideo for it to play, and I don't see a way to mix the two.


For some stations, I found the autodetect method does not work and have to force its hand...


@chDVRuser brought this up as I was typing this, but it's also worth noting that you can go to Fox's website and login with your TVE provider, and then you can use Fox One. If you use PrismCast's built-in method, it tries to first connect you to the Fox One paid app version.

3 Likes

I was talking about going to Verizon's streaming website (https://tv.verizon.com/watch/) and having PrismCast show the channels on there. Each channel doesn't have it's own URL (everything plays from that same URL above), so I'm not sure if I can make it tune to a specific channel. I'm new and still learning the software so that might be a feature.

The bigger issue I think is that I can't even bring up the web page on the Chrome browser used by PrismCast. I get this error and am not sure how to bypass that. Thoughts on that?

There may be deep links to access the actual channels through a hyperlink, but smarter people than me will have to weigh in on that. Same with the developer tools, I just know how to follow directions fairly well (my wife would disagree however).

It would be better for you to PM @hjd and offer up your Verizon credentials so they can make a profile for it like they did for Xfinity and Cox. Yeah, you could figure out the way to do all of it by hand, but having something everyone could use would be way more helpful for the project.

1 Like

I'm basically doing the same thing. I just followed the npm install and upgrade directions on the Git repo with a couple of exceptions. For one, the "install service" function doesn't work as written, so I got around this with this solution, which also keeps the command window hidden:

Create a 'run-prismcast.cmd' file...

@echo off
cd /d "C:\Users\[YOUR_USERNAME]\AppData\Roaming\npm\node_modules\prismcast"
set PRISMCAST_SERVICE=1
"C:\Program Files\nodejs\node.exe" dist\index.js

Create a 'run-prismcast-hidden.vbs' to wrap the .cmd script inside of...

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run """C:\Users\[YOUR_USERNAME]\AppData\Roaming\npm\node_modules\prismcast\run-prismcast.cmd""", 0, False

Place both files in the PrismCast directory and then run this command...

schtasks /Create /TN PrismCast /TR "wscript.exe \"C:\Users\[YOUR_USERNAME]\AppData\Roaming\npm\node_modules\prismcast\run-prismcast-hidden.vbs\"" /SC ONLOGON /RL HIGHEST /F

This isn't the only way to approach this, but it works well enough. You can also create a task like Streaming Library Manager does where it is PowerShell launching in a hidden window to run the bat/cmd functions.

When upgrading, there are two things to do. First, make sure that .cmd and .vbs file are off to the side safe somewhere as you will have to move them back after the upgrade. The other thing to do is to manually end the node.exe process running in Task Manager (which I also have to do when changing settings):

image

Otherwise, the direction on the Github repo work fine! I've never had to re-import my settings as the upgrade in place retains everything for me. When it's all said and done, I just execute the item in Task Scheduler and everything comes back.

image

2 Likes

@chDVRuser brought this up as I was typing this, but it's also worth noting that you can go to Fox's website and login with your TVE provider, and then you can use Fox One. If you use PrismCast's built-in method, it tries to first connect you to the Fox One paid app version.

I don't believe Fox ONE is purely paid...works with TVE logins, which is how I use it. Also, bonus - works natively meaning no need for a screen capture.

As an aside...I'm surprised more folks don't comment on the native streaming that's builtin now that PrismCast uses whenever available. For those of us (like me!) who use Hulu + Live TV...this is really the only option now since Channels DVR can't seem to let us authenticate for TVE directly anymore (unfortunately) without getting caught in a 2FA verification loop. Has anyone even noticed / used the feature? Or perhaps it's one of those "it just works and I don't pay attention to it" things?

1 Like

Any chance you'll support Verizon Fios as a provider? I'm guessing not because when I tried to watch Verizon live in Chrome via VNC, the Verizon page wouldn't even load and told me to disable developer options. Any suggestions on getting this to work with Verizon?

Open to it if someone wants to PM me credentials in a subaccount of theirs. That's the primary constraint.

Thanks very similar to what I am doing in Powershell. Just curious, I think I am seeing some strange things happening due to a two word "YOUR USERNAME". Think of adding a single word account and moving that way.

Not convinced to expose static pages as channels, eh?

No issues supporting it. It's on my radar as a request...it'll get slotted into the roadmap for a future release. I generally am working 2-3 releases ahead of what I release. :smile:

Appreciate the request.

2 Likes

Do you think with the latest channels beta (added webvtt support) you’ll consider looking into this again?

It's very much on my radar. That said, I don't support anything that's in beta: once Channels DVR's GA/release branch supports it, I'll be looking at this. Stay tuned.

I don't comment on when (or if) any specific feature is coming, in general. But as I've said - it's on my radar. :smile:

Thanks for the feedback...the terminology between "provider" and "stream source" could be clearer, and I'll look at improving that flow so adding a channel doesn't leave you hunting through filter settings to figure out why it disappeared.

That said, I'd actually recommend stepping back and reconsidering the approach here. Fox One accepts TVE logins - including YouTube TV - so you can use it directly without needing a separate fox.com login at all. There's a real benefit to doing so: Fox One channels use native HLS streaming, which means PrismCast intercepts and passes through the provider's actual stream rather than capturing from the browser. Better quality, lower resource usage, no transcoding artifacts.

So rather than adding Fox via fox.com and authenticating with your YTTV credentials there, enable the Fox One provider, log in with your YouTube TV account, and you'll get a cleaner pipeline end to end. Out of curiosity - were you aware of the TVE login option, and was there a reason you went the fox.com route instead? That's useful for me to know in terms of how discoverable the setup path is.

I have all my TVE sources setup using Channels DVR TVE.
But the Local Fox TVE channel hasn't worked for years.
I went with EPlus TV for my local Fox. Now that stopped working.
So I added the channel to PrismCast to get it directly from fox.com

I would never have thought of enabling the Fox One Provider, since I don't use them as a Provider. They're just a stream source for me.

Terminology is important when you have to read documentation to figure out how to do things.

I recall spending days trying to get a VPN running on OS/2 because the text documentation didn't match their example diagrams.

Anyway, it's working and thanks for the app.

That's what I'm using :smiley:

For the three stations you mentioned...Freeform, FS1/2...they're built into PrismCast and should work (and just tested again by me). Curious what's different about yours that you need the clickToPlayApi in your case.

For FS1/2, you can also use Fox One, which also gives use native HLS streaming (as does foxsports.com).

Freeform similarly is already built into PrismCast and should "just work". Wonder if it's specific to your TVE setup or something else?

1 Like

Thanks! You're doing great work, as always.

They didn't during testing, which is why I ended up where I did. I'm not sure what to offer because it's not like I've messed with too many settings (except wait times), and certainly no profiles. These weren't the only stations I had to do this, either, but eliminated the other ones with the Cox addition, so I no longer remember what they were. Perhaps there is a difference in Chrome in Windows?

I'm aware, just hadn't made the change yet (or decided if I wanted to). But this brings up something interesting with native. If we get the native stream going, then theoretically we no longer need the window open playing the video and taking up resources. Therefore, if a native stream is able to be detected and served up, once done so, can the webpage close or stop playing or something so it is no longer also running in the background?

Similarly, how do you feel about storing logins and and doing those steps for the end users in case there is a log out or there is a first time connection? This would be similar to how Channels and EplusTV do it, and would go especially well with the native streams since they don't need the window open, per se.

Right, which is what @chDVRuser user and I said. However, if you add Fox One as a provider, it does not bring you to a page where you can login with your TVE credentials the first time. You have to KNOW to open a tab yourself, go to fox.com, and then do the TVE login. In other words, there are two "Fox One"s, the paid one, and the TVE one, and when you add the provider PrismCast assumes you want the paid one.

They didn't during testing, which is why I ended up where I did. I'm not sure what to offer because it's not like I've messed with too many settings (except wait times), and certainly no profiles. These weren't the only stations I had to do this, either, but eliminated the other ones with the Cox addition, so I no longer remember what they were. Perhaps there is a difference in Chrome in Windows?

Shouldn't be the case. Assuming you aren't using something network-level (ad blocking, etc.) that may interfere with these sites, it should just work...you can PM me and we can work through it...I'm genuinely curious and don't want users to have to experiment for sites that are already working.

I think the least talked about / used feature for PrismCast seems to be the custom profiles / channels feature that allows you to import/export site-specific profiles as well as channels to go with them, so you can have complete provider packs to simplify extending what's built into PrismCast.

I'm aware, just hadn't made the change yet (or decided if I wanted to). But this brings up something interesting with native. If we get the native stream going, then theoretically we no longer need the window open playing the video and taking up resources. Therefore, if a native stream is able to be detected and served up, once done so, can the webpage close or stop playing or something so it is no longer also running in the background?

In short: no. The web page still exists and is necessary. PrismCast is just intercepting the HLS stream that's being shown, rather than having to rely on a screen capture. The browser (and page) was, is, and will remain, an essential element of the pipeline. That never changes. What changes is the gymnastics needed to send a stream to Channels. Where we can, we intercept the unencrypted/unDRMed HLS stream and send that over...but it's still being sent to the browser. Where we can't, we capture the browser window. To further clarify because I read part of your response to imply there's something for you as an end user to do...there is not. There isn't a "we" - PrismCast works this way by design - if PrismCast detects it can use what's coming across directly, it does. You can't change that behavior, by design. The reason why is that it should be the most resilient approach to not trigger anti-robot measures that the various sites/providers employ.

Similarly, how do you feel about storing logins and and doing those steps for the end users in case there is a log out or there is a first time connection? This would be similar to how Channels and EplusTV do it, and would go especially well with the native streams since they don't need the window open, per se.

Nope. Fragile and prone to breaking, as one can see in the Channels forums (e.g. Hulu + Live TV logins). I'm not going to chase the perennial game of which website breaks when and which anti-robot mitigation has been implemented/tweaked (e.g. Hulu + Live TV logins). And again - the window must remain open...the premise is incorrect here.

I am not trying to recreate the TVE wheel for what already exists in Channels DVR - it does a fine job. I'm here to address things, by and large, that Channels does not or cannot today (largely due to DRM constraints in TVE, or channels that aren't available at all any other way). Channels is a paid product...with professional support. I'm not, nor trying to be. :smile: For someone like me, who primarily uses Hulu + Live TV day-to-day, but Channels is fundamentally broken for me with respect to TVE, PrismCast becomes my only real path to "TVE provider equity".

Right, which is what @chDVRuser user and I said. However, if you add Fox One as a provider, it does not bring you to a page where you can login with your TVE credentials the first time. You have to KNOW to open a tab yourself, go to fox.com , and then do the TVE login. In other words, there are two "Fox One"s, the paid one, and the TVE one, and when you add the provider PrismCast assumes you want the paid one.

It does not. PrismCast makes no assumptions here...it just opens the page and your job as the user is to login "somehow". I agree that you have to know to login via TVE...but I don't see a reasonable way for me to instruct someone how to login to each of these sites that scales. I'm open to suggestions...but those suggestions have to scale without egregious edge cases or onerous maintenance on my part. The current situation is I'll bring up the website for you. You figure out what to do to login, and then I can use it to tune in channels for you. Not perfect, but scalable.

1 Like

quick question.... may be moving from optimum tve to youtube tv soon as that gives me a simple app for some to use (YouTubeTV app) and i can use Channels DVR with Prismcast
that said will i see any tuning time improvement when using youtube tv login in Prismcast?? as of now im around 8-10 seconds for a tuning to sow up on the TV

YTTV will be faster - this is also already in the documentation for PrismCast, so I would direct you there before posting the same question to the forum. It's on the main webUI home page, under "Tuning Speed".

Regardless of tuning speed, this should essentially be a non-issue at this point for most. PrismCast proactively pretunes a channel when Channels DVR is about to start a scheduled recording on it. By the time the recording starts, the channel is already warmed up and ready to go.

I have been following the discussion regarding NBC channels. Most of the conversation has been about using a YouTube TV deeplink to bring up NBC.

I have DirecTV, rather than YTTV. The DirecTV website does not seem to easily expose a website address for each channel while you are tuning through your browser. (Chrome in my case)

I have successfully added my Locasl NBC-KNBC channel both through DirecTV Stream, and NBC.com.

I added the NBC.com version in hopes that it will allow a second stream if I already have something playing/recording through DTV, which, if I am understanding correctly, is limited to one stream at a time.

Does the NBC.com version of the channel, authenticated with my DTV credentials, require repeated re-authentication at 4 hour intervals as some folks here have pointed out?