BETA: Chrome Capture for Channels

I would make sure you can log in via a chrome browser on the maching you are using for chrome capture. Also on you could have issues with VPN. Sorry, I don't have YTTV. Not much help.

Ran across this—-grabbing the URL from LiveTV in a web browser, and luckily it doesn’t change that often. CNN is currently https://tv.youtube.com/watch/4Ogm6iKafo4 , for instance. ESPN is https://tv.youtube.com/watch/bj3v-DQPnNs .

Also read YTTV is blocking some browsers.

So was able to get ABC to work, however CBS won't. On a regular browser, I can get the live stream to work, but when I try and use through Chrome Capture, even after entering my Hulu credentials again, it says "Your TV provider is not yet supported in your location."

No VPN in use at time of testing, so not sure what's causing the regular Chrome Browser to be able to watch but not in the Chrome Capture. Any ideas?

Haven't tested FOX yet, need to wait until there's actual content being brodcasted.

Thanks.

1 Like

Here are 3 streams running on the AMD 5800H. No borders and no stuttering.

CPU Usage

1 Like

I’m having the exact same issue as you. After I confirm YouTube TV as my provider, it just sits there indefinitely. Very frustrating…

For PBS specifically, I recommend doing this:

Works much better!

2 Likes

See:

2 Likes

Nothing wrong with that. :grinning:

Seems the GPU in the 5800H is taking on quite a bit of that load. I'm going to play with some other GPU's and see Chrome will take advantage of other hardware.

Well as far as my issue with "Watch | YES Network" its NOT the newer version of chrome blocking autoplay....i installed chrome 65 and still must click the volume button so back to the drawing board.

If any of you smart peeps want to dig in i can give u a login to see if its fixable.
seems way beyond my level.

1 Like

Appreciate the pointer…but I have a strong aversion to docker-based solutions. :smile: Would love to get something like this up and running natively on a Mac or elsewhere…if you know of any pointers, would welcome it.

I use macOS too but Docker Desktop has made the integration with Channels DVR pretty easy. I’m grateful for all of these (free!) integrations.

This executable is running here but a docker might work better?

Mine’s running Ventura, updated to the latest release. A few crashes, I’ve detailed two above, hopefully those can be resolved.

I think the best would be if this beta project could be added as an experimental feature to the core Channels DVR server software. And then when the kinks get worked out, as an official one. I’m not sure if that’s feasible or not but I believe in the audacity of hope.

2 Likes

Lets call this Dynamic Custom Channel:
I have this link to a beach cam: h ttp://bamabeachcams.com/sea-n-suds.aspx
I can use Chrome Capture for Channels to launch a Chrome window etc etc as this topic addresses.
I can also get an m3u url for this which works to make a Custom Channel, but lets say it Expires in 12 hours.
Not to bad, just keep updating the Custom Channel, but maybe there's a better way.
Here's what tmm1 says (somewhere):
"Chrome Capture for Channels captures the entire visible contents of the tab. Currently the code will look for a playing video on the page, size it...." etc
What if it could look for an m3u url on the page??
Then create a temp Dynamic Custom Channel, then the expires does not matter,
each time you use this it will get a new m3u with a new expires time.
This bypasses using a Chrome tab and the issues mentioned, borders, slow, etc
Thanks to anyone who cares to shoot this down, OR endorse.

@tmm1 Many of the sites that I was hoping to utilize your solution for are picky in that they seem to work best when used within a mobile browser. Is there any way to force an agent string that does not impact the rest of the user's chrome environment (ie only gets set for tabs that are instantiated by this package)? I am running the node package on M1 mac.

Edit: I managed to figure this out by adding this to the opts.args array object in main.js:

      `--args --user-agent='Mozilla/5.0 (Linux; {Android Version}; {Build Tag etc.}) AppleWebKit/{WebKit Rev} (KHTML, like Gecko) Chrome/{Chrome Rev} Mobile Safari/{WebKit Rev}'`,

Viewport scaling is handled much better now for the sites I am working with, but now the video no longer autoplays for me so I am trying to get that resolved.

1 Like

After doing more testing, I compared the picture quality between running in a Docker vs the stand alone Mac app (Intel).

My observations:

• When running via Docker, the picture is full screen with no discernible borders, however it is very choppy.

• When running via the stand alone Mac app, the picture has borders on the sides, however it is much smoother.

I’m puzzled as to why there are no borders when running via Docker…

Is your Mac’s display resolution greater than 1920x1080? I found that to be the key to get things borderless and at high quality.

My MacBook Pro display resolution is set to its highest setting of 1920x1200 and I still see the borders.

1 Like

I had issues until I had a greater width than 1920. I’m using a headless Mac mini though…with an HDMI dongle installed, I set it to 2560X1440. Works like a charm. Alternatively, you could edit the source to resize to 720p instead of 1080p. TL;DR: I believe, though I’d defer to the experts, your issue is that your width isn’t set to greater than 1920. Equal to 1920 won’t do the trick.

Best of luck.

1 Like

Wow! I was able to force the resolution to 2560x1600 and the borders are gone. Thanks so much for the suggestion. What would you suggest as the ideal resolution as I can go all the way up to 3840x2500…

CC4C is set to only record at 1080p. There’s really no value in going much beyond that - this is, after all, a screen capture of a livestream video tuned off of a website. I don’t believe most (all?) of the streams you would use this solution for even have 4K streams at this moment. I will let @tmm1 or others weigh in though.

To answer your original question: if you actually use the screen on the Mac…well, that’s up to you. :smile: If you don’t…I would set it to whatever the next resolution up from 1920x1080 that you have, unless you have a need for it. Larger resolutions = slightly higher memory consumption on a Mac. Given Apple Silicon’s shared memory model, that’s slightly less memory available for other apps running on the Mac. So why use more than you absolutely need for a given task?

Tagging @babsonnexus in case you want to add this to the FAQ…I’ve seen a couple of similar questions to this one.

@tmm1 the “your screen resolution must be set higher than 1920x1080” challenge (at least for Macs)…is there either a way around it (not sure if this is a puppeteer issue or something else), or perhaps if you detect the screen resolution is less than 1920x1080, you can set CC4C to record a 720p stream instead of trying for a 1080p one?

Just a couple of thoughts.

1 Like

Excellent explanation. I will do as you suggest and set the resolution just above 1920x1080. I would ultimately like to see this project rolled into Channels server. I wonder if this is on the roadmap…

Thanks again for you help :grinning:.

3 Likes