BETA: Chrome Capture for Channels

" i would put Ubuntu Server on it and install docker. Then install portainer and follow the instructions. "
Thanks @slampman for the idea. This machine also runs my Christmas and Halloween light shows(minimal resources), so I need to keep it on Windows, I do have Docker running for Pluto and Frndly, so perhaps Docker is still an option?

"I need to make a guide to make it easier."
Actually, the simplified guide at post 130 was fantastic and worked well.
I've followed all the troubleshooting here that seemed relevant, and I had no issues installing, adding channels, populating the Guide, or watching - just some performance issues (garbled recordings and the Chrome window freezing), so just hoping that some more knowledgeable folks can share some performance optimizations to try.

I'm using a very low powered laptop for this (i3-2330m) with no dedicated graphics card. I have this running on Linux Mint with the Portainer method and CPU usage seems to hover around 70% with some significant stuttering for a single stream (all I'll ever need). I'm using this to record hockey so the stuttering is a real downer.

Any tips on how to change the Portainer stack or main.js file in order to minimize the stuttering? I've been playing around with it changing the bitrates from the default settings, but my tinkering only seems to have made it worse.

1 Like

I think I'm having similar issues as @hofs1
I can get the node to load when I launch it manually using PowerShell, but can't get it to autolaunch using the ps1 file I created. If I enter the text in the PowerShell directly, node.exe appears as expected in my Task Manager. Then I End Task and try again by right-clicking on the ps1 file in Windows and select Run with PowerShell. A box briefly opens and closes, but node.exe never appears. What am I missing here?

Where in the main.js file do you make this change to modify the 8mbit to 5.65mbit?
Is it here? Would I change the 8000000 to 5650000?

const stream = await getStream(page, {
video: true,
audio: true,
videoBitsPerSecond: 8000000,
audioBitsPerSecond: 192000,
mimeType: 'video/webm;codecs=H264',
videoConstraints: {
mandatory: {
minWidth: viewport.width,
minHeight: viewport.height,
maxWidth: viewport.width,
maxHeight: viewport.height,
minFrameRate: 60,

@augie0041, It's probably your Powershell security settings ("Execution Policy"). You can modify it for manual testing if you want...

However, you'll notice in the directions above, I specifically say to set up Task Scheduler to run:

That command overrides whatever your security settings are, so I'd go ahead and just skip the test you are trying to do as this is doing the same thing anyway. Otherwise, you could do a manual run with the same commands if you still want to test it outside of Task Scheduler.

Thanks for this helpful reply. I was following your instructions on the above post and couldn't get the Task Scheduler to work, so I was testing the ps1 file directly to troubleshoot. But no matter what I do, I can't get it to work. I see the error The system cannot find the file specified. (0x800700002) but I've double-checked my file paths and file names... can't really figure out what I'm missing here.

Maybe change folder and file names to something shorter.
I realize it shouldn’t matter but I hate long folder/filenames.
I’m old school when they all had to be 8 characters or less.

1 Like

Thanks everyone, I finally figured it out. I wasn't following the Task Scheduler tasks properly. I was missing entering the word "powershell" in the Program/script area and then entering the -ExecutionPolicy Bypass -File "C:\chrome-capture\cc4c-node\chrome-capture-for-channels-win-x64.ps1" in the arguments area.

1 Like

I previously tried the manual, Docker version of CC4C but the difficulty in entering credentials made me move to trying Windows in a VM. That works but stutters some. I'm still messing with trying to pass through a GPU to Windows and/or a LXC running Linux but decided to give the new Docker via Portainer method a try.

I'm beginning to think I'm cursed when it comes to CC4C because even the Portainer version isn't working for me. There seems to be a problem with opening the X session but I'm stumped as to why. I set the VIDEO, AUDIO and TZ environment variables. Is there some extra configuration that is needed?

Here's the log from my most recent attempt to captured NBC.

#@  and then starting x11vnc via:                            @#
#@                                                           @#
#@      x11vnc -rfbauth /path/to/passfile                    @#
#@                                                           @#
#@  an existing ~/.vnc/passwd file from another VNC          @#
#@  application will work fine too.                          @#
#@                                                           @#
#@  You can also use the -passwdfile or -passwd options.     @#
#@  (note -passwd is unsafe if local users are not trusted)  @#
#@                                                           @#
#@  Make sure any -rfbauth and -passwdfile password files    @#
#@  cannot be read by untrusted users.                       @#
#@                                                           @#
#@  Use x11vnc -usepw to automatically use your              @#
#@  ~/.vnc/passwd or ~/.vnc/passwdfile password files.       @#
#@  (and prompt you to create ~/.vnc/passwd if neither       @#
#@  file exists.)  Under -usepw, x11vnc will exit if it      @#
#@  cannot find a password to use.                           @#
#@                                                           @#
#@                                                           @#
#@  Even with a password, the subsequent VNC traffic is      @#
#@  sent in the clear.  Consider tunnelling via ssh(1):      @#
#@                                                           @#
#@    http://www.karlrunge.com/x11vnc/#tunnelling            @#
#@                                                           @#
#@  Or using the x11vnc SSL options: -ssl and -stunnel       @#
#@                                                           @#
#@  Please Read the documentation for more info about        @#
#@  passwords, security, and encryption.                     @#
#@                                                           @#
#@    http://www.karlrunge.com/x11vnc/faq.html#faq-passwd    @#
#@                                                           @#
#@  To disable this warning use the -nopw option, or put     @#
#@  'nopw' on a line in your ~/.x11vncrc file.               @#
#@                                                           @#
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
###############################################################
24/10/2023 14:50:15 x11vnc version: 0.9.16 lastmod: 2019-01-05  pid: 9
24/10/2023 14:50:15 XOpenDisplay(":99") failed.
24/10/2023 14:50:15 Trying again with XAUTHLOCALHOSTNAME=localhost ...
24/10/2023 14:50:15 ***************************************
24/10/2023 14:50:15 *** XOpenDisplay failed (:99)
*** x11vnc was unable to open the X DISPLAY: ":99", it cannot continue.
*** There may be "Xlib:" error messages above with details about the failure.
Some tips and guidelines:
** An X server (the one you wish to view) must be running before x11vnc is
   started: x11vnc does not start the X server.  (however, see the -create
   option if that is what you really want).
** You must use -display , -OR- set and export your $DISPLAY
   environment variable to refer to the display of the desired X server.
 - Usually the display is simply ":0" (in fact x11vnc uses this if you forget
   to specify it), but in some multi-user situations it could be ":1", ":2",
   or even ":137".  Ask your administrator or a guru if you are having
   difficulty determining what your X DISPLAY is.
** Next, you need to have sufficient permissions (Xauthority) 
   to connect to the X DISPLAY.   Here are some Tips:
 - Often, you just need to run x11vnc as the user logged into the X session.
   So make sure to be that user when you type x11vnc.
 - Being root is usually not enough because the incorrect MIT-MAGIC-COOKIE
   file may be accessed.  The cookie file contains the secret key that
   allows x11vnc to connect to the desired X DISPLAY.
 - You can explicitly indicate which MIT-MAGIC-COOKIE file should be used
   by the -auth option, e.g.:
       x11vnc -auth /home/someuser/.Xauthority -display :0
       x11vnc -auth /tmp/.gdmzndVlR -display :0
   you must have read permission for the auth file.
   See also '-auth guess' and '-findauth' discussed below.
** If NO ONE is logged into an X session yet, but there is a greeter login
   program like "gdm", "kdm", "xdm", or "dtlogin" running, you will need
   to find and use the raw display manager MIT-MAGIC-COOKIE file.
   Some examples for various display managers:
     gdm:     -auth /var/gdm/:0.Xauth
              -auth /var/lib/gdm/:0.Xauth
     kdm:     -auth /var/lib/kdm/A:0-crWk72
              -auth /var/run/xauth/A:0-crWk72
     xdm:     -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk
     dtlogin: -auth /var/dt/A:0-UgaaXa
   Sometimes the command "ps wwwwaux | grep auth" can reveal the file location.
   Starting with x11vnc 0.9.9 you can have it try to guess by using:
              -auth guess
   (see also the x11vnc -findauth option.)
   Only root will have read permission for the file, and so x11vnc must be run
   as root (or copy it).  The random characters in the filenames will of course
   change and the directory the cookie file resides in is system dependent.
See also: http://www.karlrunge.com/x11vnc/faq.html

I've got no luck using YTTV getting past the 'not secure' message using chrome in the CC4C opened browser. my logins work fine in normal Chrome, both nbc.com and tv.youtube.com

I'm currently trying the Windows 10 setup via winget method. I have previously tried the easy Windows setup and the Docker setup method. All methods still result with unable to login to YTTV credentials due to 'not secure' browser message. And yes I have turned off hardware acceleration in Chrome.

Is there a way I can try to use Edge browser or another browser instead of Chrome? (or maybe a chrome version that does not use puppeteer)?

btw: I have the previous project "PC Stream for Channels" via @babsonnexus working almost just fine for nbc.com and tv.youtube.com logins with just the exception that youtube freezes after a few minutes of playing. but of course I can only tune one channel at a time there.

@babsonnexus
So I did your docker method and it worked perfectly. I left it for a couple of days and now it crapped out. Crazy thing is I didnt change anything at all. I restarted the container with no success. Then I just deleted the container and re-ran the stack and re-downloaded everything, sitll nothing. Any idea?

2023/10/25 00:23:59.924] Chrome Capture server listening on port 5589
#@                                                           @#
#@  You can create an x11vnc password file by running:       @#
#@                                                           @#
#@       x11vnc -storepasswd password /path/to/passfile      @#
#@  or   x11vnc -storepasswd /path/to/passfile               @#
#@  or   x11vnc -storepasswd                                 @#
#@                                                           @#
#@  (the last one will use ~/.vnc/passwd)                    @#
#@                                                           @#
#@  and then starting x11vnc via:                            @#
#@                                                           @#
#@      x11vnc -rfbauth /path/to/passfile                    @#
#@                                                           @#
#@  an existing ~/.vnc/passwd file from another VNC          @#
#@  application will work fine too.                          @#
#@                                                           @#
#@  You can also use the -passwdfile or -passwd options.     @#
#@  (note -passwd is unsafe if local users are not trusted)  @#
#@                                                           @#
#@  Make sure any -rfbauth and -passwdfile password files    @#
#@  cannot be read by untrusted users.                       @#
#@                                                           @#
#@  Use x11vnc -usepw to automatically use your              @#
#@  ~/.vnc/passwd or ~/.vnc/passwdfile password files.       @#
#@  (and prompt you to create ~/.vnc/passwd if neither       @#
#@  file exists.)  Under -usepw, x11vnc will exit if it      @#
#@  cannot find a password to use.                           @#
#@                                                           @#
#@                                                           @#
#@  Even with a password, the subsequent VNC traffic is      @#
#@  sent in the clear.  Consider tunnelling via ssh(1):      @#
#@                                                           @#
#@    http://www.karlrunge.com/x11vnc/#tunnelling            @#
#@                                                           @#
#@  Or using the x11vnc SSL options: -ssl and -stunnel       @#
#@                                                           @#
#@  Please Read the documentation for more info about        @#
#@  passwords, security, and encryption.                     @#
#@                                                           @#
#@    http://www.karlrunge.com/x11vnc/faq.html#faq-passwd    @#
#@                                                           @#
#@  To disable this warning use the -nopw option, or put     @#
#@  'nopw' on a line in your ~/.x11vncrc file.               @#
#@                                                           @#
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
###############################################################
25/10/2023 00:24:00 x11vnc version: 0.9.16 lastmod: 2019-01-05  pid: 9
25/10/2023 00:24:00 XOpenDisplay(":99") failed.
25/10/2023 00:24:00 Trying again with XAUTHLOCALHOSTNAME=localhost ...
25/10/2023 00:24:00 ***************************************
25/10/2023 00:24:00 *** XOpenDisplay failed (:99)
*** x11vnc was unable to open the X DISPLAY: ":99", it cannot continue.
*** There may be "Xlib:" error messages above with details about the failure.
Some tips and guidelines:
** An X server (the one you wish to view) must be running before x11vnc is
   started: x11vnc does not start the X server.  (however, see the -create
   option if that is what you really want).
** You must use -display <disp>, -OR- set and export your $DISPLAY
   environment variable to refer to the display of the desired X server.
 - Usually the display is simply ":0" (in fact x11vnc uses this if you forget
   to specify it), but in some multi-user situations it could be ":1", ":2",
   or even ":137".  Ask your administrator or a guru if you are having
   difficulty determining what your X DISPLAY is.
** Next, you need to have sufficient permissions (Xauthority) 
   to connect to the X DISPLAY.   Here are some Tips:
 - Often, you just need to run x11vnc as the user logged into the X session.
   So make sure to be that user when you type x11vnc.
 - Being root is usually not enough because the incorrect MIT-MAGIC-COOKIE
   file may be accessed.  The cookie file contains the secret key that
   allows x11vnc to connect to the desired X DISPLAY.
 - You can explicitly indicate which MIT-MAGIC-COOKIE file should be used
   by the -auth option, e.g.:
       x11vnc -auth /home/someuser/.Xauthority -display :0
       x11vnc -auth /tmp/.gdmzndVlR -display :0
   you must have read permission for the auth file.
   See also '-auth guess' and '-findauth' discussed below.
** If NO ONE is logged into an X session yet, but there is a greeter login
   program like "gdm", "kdm", "xdm", or "dtlogin" running, you will need
   to find and use the raw display manager MIT-MAGIC-COOKIE file.
   Some examples for various display managers:
     gdm:     -auth /var/gdm/:0.Xauth
              -auth /var/lib/gdm/:0.Xauth
     kdm:     -auth /var/lib/kdm/A:0-crWk72
              -auth /var/run/xauth/A:0-crWk72
     xdm:     -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk
     dtlogin: -auth /var/dt/A:0-UgaaXa
   Sometimes the command "ps wwwwaux | grep auth" can reveal the file location.
   Starting with x11vnc 0.9.9 you can have it try to guess by using:
              -auth guess
   (see also the x11vnc -findauth option.)
   Only root will have read permission for the file, and so x11vnc must be run
   as root (or copy it).  The random characters in the filenames will of course
   change and the directory the cookie file resides in is system dependent.
See also: http://www.karlrunge.com/x11vnc/faq.html
/home/chrome/node_modules/@puppeteer/browsers/lib/cjs/launch.js:259
                reject(new Error([
                       ^
Error: Failed to launch the browser process! undefined
[18:18:1025/002416.000612:ERROR:ozone_platform_x11.cc(239)] Missing X server or $DISPLAY
[18:18:1025/002416.000638:ERROR:env.cc(255)] The platform failed to initialize.  Exiting.
[18:39:1025/002416.002155:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
TROUBLESHOOTING: https://pptr.dev/troubleshooting
    at ChildProcess.onClose (/home/chrome/node_modules/@puppeteer/browsers/lib/cjs/launch.js:259:24)
    at ChildProcess.emit (node:events:525:35)
    at ChildProcess._handle.onexit (node:internal/child_process:291:12)
Node.js v18.16.0
_XSERVTransmkdir: Owner of /tmp/.X11-unix should be set to root
###############################################################
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
#@                                                           @#
#@  **  WARNING  **  WARNING  **  WARNING  **  WARNING  **   @#
#@                                                           @#
#@        YOU ARE RUNNING X11VNC WITHOUT A PASSWORD!!        @#
#@                                                           @#
#@  This means anyone with network access to this computer   @#
#@  may be able to view and control your desktop.            @#
#@                                                           @#
#@ >>> If you did not mean to do this Press CTRL-C now!! <<< @#
#@                                                           @#
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
[2023/10/25 00:24:16.754] Chrome Capture server listening on port 5589
#@                                                           @#
#@  You can create an x11vnc password file by running:       @#
#@                                                           @#
#@       x11vnc -storepasswd password /path/to/passfile      @#
#@  or   x11vnc -storepasswd /path/to/passfile               @#
#@  or   x11vnc -storepasswd                                 @#
#@                                                           @#
#@  (the last one will use ~/.vnc/passwd)                    @#
#@                                                           @#
#@  and then starting x11vnc via:                            @#
#@                                                           @#
#@      x11vnc -rfbauth /path/to/passfile                    @#
#@                                                           @#
#@  an existing ~/.vnc/passwd file from another VNC          @#
#@  application will work fine too.                          @#
#@                                                           @#
#@  You can also use the -passwdfile or -passwd options.     @#
#@  (note -passwd is unsafe if local users are not trusted)  @#
#@                                                           @#
#@  Make sure any -rfbauth and -passwdfile password files    @#
#@  cannot be read by untrusted users.                       @#
#@                                                           @#
#@  Use x11vnc -usepw to automatically use your              @#
#@  ~/.vnc/passwd or ~/.vnc/passwdfile password files.       @#
#@  (and prompt you to create ~/.vnc/passwd if neither       @#
#@  file exists.)  Under -usepw, x11vnc will exit if it      @#
#@  cannot find a password to use.                           @#
#@                                                           @#
#@                                                           @#
#@  Even with a password, the subsequent VNC traffic is      @#
#@  sent in the clear.  Consider tunnelling via ssh(1):      @#
#@                                                           @#
#@    http://www.karlrunge.com/x11vnc/#tunnelling            @#
#@                                                           @#
#@  Or using the x11vnc SSL options: -ssl and -stunnel       @#
#@                                                           @#
#@  Please Read the documentation for more info about        @#
#@  passwords, security, and encryption.                     @#
#@                                                           @#
#@    http://www.karlrunge.com/x11vnc/faq.html#faq-passwd    @#
#@                                                           @#
#@  To disable this warning use the -nopw option, or put     @#
#@  'nopw' on a line in your ~/.x11vncrc file.               @#
#@                                                           @#
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
###############################################################
25/10/2023 00:24:17 x11vnc version: 0.9.16 lastmod: 2019-01-05  pid: 10
25/10/2023 00:24:17 Using X display :99
25/10/2023 00:24:17 rootwin: 0x400 reswin: 0x200001 dpy: 0xbf3a3aa0
25/10/2023 00:24:17 
25/10/2023 00:24:17 ------------------ USEFUL INFORMATION ------------------
25/10/2023 00:24:17 X DAMAGE available on display, using it for polling hints.
25/10/2023 00:24:17   To disable this behavior use: '-noxdamage'
25/10/2023 00:24:17 
25/10/2023 00:24:17   Most compositing window managers like 'compiz' or 'beryl'
25/10/2023 00:24:17   cause X DAMAGE to fail, and so you may not see any screen
25/10/2023 00:24:17   updates via VNC.  Either disable 'compiz' (recommended) or
25/10/2023 00:24:17   supply the x11vnc '-noxdamage' command line option.
25/10/2023 00:24:17 
25/10/2023 00:24:17 Wireframing: -wireframe mode is in effect for window moves.
25/10/2023 00:24:17   If this yields undesired behavior (poor response, painting
25/10/2023 00:24:17   errors, etc) it may be disabled:
25/10/2023 00:24:17    - use '-nowf' to disable wireframing completely.
25/10/2023 00:24:17    - use '-nowcr' to disable the Copy Rectangle after the
25/10/2023 00:24:17      moved window is released in the new position.
25/10/2023 00:24:17   Also see the -help entry for tuning parameters.
25/10/2023 00:24:17   You can press 3 Alt_L's (Left "Alt" key) in a row to 
25/10/2023 00:24:17   repaint the screen, also see the -fixscreen option for
25/10/2023 00:24:17   periodic repaints.
25/10/2023 00:24:17 
25/10/2023 00:24:17 XFIXES available on display, resetting cursor mode
25/10/2023 00:24:17   to: '-cursor most'.
25/10/2023 00:24:17   to disable this behavior use: '-cursor arrow'
25/10/2023 00:24:17   or '-noxfixes'.
25/10/2023 00:24:17 using XFIXES for cursor drawing.
25/10/2023 00:24:17 GrabServer control via XTEST.
25/10/2023 00:24:17 
25/10/2023 00:24:17 Scroll Detection: -scrollcopyrect mode is in effect to
25/10/2023 00:24:17   use RECORD extension to try to detect scrolling windows
25/10/2023 00:24:17   (induced by either user keystroke or mouse input).
25/10/2023 00:24:17   If this yields undesired behavior (poor response, painting
25/10/2023 00:24:17   errors, etc) it may be disabled via: '-noscr'
25/10/2023 00:24:17   Also see the -help entry for tuning parameters.
25/10/2023 00:24:17   You can press 3 Alt_L's (Left "Alt" key) in a row to 
25/10/2023 00:24:17   repaint the screen, also see the -fixscreen option for
25/10/2023 00:24:17   periodic repaints.
25/10/2023 00:24:17 
25/10/2023 00:24:17 XKEYBOARD: number of keysyms per keycode 7 is greater
25/10/2023 00:24:17   than 4 and 51 keysyms are mapped above 4.
25/10/2023 00:24:17   Automatically switching to -xkb mode.
25/10/2023 00:24:17   If this makes the key mapping worse you can
25/10/2023 00:24:17   disable it with the "-noxkb" option.
25/10/2023 00:24:17   Also, remember "-remap DEAD" for accenting characters.
25/10/2023 00:24:17 
25/10/2023 00:24:17 X FBPM extension not supported.
Xlib:  extension "DPMS" missing on display ":99".
25/10/2023 00:24:17 X display is not capable of DPMS.
25/10/2023 00:24:17 --------------------------------------------------------
25/10/2023 00:24:17 
25/10/2023 00:24:17 Default visual ID: 0x21
25/10/2023 00:24:17 Read initial data from X display into framebuffer.
25/10/2023 00:24:17 initialize_screen: fb_depth/fb_bpp/fb_Bpl 16/16/3840
25/10/2023 00:24:17 
25/10/2023 00:24:17 X display :99 is 16bpp depth=16 true color
25/10/2023 00:24:17 
25/10/2023 00:24:17 Autoprobing TCP port 
25/10/2023 00:24:17 Autoprobing selected TCP port 5900
25/10/2023 00:24:17 Autoprobing TCP6 port 
25/10/2023 00:24:17 Autoprobing selected TCP6 port 5900
25/10/2023 00:24:17 listen6: bind: Address already in use
25/10/2023 00:24:17 Not listening on IPv6 interface.
25/10/2023 00:24:17 
25/10/2023 00:24:17 Xinerama is present and active (e.g. multi-head).
25/10/2023 00:24:17 Xinerama: number of sub-screens: 1
25/10/2023 00:24:17 Xinerama: no blackouts needed (only one sub-screen)
25/10/2023 00:24:17 
25/10/2023 00:24:17 fb read rate: 1412 MB/sec
25/10/2023 00:24:17 fast read: reset -wait  ms to: 10
25/10/2023 00:24:17 fast read: reset -defer ms to: 10
25/10/2023 00:24:17 The X server says there are 10 mouse buttons.
25/10/2023 00:24:17 screen setup finished.

0
25/10/2023 00:24:17 
25/10/2023 00:24:17 WARNING: You are running x11vnc WITHOUT a password.  See
25/10/2023 00:24:17 WARNING: the warning message printed above for more info.
25/10/2023 00:24:17 
The VNC desktop is:      a979729088ed:0
******************************************************************************
Have you tried the x11vnc '-ncache' VNC client-side pixel caching feature yet?
The scheme stores pixel data offscreen on the VNC viewer side for faster
retrieval.  It should work with any VNC viewer.  Try it by running:
    x11vnc -ncache 10 ...
One can also add -ncache_cr for smooth 'copyrect' window motion.
More info: http://www.karlrunge.com/x11vnc/faq.html#faq-client-caching

Okay, so I might have fixed my error of “This browser or app may not be secure" using YTTV.

At this moment I am using the Windows version installed via with winget and node main.js and it wont let me log into my YouTube TV account from the CC4C chrome browser. But, I can log into a normal chrome browser. So I tried something old school and the CC4C browser now logs into nbc.com and tv.youtube.com just fine.

fix procedure:
-delete cc4c and start over
-remove/uninstall the normal chrome install and delete all cache and folders
-reinstall chrome v114 and turn off hardware acceleration
-log into nbc.com and also tv.youtube.com in normal chrome browser and view a stream from each
-reinstall cc4c and run ‘node main.js’ and open the ‘windy’ station
-close cc4c app / stop the node main.js
-browse the explorer to your normal chrome appdata folder in your user folder
-in the google chrome folder you will find your user data cache folder, copy the entire folder contents
-back in the chrome-capture-for-channels folder, there is a chrome cache folder there that has the same folders that you just copied from the normal chrome data
-paste your copied cache data into the cc4c folder that has the same folders
-start the ‘node main.js’
-try to tune any nbc.com channel now and it will already be logged into your YTTV account
-again, now try a tv.youtube.com channel and it will also be already logged in

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!