Chrome Capture for Channels

I'm using your files and setup everything new? Your bat file is giving me that error? when I run just the js it works?

I will look at it

1 Like

Does anyone have the correct format for the text m3u input for Hulu?

Is there a way I can make the macOS executable (chrome-capture-for-channels-macos-arm64) do its work headless without the user logged in?

I have the same thing happening to me. Clean install of everything (operating system, node, and all node modules).

I've tried with Google Chrome versions 129.0.6668.101, 130.0.6723.117, and 131.0.6778.70. Same results on all of them. Full clean installations each time

[2024/11/15 15:04:50.300] Chrome Capture server listening on port 5589
[2024/11/15 15:04:50.418] No channel specified in the URL.
[2024/11/15 15:04:50.418] 0 0
[2024/11/15 15:04:51.013] No channel specified in the URL.
[2024/11/15 15:04:51.017] 0 0
[2024/11/15 15:04:51.196] 0 0
[2024/11/15 15:04:51.215] failed to start browser page https://www.nbc.com/live?brand=msnbc Error: Failed to launch the browser process!


TROUBLESHOOTING: https://pptr.dev/troubleshooting

    at ChildProcess.onClose (C:\Users\Khaos\node_modules\@puppeteer\browsers\lib\cjs\launch.js:314:24)
    at ChildProcess.emit (node:events:519:35)
    at ChildProcess._handle.onexit (node:internal/child_process:294:12)
[2024/11/15 15:04:51.223] GET /stream?url=https://www.nbc.com/live?brand=msnbc&callsign=msnbc from ::ffff:192.168.0.10 responded 500 in 206.248 ms
[2024/11/15 15:04:51.237] Settings for URL http://www.google.com: Bitrate: 5940000, Audio: 192000, Frame Rate: 30
C:\Users\Khaos\node_modules\puppeteer-core\lib\cjs\puppeteer\cdp\LifecycleWatcher.js:103
            this.#terminationDeferred.resolve(new Error('Navigating frame was detached'));
                                              ^

Error: Navigating frame was detached
    at #onFrameDetached (C:\Users\Khaos\node_modules\puppeteer-core\lib\cjs\puppeteer\cdp\LifecycleWatcher.js:103:47)
    at C:\Users\Khaos\node_modules\puppeteer-core\lib\cjs\third_party\mitt\mitt.js:62:7
    at Array.map (<anonymous>)
    at Object.emit (C:\Users\Khaos\node_modules\puppeteer-core\lib\cjs\third_party\mitt\mitt.js:61:20)
    at CdpFrame.emit (C:\Users\Khaos\node_modules\puppeteer-core\lib\cjs\puppeteer\common\EventEmitter.js:83:23)
    at #removeFramesRecursively (C:\Users\Khaos\node_modules\puppeteer-core\lib\cjs\puppeteer\cdp\FrameManager.js:451:15)
    at #onClientDisconnect (C:\Users\Khaos\node_modules\puppeteer-core\lib\cjs\puppeteer\cdp\FrameManager.js:94:42)

Node.js v23.2.0
[2024/11/15 14:54:30.304] Chrome Capture server listening on port 5589
[2024/11/15 14:54:30.406] No channel specified in the URL.
[2024/11/15 14:54:30.407] 0 0
[2024/11/15 14:54:30.798] No channel specified in the URL.
[2024/11/15 14:54:30.798] 0 0
[2024/11/15 14:54:30.975] failed to start browser page https://www.nbc.com/live?brand=msnbc Error: Failed to launch the browser process!


TROUBLESHOOTING: https://pptr.dev/troubleshooting

    at ChildProcess.onClose (C:\Users\Khaos\node_modules\@puppeteer\browsers\lib\cjs\launch.js:314:24)
    at ChildProcess.emit (node:events:519:35)
    at ChildProcess._handle.onexit (node:internal/child_process:294:12)
[2024/11/15 14:54:30.980] GET /stream?url=https://www.nbc.com/live?brand=msnbc&callsign=msnbc from ::ffff:192.168.0.10 responded 500 in 180.403 ms
[2024/11/15 14:54:31.046] No channel specified in the URL.
[2024/11/15 14:54:31.047] 0 0
[2024/11/15 14:54:31.176] 0 0
[2024/11/15 14:54:31.180] Settings for URL http://www.google.com: Bitrate: 5940000, Audio: 192000, Frame Rate: 30
[2024/11/15 14:54:31.182] 0 0
[2024/11/15 14:54:31.183] Settings for URL https://www.nbc.com/live?brand=msnbc: Bitrate: 15400000, Audio: 192000, Frame Rate: 30
[2024/11/15 14:55:01.198] failed to start stream http://www.google.com TimeoutError: Timed out after waiting 30000ms
    at C:\Users\Khaos\node_modules\puppeteer-core\lib\cjs\puppeteer\common\util.js:258:19
    at C:\Users\Khaos\node_modules\puppeteer-core\lib\cjs\third_party\rxjs\rxjs.js:3986:35
    at OperatorSubscriber2._this._next (C:\Users\Khaos\node_modules\puppeteer-core\lib\cjs\third_party\rxjs\rxjs.js:1055:13)
    at Subscriber2.next (C:\Users\Khaos\node_modules\puppeteer-core\lib\cjs\third_party\rxjs\rxjs.js:678:16)
    at AsyncAction2.<anonymous> (C:\Users\Khaos\node_modules\puppeteer-core\lib\cjs\third_party\rxjs\rxjs.js:4863:24)
    at AsyncAction2._execute (C:\Users\Khaos\node_modules\puppeteer-core\lib\cjs\third_party\rxjs\rxjs.js:1974:16)
    at AsyncAction2.execute (C:\Users\Khaos\node_modules\puppeteer-core\lib\cjs\third_party\rxjs\rxjs.js:1963:26)
    at AsyncScheduler2.flush (C:\Users\Khaos\node_modules\puppeteer-core\lib\cjs\third_party\rxjs\rxjs.js:2235:30)
    at listOnTimeout (node:internal/timers:614:17)
    at process.processTimers (node:internal/timers:549:7) {
  [cause]: undefined
}

I found a solution (or maybe a workaround?) for this.

First, run the original CC4C Node.js files (from the fancybits GitHub) using the provided instructions, close that, THEN run the updated version posted by doug8796 from the same directory.

That cleared up all of the errors and random issues I was encountering. I'll put my steps below. The first 6 steps are pulled directly from the fancybits GitHub page for CC4C:

  1. winget install -e --id Git.Git
  2. winget install -e --id OpenJS.NodeJS
  3. git clone https://github.com/fancybits/chrome-capture-for-channels
  4. cd chrome-capture-for-channels
  5. npm install
  6. node main.js
  7. Login to whatever service(s) you plan to use with CC4C.
  8. Close Chrome and the active node command windows.
  9. Download and unzip doug8796's updated version to the same chrome-capture-for-channels folder that git created.
  10. Run doug8796's updated version with the provided .bat file OR node ncc-7-0.js
    NOTE: If you use the bat file, add %~dp0 as line 3 of that file for the sake of keeping everything in the working directory and allowing it to run as administrator (it shouldn't need to be run as admin, though)
  11. Everything should now be working properly with doug8796's update

EDIT: Thank you to DaveTheNerd for catching a missing hyphen in my node command in step 10!

3 Likes

Sorry haven't been messing with it for a minute

It's working well for me now that I went through all of that. HW Acceleration is working, too

2 Likes

Nice. What cpu

1 Like

Intel® Core™ i5-10500T CPU @ 2.30GHz
Intel® UHD Graphics 630
16GB of RAM

Sits at ~10% CPU and ~15% GPU utilization capturing MSNBC

I want to use Chrome Capture for Channels to be able to record PBS News Hour. The browser window presents a blue background with a large white start button that needs to be clicked on. Is there a way to send a mouse click or keyboard to the browser? Or is there some other way to get past this? Sorry details are light - I was observing this - I didn't setup the channel.

There are multiple better ways to get PBS working . Check the forums. Also newshour usually posts on YouTube but yes it's possible if you look at my code and chat gpt can figure it out for you

PBS via container is currently broken. Probably will be fixed soon, but it's a moving target.

Thanks for responses. We decided to train the elderly user on the Apple TV PBS app - it has the previous day's News Hour with just a short commercial at the beginning. We're coming off 20 years on Tivo/Cablecard.

That's kind of surprising. Do they use DRM or what's the hangup?

They changed the API, the PBS container is fixed now.

What's the process for getting it to work can you link the post?

1 Like

Start here: PBS Feeds - #192 by jcharr1

Anyone know how to set up Chrome Capture to record closed captions by default on some channels? Today I set up a recording on the Paramount Network and manually sat at my headless PC trying to trigger the CC button but couldn't figure it out. After futzing around and then plugging in a monitor directly, it turns out that the Spectrum UI was disabled somehow during the recording. I opened a new tab and the CC button appeared right away when I used the mouse. How can I make it where the menu is available for the recording or set it up to auto launch using the captions next time?

Use my code and chat gpt and make it mouse click like other sections for the watch.spectrum url for cc section