BETA: Chrome Capture for Channels

So new to this. For some reason I can’t get my local nbc to play in my browser for Chrome Capture at all says provider has removed accesss to NBC on this device the other universal channels USA E Bravo etc work fine NBC works fine on NBC App. So I replaced the url with my peacock that plays my Local nbc. However whenever it launches the peacock local it launches in mute. Anyone know how keep it from launching in mute?

1 Like

That's Peacock's default. Earlier in this thread, it was detailed and solved. You have to edit your main.js file. Here's the post: BETA: Chrome Capture for Channels - #1362 by tobycth3

I have cc4c running in "node" mode, but I was trying to getting it running in Docker. Unfortunately, when I start the container (after shutting down the node version), I get an error message in the logs saying "sed no input files" and the container doesn't work. Anyone have any ideas what's happening? Thanks.

I have it loaded on my server and am getting the same error of Google couldn't sign you in.

I have tried everything. Google sign in works on the other browsers but not chrome.

Had the same issue with my NAS. Moved to a WIN 11 PC. I load main.js and it runs flawlessly. Never got the .exe to run.

I have been playing with this a bit on Win 11 with an i5-10400 32GB RAM & 512Gb NVME using YouTubeTV. It seems to work fairly well on my streaming boxes (only in-home devices and most are hardwired on a 2.5Gb LAN) as long as only ONE chrome window being is captured AND that window is in full screen mode on the monitor connected to the server. If I open another stream, it seems to stutter quite a bit for a moment but then catches up and seems to work decently, for a little while, as long as again, the monitor is in full screen mode. Then again, its seems to stable off.

I have been reading this thread for hours now and I know that YTTV is a bit of a hiccup, but I am wondering if I doubled my RAM or added a dedicated GPU could I potentially see an improvement?

I would think this machine is powerful enough to handle at least 2 if not 3 of the captures at once. Am I wrong here or, is it just what it is due to YTTV ? :stuck_out_tongue:

Thoughts?

You may want to look into ADBTuner with a Linkpi encoder. I tried Cc4c and it just didnt measure up. I have a very powerful machine and at its best i got a bunch of frameskips. A slightly less powerful machine was much worse.
I have 4 walmart ONN boxes connected to a linkpi using YoutubeTV. They work flawless...
YTTV has enhanced 720p and 1080p streams and it looks stellar through the linkpi.

3 Likes

I made a script for this a while ago. It works but is slow.

This is an older version of the directv js file. I plan on making it better later this year. It also almost works with puffer california tv.

You may have to install some dependencies. I haven't tried installing it on another machine . I also updated the node js to 20.8.0

You may need to modify the delay for the script to work, I had to play with it. It depends how fast your pc loads the page.

I assume you have node.js .. just run this puffer-13.js by command:

node puffer-13.js

I havent made it an exe file, yet. I am working on CBS Sunday ticket. (Probably wont be public)

Look through the code, you may need to increase delay for channels to load.

Channels must be in the format https://stream.directv.com/guide/?ch=ESPN etc, not just https://stream.directv.com/ this helps the channel get the value to load

what is linkpi?

EDIT: nevermind i google it :stuck_out_tongue:

Seems like a ADBTuner wont work well for me, because all I would use it for is to connect to the NBC channels, and it seems like the NBC app sucks. I am using a smaller regional cable service, so none of the YTTV workarounds apply.

I still have to work out what exactly is causing the buffering or frame skip issues on my end, I think its more networking related over something hardware related.

1 Like

I would recommend hardwiring everything (including the server computer) to see if that's the case. Sometimes that works

That's the thing, switching the chrome capture client to the cat5e coming out of the wall results in constant buffeing, while wifi seems better. It will probably take some troubleshooting, but I have a feeling there's a faulty connection somewhere.

Has anyone had luck running Chrome Capture inside a virtual machine on their NAS? I'm curious if this would work... I could just try but I at least wanted to see if anyone's had any luck with it before.

1 Like

The Chrome Capture take s a lot of resources.
I would probably need good fast hard drives and good processor power to get good use out of Chrome Capture.

I might give it a go and try. My NAS has an i5 and drives at 7200rpm. Seems like that might work. I just don’t know if it would sink the rest of the system LOL. If I get it working, I’ll report back.

1 Like

Thanks for this, these args really seemed to help. I've been iterating with the settings for over a year on an old laptop (i-2330m) running linux mint and with cc4c in portainer. These args along with '--disable-gpu-vsync', and changing the resolution in the main.json and stack to 1280x720 seems to finally give me a mostly non-jittery solution! I still have some periodic buffering when watching a stream but its much better than the default settings.

1 Like

Interesting. Just to confirm, you're talking about a 2nd generation i3 here? What video and audio bitrates are you using? Would you mind posting the docker compose and environment variables you're using?

Yes, using a 2nd gen i3-2330m. Biggest difference seemed to be when I dropped the resolution to 1280 x 720. Then using the arguments below seemed to help. I'm unsure if disabling vsync is helping or not, but I'm currently leaving it enabled without a noticeable drop in performance.

Main.json changes:

const viewport = {
width: 1280,
height: 720,
}

args: [

      '--enable-unsafe-webgpu',
      '--enable-accelerated-video-decode',
 	  '--enable-accelerated-video-encode',
      '--disable-notifications',
      '--no-first-run',
      '--disable-infobars',
      '--no-sandbox',
      '--use-gl=egl',
      '--in-process-gpu',
      '--hide-crash-restore-bubble',
      '--disable-blink-features=AutomationControlled',
      '--hide-scrollbars',
      '--enable-features=VaapiVideoEncoder,VaapiVideoDecoder,webgpu,video_encode,gpu_compositing',
      '--ignore-gpu-blocklist',
      '--disable-features=UseChromeOSDirectVideoDecoder'
    ],

Stack Changes

version: '3.9'
services:
chrome-capture-for-channels:
image: fancybits/chrome-capture-for-channels:latest
container_name: cc4channels
command:
- sh
- -c
- |
Xvfb :99 -screen 0 1280x720x16 &
x11vnc -display :99 -forever &
sed -i '/videoBitsPerSecond/c\ videoBitsPerSecond: process.env.VIDEO,' main.js;
sed -i '/audioBitsPerSecond/c\ audioBitsPerSecond: process.env.AUDIO,' main.js;
exec node main.js
devices:
- /dev/dri:/dev/dri # Uncomment for Intel Quick Sync (GPU) access
ports:
- 5589:5589 # cc4channels proxy port
- 5900:5900 # VNC port for entering credentials
environment:
- VIDEO=8000000
- AUDIO=192000
- TZ=US/Eastern
volumes:
- cc4channels:/home/chrome # Creates persistent Docker Volume in /var/lib/docker/volumes for Chrome data and main.js
restart: unless-stopped
volumes:
cc4channels:

Just an FYI with regard to resolution, I noticed my Win11 12th gen i5 was high in gpu usage when using cc4c. I use the executable version and had increased the resolution to 3840x2160 to avoid any sidebars, but when cc4c was showing video, my gpu was between 90-98 percent causing stuttering. Doing some investigating, I found that the Windows Desktop Manager (dwm.exe) in Task Manager was above 50% gpu and Chrome was above 40%. Lowering my resolution to 2880x1620 dramatically lowered dwm.exe usage (down to less than 10%, Chrome stayed the same) and got rid of any stuttering.

1 Like

just use the full screen argument from mine above, dont need to run at 2160p