BETA: Chrome Capture for Channels

Thanks. That was a rookie mistake on my part. I should have known better. Always make sure to install the pre-release.

I think my issue with chrome was it was being blocked by the network. I finally got a prompt to allow access and chrome opened fine. I went to the new github page and got Chrome Capture server from there and ran it. My PC might be too slow, but at least it opened chrome.

1 Like

My Channels dvr is on my Synology and im using a windows PC on the same network.
The system lets me add the channel but it isn't connecting to the source was trying to play a Philo channel through channels.
i'm using Teamviewer to remote access the system.
if i turn on computer sound, i can hear audio from Chrome. no video
What am i missing?

Since I was waiting during a maintenance window took an additional look and simply needed to add "waitForVideo = false" for each of my Hulu streams

switch (name) {
      case 'weatherscan':
      case 'windy':
        waitForVideo = false
      case 'boomerang':
        waitForVideo = false
      case 'bet_her':
        waitForVideo = false
      }

Hi,
I've got the container running on my synology.
I'm wondering how to make it capture the streaming.
I'm probably looking at the URL method.
Looking for a way to insert a log in to a paid service.
Looking forward to any input.

1 Like

Has anyone tried both this and HDMI for Channels, who can compare them? Can this be used with a service like YouTube TV to change channels, or does it have to stay on one channel/stream? Can it be used as a source to watch multiple channels on different clients, or just one at a time?

I have tried them both and there are a few rough edges (at least from my perspective) that needs ironing out. Each time the NBC site is launched I am forced to verify provider so at least for now its not fully automated. HDMI for channels has been chucking along nicely.

EDIT: I'll try with HULU this evening.

2 Likes

Thanks @tmm1! It was fun testing with you and seeing the early parts of this come together. Since this does everything PC Stream for Channels was set out to do, I'll be deprecating that.

2 Likes

I'm running into the following error each time I attempt to watch either CNBC or Weatherscan

node:internal/errors:496
ErrorCaptureStackTrace(err);
^

Error: spawn UNKNOWN
at ChildProcess.spawn (node:internal/child_process:420:11)
at Object.spawn (node:child_process:757:9)
at new Process (C:\Users\chrome-capture-for-channels\node_modules\puppeteer-stream\node_modules@puppeteer\browsers\lib\cjs\launch.js:143:87)
at launch (C:\Users\chrome-capture-for-channels\node_modules\puppeteer-stream\node_modules@puppeteer\browsers\lib\cjs\launch.js:80:12)
at ChromeLauncher.launch (C:\Users\chrome-capture-for-channels\node_modules\puppeteer-stream\node_modules\puppeteer-core\lib\cjs\puppeteer\node\ProductLauncher.js:90:54)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
errno: -4094,
code: 'UNKNOWN',
syscall: 'spawn'
}

Node.js v20.3.0

I installed the Docker in Windows and it is working as described (i.e, you cannot log in to providers).

FYI, NBC News Now seems to work without a log in, so it had that going for it!

Weatherscan couldn't seem to figure out my location and gave me a blank generic screen, but Windy had no issue.

1 Like

Try hanging x11vnc off of the Xvfb:

x11vnc -display :99 

Substitute 99 for the ID that the docker container is starting. Then you can VNC into the session to login.

3 Likes

I think I've caused the same issue. After trying to watch in the Web UI, I started to get page not found errors in the Client UI. Rebooted everything, reinstalled the Docker, now cannot connect at all.

2023-06-20 09:40:05 Chrome Capture server listening on port 5589
2023-06-20 09:41:28 streaming https://www.nbc.com/live?brand=nbc-news&callsign=nbcnews
2023-06-20 09:41:32 failed to stream https://www.nbc.com/live?brand=nbc-news&callsign=nbcnews Error: net::ERR_ADDRESS_UNREACHABLE at https://www.nbc.com/live?brand=nbc-news&callsign=nbcnews
2023-06-20 09:41:32     at navigate (/home/chrome/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Frame.js:111:23)
2023-06-20 09:41:32     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
2023-06-20 09:40:04 _XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created.
2023-06-20 09:47:18 (EE) 
2023-06-20 09:47:18 Fatal server error:
2023-06-20 09:47:18 (EE) Server is already active for display 99
2023-06-20 09:47:18     If this server is no longer running, remove /tmp/.X99-lock
2023-06-20 09:47:18     and start again.
2023-06-20 09:47:18 (EE) 
2023-06-20 09:51:38 /home/chrome/node_modules/@puppeteer/browsers/lib/cjs/launch.js:259
2023-06-20 09:51:38                 reject(new Error([
2023-06-20 09:51:38                        ^
2023-06-20 09:51:38 
2023-06-20 09:51:38 Error: Failed to launch the browser process!
2023-06-20 09:51:38 [16:38:0620/135138.729470: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
2023-06-20 09:51:38 [16:16:0620/135138.799491:ERROR:ozone_platform_x11.cc(239)] Missing X server or $DISPLAY
2023-06-20 09:51:38 [16:16:0620/135138.799876:ERROR:env.cc(255)] The platform failed to initialize.  Exiting.
2023-06-20 09:51:38 [0620/135138.835230:ERROR:nacl_helper_linux.cc(355)] NaCl helper process running without a sandbox!
2023-06-20 09:51:38 Most likely you need to configure your SUID sandbox correctly
2023-06-20 09:51:38 
2023-06-20 09:41:32     at async Deferred.race (/home/chrome/node_modules/puppeteer-core/lib/cjs/puppeteer/util/Deferred.js:87:20)
2023-06-20 09:41:32     at async Frame.goto (/home/chrome/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Frame.js:77:21)
2023-06-20 09:41:32     at async CDPPage.goto (/home/chrome/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Page.js:444:16)
2023-06-20 09:41:32     at async /home/chrome/main.js:212:7
2023-06-20 09:41:44 finished https://www.nbc.com/live?brand=nbc-news&callsign=nbcnews
2023-06-20 09:41:53 streaming https://windy.com
2023-06-20 09:41:56 failed to stream https://windy.com Error: net::ERR_ADDRESS_UNREACHABLE at https://windy.com
2023-06-20 09:41:56     at navigate (/home/chrome/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Frame.js:111:23)
2023-06-20 09:41:56     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
2023-06-20 09:41:56     at async Deferred.race (/home/chrome/node_modules/puppeteer-core/lib/cjs/puppeteer/util/Deferred.js:87:20)
2023-06-20 09:41:56     at async Frame.goto (/home/chrome/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Frame.js:77:21)
2023-06-20 09:41:56     at async CDPPage.goto (/home/chrome/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Page.js:444:16)
2023-06-20 09:41:56     at async /home/chrome/main.js:212:7
2023-06-20 09:42:06 finished https://windy.com
2023-06-20 09:47:24 Chrome Capture server listening on port 5589
2023-06-20 09:51:38 
2023-06-20 09:51:38 TROUBLESHOOTING: https://pptr.dev/troubleshooting
2023-06-20 09:51:38 
2023-06-20 09:51:38     at Interface.onClose (/home/chrome/node_modules/@puppeteer/browsers/lib/cjs/launch.js:259:24)
2023-06-20 09:51:38     at Interface.emit (node:events:525:35)
2023-06-20 09:51:38     at Interface.close (node:internal/readline/interface:533:10)
2023-06-20 09:51:38     at Socket.onend (node:internal/readline/interface:259:10)
2023-06-20 09:51:38     at Socket.emit (node:events:525:35)
2023-06-20 09:51:38     at endReadableNT (node:internal/streams/readable:1359:12)
2023-06-20 09:51:38     at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
2023-06-20 09:51:38 
2023-06-20 09:51:38 Node.js v18.16.0
2023-06-20 09:51:40 (EE) 
2023-06-20 09:51:40 Fatal server error:
2023-06-20 09:51:40 (EE) Server is already active for display 99
2023-06-20 09:51:40     If this server is no longer running, remove /tmp/.X99-lock
2023-06-20 09:51:40     and start again.
2023-06-20 09:51:40 (EE) 
2023-06-20 09:51:51 /home/chrome/node_modules/@puppeteer/browsers/lib/cjs/launch.js:259
2023-06-20 09:51:51                 reject(new Error([
2023-06-20 09:51:51                        ^
2023-06-20 09:51:51 
2023-06-20 09:51:51 Error: Failed to launch the browser process!
2023-06-20 09:51:51 [16:38:0620/135151.704134: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
2023-06-20 09:51:43 Chrome Capture server listening on port 5589
2023-06-20 09:51:51 [16:16:0620/135151.753393:ERROR:ozone_platform_x11.cc(239)] Missing X server or $DISPLAY
2023-06-20 09:51:51 [16:16:0620/135151.753749:ERROR:env.cc(255)] The platform failed to initialize.  Exiting.
2023-06-20 09:51:51 [0620/135151.800964:ERROR:nacl_helper_linux.cc(355)] NaCl helper process running without a sandbox!
2023-06-20 09:51:51 Most likely you need to configure your SUID sandbox correctly
2023-06-20 09:51:51 
2023-06-20 09:51:51 
2023-06-20 09:51:51 TROUBLESHOOTING: https://pptr.dev/troubleshooting
2023-06-20 09:51:51 
2023-06-20 09:51:51     at Interface.onClose (/home/chrome/node_modules/@puppeteer/browsers/lib/cjs/launch.js:259:24)
2023-06-20 09:51:51     at Interface.emit (node:events:525:35)
2023-06-20 09:51:51     at Interface.close (node:internal/readline/interface:533:10)
2023-06-20 09:51:51     at Socket.onend (node:internal/readline/interface:259:10)
2023-06-20 09:51:51     at Socket.emit (node:events:525:35)
2023-06-20 09:51:51     at endReadableNT (node:internal/streams/readable:1359:12)
2023-06-20 09:51:51     at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
2023-06-20 09:51:51 
2023-06-20 09:51:51 Node.js v18.16.0
2023-06-20 09:51:52 (EE) 
2023-06-20 09:51:52 Fatal server error:
2023-06-20 09:51:52 (EE) Server is already active for display 99
2023-06-20 09:51:52     If this server is no longer running, remove /tmp/.X99-lock
2023-06-20 09:51:52     and start again.
2023-06-20 09:51:52 (EE) 
2023-06-20 09:51:53 Chrome Capture server listening on port 5589

Tried the x11vnc in the terminal and got this:


$ x11vnc -display :99
###############################################################
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
#@                                                           @#
#@  **  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!! <<< @#
#@                                                           @#
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
#@                                                           @#
#@  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.               @#
#@                                                           @#
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#
###############################################################
20/06/2023 13:55:13 x11vnc version: 0.9.16 lastmod: 2019-01-05  pid: 22
20/06/2023 13:55:13 XOpenDisplay(":99") failed.
20/06/2023 13:55:13 Trying again with XAUTHLOCALHOSTNAME=localhost ...

20/06/2023 13:55:13 ***************************************
20/06/2023 13:55:13 *** 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
1 Like

It might be using a different screen ID other than 99. I don't have the docker container here but will look into installing later today/tomorrow.

In the meantime try listing the ps and see if the screen is defined:

ps -ef|grep Xvfb

I tried the Windows version. It doesn't have the issue with Weatherscan that the Docker one did, so that was a plus. Also, I seem to be able to play in the Web UX without much issue. However...

(1) Chrome stays open even after the stream is closed. Would want to close the whole window.

(2) I still cannot log in with Cox. It is still giving me the Error 15. I wondered if it had to do with opening a Chrome window without a user logged in, but I created my profile in that Chrome and it made no difference. It is very specifically Cox because I tried dozens of other providers and they all brought me to their login pages. Okay, I cound a workaround for this. I had to launch with something like Windy, then go to login.cox.com and log in directly. It still brought me to the error page, but it appeared to be enough to capture my credentials. Once I launched an NBC station, it asked me to pick a provider. I picked Cox and it logged in. Every launch after that has gone as expected!

For those looking for the Custom Channel setup:

Or with MPEG-TS instead of HLS...

... seems a bit faster and more stable.

And here is the source text:

#EXTM3U

#EXTINF:-1 channel-id="Windy",Windy
chrome://localhost:5589/stream/windy

#EXTINF:-1 channel-id="Weatherscan",Weatherscan
chrome://localhost:5589/stream/weatherscan

#EXTINF:-1 channel-id="NBC News Now",NBC News Now
chrome://localhost:5589/stream/nbcnews

#EXTINF:-1 channel-id="NBC Local",NBC Local ({YOUR STATION ID HERE})
chrome://localhost:5589/stream/nbc

#EXTINF:-1 channel-id="Bravo (East)",Bravo (East)
chrome://localhost:5589/stream/bravo

#EXTINF:-1 channel-id="Bravo (West)",Bravo (West)
chrome://localhost:5589/stream/bravop

#EXTINF:-1 channel-id="CNBC",CNBC
chrome://localhost:5589/stream/cnbc

#EXTINF:-1 channel-id="E! (East)",E! (East)
chrome://localhost:5589/stream/e

#EXTINF:-1 channel-id="E! (West)",E! (West)
chrome://localhost:5589/stream/ep

#EXTINF:-1 channel-id="Golf",Golf
chrome://localhost:5589/stream/golf

#EXTINF:-1 channel-id="MSNBC",MSNBC
chrome://localhost:5589/stream/msnbc

#EXTINF:-1 channel-id="Oxygen (East)",Oxygen (East)
chrome://localhost:5589/stream/oxygen

#EXTINF:-1 channel-id="Oxygen (West)",Oxygen (West)
chrome://localhost:5589/stream/oxygenp

#EXTINF:-1 channel-id="SyFy (East)",SyFy (East)
chrome://localhost:5589/stream/syfy

#EXTINF:-1 channel-id="SyFy (West)",SyFy (West)
chrome://localhost:5589/stream/syfyp

#EXTINF:-1 channel-id="USA (East)",USA (East)
chrome://localhost:5589/stream/usa

#EXTINF:-1 channel-id="USA (West)",USA (West)
chrome://localhost:5589/stream/usap

You can also change "localhost" to the IP Address of where you have this installed. You could also put additional things like setting the station numbers to match to the old TVE numbers, if you wish.

Note that I did not put Universo in there because I do not have access, but it would be:

#EXTINF:-1 channel-id="Universo (East)",Universo(East)
chrome://localhost:5589/stream/universo

#EXTINF:-1 channel-id="Universo (West)",Universo (West)
chrome://localhost:5589/stream/universop

Stations added in v0.11 (these require special access):

#EXTINF:-1 channel-id="NECN",NECN
chrome://localhost:5589/stream/necn

#EXTINF:-1 channel-id="NBC Sports Bay Area",NBC Sports Bay Area
chrome://localhost:5589/stream/nbcsbayarea

#EXTINF:-1 channel-id="NBC Sports Boston",NBC Sports Boston
chrome://localhost:5589/stream/nbcsboston

#EXTINF:-1 channel-id="NBC Sports California",NBC Sports California
chrome://localhost:5589/stream/nbcscalifonia

#EXTINF:-1 channel-id="NBC Sports Chicago",NBC Sports Chicago
chrome://localhost:5589/stream/nbcschicago

#EXTINF:-1 channel-id="NBC Sports Philadelphia",NBC Sports Philadelphia
chrome://localhost:5589/stream/nbcsphiladelphia

#EXTINF:-1 channel-id="NBC Sports Washington",NBC Sports Washington
chrome://localhost:5589/stream/nbcswashington

@tmm1, in the main.js, Universo (West) should have a 'p' at the end. Right now both East and West are the same: Fixed v0.11

Also, you are missing the Telemundo (Local).

If you check to manage lineup, you should have things already mapped for you (or at least I did; I had so many moving parts I wasn't sure if this was automatic or if it picked up on something I did before):

6 Likes

Could this potentially be used to record my chrome browser playing MLB.tv if I were to log in with my credentials, and start a stream manually? One of the killer features I've been hoping for was the ability to record and save archived games that I have access to using my MLB.tv login. Also in theory, I'd love to switch the audio to the radio broadcast and record that stream as I could not l never get that working in the MLB.tv docker.

I recorded a full episode of "Shark Tank" on CNBC last night. There is some good news and bad news.

I'll start with the good news...

Channels reports that the recording completed without any issues:

No errors reported in the Chrome Capture terminal:

C:\Users\mjitk\chrome-capture-for-channels>node main.js
Chrome Capture server listening on port 5589
streaming https://www.nbc.com/live?brand=cnbc&callsign=cnbc
finished https://www.nbc.com/live?brand=cnbc&callsign=cnbc
streaming https://www.nbc.com/live?brand=cnbc&callsign=cnbc
finished https://www.nbc.com/live?brand=cnbc&callsign=cnbc

I'm not sure if the reason for the 2 connections is because I first watched the channel live before the recording, I don't remember. Maybe it would be good to add timestamps. :wink:

I was able to start playing the recording in VLC with both video and audio, both in sync. :+1:

That was the good news. Now, the bad news...

When viewing the details of the recording, it shows audio bit rate of zero:

MediaInfo:

General
ID/String                        : 1 (0x1)
CompleteName                     : D:\DVR\TV\Shark Tank\Shark Tank S12E01 2020-10-16 2023-06-19-2314.mpg
Format/String                    : MPEG-TS
FileSize/String                  : 1.64 GiB
Duration/String                  : 1 h 3 min
OverallBitRate_Mode/String       : Variable
OverallBitRate/String            : 3 669 kb/s
FrameRate/String                 : 30.000 FPS
FileExtension_Invalid            : ts m2t m2s m4t m4s tmf ts tp trp ty

Video
ID/String                        : 256 (0x100)
MenuID/String                    : 1 (0x1)
Format/String                    : AVC
Format/Info                      : Advanced Video Codec
Format_Profile                   : Constrained Baseline@L4
Format_Settings                  : 2 Ref Frames
Format_Settings_CABAC/String     : No
Format_Settings_RefFrames/String : 2 frames
Format_Settings_GOP              : M=1, N=102
CodecID                          : 27
Duration/String                  : 1 h 3 min
Width/String                     : 1 920 pixels
Height/String                    : 1 080 pixels
DisplayAspectRatio/String        : 16:9
FrameRate/String                 : 30.000 FPS
ColorSpace                       : YUV
ChromaSubsampling/String         : 4:2:0
BitDepth/String                  : 8 bits
ScanType/String                  : Progressive

Audio
ID/String                        : 257 (0x101)
MenuID/String                    : 1 (0x1)
Format/String                    : Opus
CodecID                          : 6
Compression_Mode/String          : Lossy
Language/String                  : English
descriptor_tag_extension         : 128

Menu
ID/String                        : 4096 (0x1000)
MenuID/String                    : 1 (0x1)
Format/String                    : AVC / Opus
Duration/String                  : 1 h 3 min
List/String                      : 256 (0x100) (AVC) / 257 (0x101) (Opus, English)
Language/String                  :  / English
ServiceName                      : Service01
ServiceProvider                  : FFmpeg
ServiceType                      : digital television

During playback in VLC, I noticed that it jumps sometimes but I only noticed it during commercials.

The picture size is a little bit off:

This can be seen in more details when I loaded the video in HandBrake with automatic video cropping to remove the black bars around the picture:

Also notice that HandBrake reports no audio tracks even though it's fine in VLC.

VideReDo could not open the file:

When it's done, it leaves the Chrome window open like this:

I don't know whether it is too late now or even if this will be useful but just in case:
Logs have been submitted as bbdba5f7-3fef-4b7d-a1d0-a8165a66ada9 .

If there is anything else I can provide, let me know.

I did a 3-minute test recording and saw it do this in the client playback during the regular show time, telling me it is in the recording this way. This makes me believe it is either how Chrome Capture works that has some inefficiencies, or something to do with local memory management.

1 Like

Is the Stream Format supposed to be HLS?

...or MPEG-TS?

Neat!

Confirming that if you login to Google manually in the Puppeteer controlled Chrome instance the following works for YouTubeTV.

#EXTM3U

#EXTINF:-1 channel-id="50001",ESPN
chrome://x.x.x.x:5589/stream?url=https://tv.youtube.com/watch/k-KlMzmHTAo
3 Likes