BETA: Chrome Capture for Channels

I know it sounds like you (through a very yucky and awful but seemingly necessary way) to finally get it to work, but I did want to point out that you can do this:


I had some hangups the other day--especially after switching methods back and forth during testing--and only could get things working again after a full system reboot. I'm not sure why, either, like something maybe got stuck in memory, but after I did that things just started functioning as expected.

1 Like

Yeah something crazy is going on. I just deleted the stack and nuked the volume in docker. Then I rebuilt it and tested with Windy. Worked great. Then I VNC'd into the container and went to NBC.com/live, authenticated and everything seemed fine. Then tuned to the channel in Channels and got a timeout. Tried to go back to Windy and it fails now too.

*** Update. What you have to do is what I mentioned above and THEN like you said restart the container. So maybe after authenticating with NBC you must reboot? Its working for now...

25/10/2023 10:20:49 destroyed xdamage object: 0x200040
[2023/10/25 10:21:42.436] failed to start stream https://www.nbc.com/live?brand=nbc&callsign=nbc TimeoutError: waiting for target failed: timeout 30000ms exceeded
    at Timeout.<anonymous> (/home/chrome/node_modules/puppeteer-core/lib/cjs/puppeteer/util/Deferred.js:39:29)
    at listOnTimeout (node:internal/timers:569:17)
    at process.processTimers (node:internal/timers:512:7)
[2023/10/25 10:21:42.446] GET /stream/nbc from ::ffff:192.168.12.30 responded 500 in 30061.325 ms
[2023/10/25 10:23:05.595] failed to start stream https://www.nbc.com/live?brand=bravo&callsign=bravo_east TimeoutError: waiting for target failed: timeout 30000ms exceeded
    at Timeout.<anonymous> (/home/chrome/node_modules/puppeteer-core/lib/cjs/puppeteer/util/Deferred.js:39:29)
    at listOnTimeout (node:internal/timers:569:17)
    at process.processTimers (node:internal/timers:512:7)
[2023/10/25 10:23:05.597] GET /stream/bravo from ::ffff:192.168.12.30 responded 500 in 30036.515 ms
[2023/10/25 10:23:30.392] failed to start stream https://www.nbc.com/live?brand=bravo&callsign=bravo_east TimeoutError: waiting for target failed: timeout 30000ms exceeded
    at Timeout.<anonymous> (/home/chrome/node_modules/puppeteer-core/lib/cjs/puppeteer/util/Deferred.js:39:29)
    at listOnTimeout (node:internal/timers:569:17)
    at process.processTimers (node:internal/timers:512:7)
[2023/10/25 10:23:30.394] GET /stream/bravo from ::ffff:192.168.12.30 responded 500 in 30031.872 ms
[2023/10/25 10:23:38.582] failed to start stream https://weatherscan.net/ TimeoutError: waiting for target failed: timeout 30000ms exceeded
    at Timeout.<anonymous> (/home/chrome/node_modules/puppeteer-core/lib/cjs/puppeteer/util/Deferred.js:39:29)
    at listOnTimeout (node:internal/timers:569:17)
    at process.processTimers (node:internal/timers:512:7)
[2023/10/25 10:23:38.584] GET /stream/weatherscan from ::ffff:192.168.12.30 responded 500 in 30028.028 ms
[2023/10/25 10:24:03.626] failed to start stream https://weatherscan.net/ TimeoutError: waiting for target failed: timeout 30000ms exceeded
    at Timeout.<anonymous> (/home/chrome/node_modules/puppeteer-core/lib/cjs/puppeteer/util/Deferred.js:39:29)
    at listOnTimeout (node:internal/timers:569:17)
    at process.processTimers (node:internal/timers:512:7)
[2023/10/25 10:24:03.628] GET /stream/weatherscan from ::ffff:192.168.12.30 responded 500 in 30030.140 ms
[2023/10/25 10:24:10.506] failed to start stream https://windy.com TimeoutError: waiting for target failed: timeout 30000ms exceeded
    at Timeout.<anonymous> (/home/chrome/node_modules/puppeteer-core/lib/cjs/puppeteer/util/Deferred.js:39:29)
    at listOnTimeout (node:internal/timers:569:17)
    at process.processTimers (node:internal/timers:512:7)
[2023/10/25 10:24:10.507] GET /stream/windy from ::ffff:192.168.12.30 responded 500 in 30025.407 ms


2 Likes

are there any limitations on what client I can use to view these channels? (android/tvos/ios, etc.)

Thanks for the tip. Reinstalling the container seemed to do the trick for me. Alas, the CNBC, news ticker still stutters quite a bit. It happens when streaming from both directly from NBC and when going through Fubo.

EPG on Redbox isn't available

For the "browser or app may not be secure" issue, I found a different fix that worked for me.

I am on a 2012 mac mini running Catalina 10.15.7 and Chrome 118.0.5993.117

Based on the discussion in puppeteer here:
https://github.com/berstend/puppeteer-extra/issues/822#issuecomment-1783712504

I deleted the "'--disable-notifications'" line in main.js, and suddenly, I could log into youtube tv. Before deleting, I got the "browser or app may not be secure" message after entering my email address. no matter how many times I tried to log in (>20 in at least one session). After deleting the line, quitting the chrome instance, restarting node and retriggering from channels, immediately got the password prompt and everything works now. I think this might be the thing tipping the google heuristics over into "not secure" mode. However, by deleting the line, you will get notification prompts the first time you got to site that request notification access (like nbc.com) that you can acknowledge once. There may be another way to do this, but this works 100% for me.

$ git diff
diff --git a/main.js b/main.js
index fb4974c..00f4eca 100644
--- a/main.js
+++ b/main.js
@@ -42,7 +42,6 @@ const getCurrentBrowser = async () => {
         defaultViewport: null, // no viewport emulation
         userDataDir: path.join(dataDir, 'chromedata'),
         args: [
-          '--disable-notifications',
           '--no-first-run',
           '--disable-infobars',
           '--hide-crash-restore-bubble',
1 Like

Can confirm that this also worked for me as well. Thank you for posting!

If this works please update the docker deployment to include this.

Thanks.

Most of my custom channels are working fine. However, my code for YouTube TV SyFy is:

#EXTINF:-1 channel-id=""SyFy (East)",SyFy (East)
chrome://x.x.x.x:5589/stream?url=https://tv.youtube.com/watch/zGH_LknjWeQ

but the TV Guide data is incorrect (maybe just the wrong timezone). I have used the logo listing to match all the channels.

How can I customize the code to get the right guide data?

SOLUTION UPDATE:

Looking around for a bit, I found an article and this edit seems to work exactly as I need for Nickelodeon on YouTube TV.

#EXTINF:-1 channel-id="Nickelodeon" tvg-chno="6028" tvc-guide-stationid="59432" tvg-shift="+3",Nickelodeon
chrome://x.x.x.x:5589/stream?url=https://tv.youtube.com/watch/-1-V0jhsLv0

Anyone try this with spectrumsportsnet.com? In Firefox I can set 720p but with Chrome it only goes up to 576p. Looks like poopies.

Have a question when editing the main.js file do I have restart the docker container? I Install it with the portainer setup.

1 Like

In order for the updates to apply, yes

Ok every time I try to restart the container ot stops working. And I have to delete the container and reinstall from scratch. To get it working again.

using CC4C, is it possible to link/play my Plex Live TV channels along with the Plex tv guide data?

Have you tried this?

deploy stack will do this in portainer. make the real time script change and click deploy stack

I have discovered CC4C today and have come across a few situations.

First, I am hosting Channels on a Shield 2015 on my network, My clients are Shield 2019 pross, Tivo 4k streams, and also AppleTV 4K 2017 models. My CC4C host temporarily a 9th Gen Intel I7 with both Intel and RTX2060 GPU. Both the internal and external displays are 1080p

The deep links i have tryed to websites work well, I also spent some time logging into NBCU, ABC, CBS, SYFY, Bravo, USA , E etc on the android apps. Not sure I need this now but I did it anyways. My TV Provider is spectrum at this time.

Main issues I was having, chopping video: added hardware encode, decode flags in node.js for powershell on Win 11 X64

Border issues: I figured out real quick the issue here is running dual monitor in expand mode, Unless there is a way to force the chrome instance for CC4C to Display 1 or 2, it makes every channel look letter boxes. I began to read and read some more. The issue for me ended up being the zoom size on chrome. I am back to running expanded mode on Windows with display set to 80% zoom in chrome window. Very little choppiness right now and sizing correctly to full screen. MSGolf or Golf still has some issues with sizing, but SYFY, USA, BRAVO, MSNBC, all working ok.

In addition, I have my Asus Router, Channels DVR , and Nest Home channels working as well as streamlinks. I wonder if this is a way to get around Nest recording fee for my doorbell cam. Not sure on that yet,

As best as I can tell, this works very similar to chromecasting a tab from a DRM-enabled website to Channels and enabling recoridng the stream as well. It's a treat since we lost most of the NBC TVE channels. I keep searching for spectrum links for same channels to see differences, Maybe they are less wonky! Still, this is pretty amazing and might solve a few issues on the DVR for some programming we are missing in the dvr duties.

The shield as the DVR is a temp solution, I had major HVAC repairs last month and had to replace an air handler....an unexpected expense at the time. and lost a few drives in my NAS. I am awaiting to pick up some drives and rebuilt the array, but its been a lititle tight this past month. Best thing i could do quickly was use the Shield 2015 for the DVR server. It handles up to about 4 streams maybe 5 before it coughs on the 64bit arm tegra1. I have a nuc and 4th gen i5 i might could move channels too as well, if time permits.

Can I isolate the same channel for recording and guide data from 2 different sources? I have Fox 6002 tve from Fubo, and also Fox 9443 from cc4c. Fubo is higher priority in the sources. Most of the time with Fox tve -I get the FoxSports Banner when try to watch or record and / or SignOff in the guide.. CC4C channel on the other hand works all the time and the guide shows full scheduled programming that works. I choose OTA guide for that one. When I try to record a tve one - it records from the cc4c, but the guide shows it as recording from both. I'd rather record from the tve one as its better quality - if its actually broadcasting on tve.

I think maybe tinkering with the Station ID , or channels-id, number, name etc.. in the cc4c setup could possibly work?

when trying to restart the docker container after making changes to the main.js i get this error in the logs.

04/11/2023 16:13:40 x11vnc version: 0.9.16 lastmod: 2019-01-05 pid: 9
04/11/2023 16:13:40 XOpenDisplay(":99") failed.
04/11/2023 16:13:40 Trying again with XAUTHLOCALHOSTNAME=localhost ...

04/11/2023 16:13:40 ***************************************
04/11/2023 16:13:40 *** XOpenDisplay failed (:99)

And cc4c stops working. the only way to get it working again is to delete the container and re install. I have installed with portainer. I tried to stop the stack and restart the stack but it seems to delete the container reinstall it.

If you go into the DVR schedule on the website you can choose which channel to record from.

Are you going into the guide and choosing the specific channel to record? If it's a DVR pass I believe it will default to which source is higher on the list.