Chrome Capture for Channels

I upgraded to v0.1.9 last night. Did a quick test but didn't watch anything for more than a minute.

Today, the non-news channels using v.0.1.9 had a stuttering picture but not horrible. CNBC (lots of tickers, moving graphics, etc.) would play with increasing stuttering and eventually freeze, unable to recover. Non-news content did not have the issue of freezing, just nominal stuttering.

I removed v0.1.9 and reverted back to v0.1.8 and all channels, including CNBC look great.

Running on Win 11.

Hmm. Curious. What version macOS? It's working for me on Ventura 13.4.1 (the latest)

I’m also running the latest version of macOS. Does it open in Terminal or does it run silently in the background for you?

1 Like

Is anyone getting 60fps with this?
I have tried the windows and mac applications, as well as the node script for windows and channels always reports the frame rate at 30.

I can see in the node.js script the minimum is defined at 60

Mine opens in Terminal. I can minimize the window though. That’s all I’ve handled so far, works for me. Until this is rock solid I want to see the Terminal logging commands and/or crashes.

2 Likes

I didnt change anything, but rebooted and now it is working. However, now the server is re-scanning everything on my local content. It is doubling up every movie i have and none are able to be watched... It says it is "Regenerating video index for..." for everymovie which is causing it to double up all of the movies in my library. If i try to watch anything from a remote client, i get a "Connection Lost" error. I have never had it do this.

2 Likes

I get garbled audio when I minimize. I have to run full screen anyways to remove the borders, so I guess it doesn't matter really.
edit...
You mean minimize the terminal, not Chrome.

1 Like

I have defined this custom channel:

image

The guide looks correct:

I tried to watch the channel from my Android phone and got "Connection Lost (-17)" on the phone.

In the terminal window:

[2023/06/23 21:27:42.344] failed to start stream undefined TargetCloseError: Protocol error (Runtime.callFunctionOn): Target closed
    at CallbackRegistry.clear (C:\snapshot\chrome-capture-for-channels\node_modules\puppeteer-core\lib\cjs\puppeteer\common\Connection.js:153:36)
    at CDPSessionImpl._onClosed (C:\snapshot\chrome-capture-for-channels\node_modules\puppeteer-core\lib\cjs\puppeteer\common\Connection.js:468:70)
    at Connection.onMessage (C:\snapshot\chrome-capture-for-channels\node_modules\puppeteer-core\lib\cjs\puppeteer\common\Connection.js:265:25)
    at WebSocket.<anonymous> (C:\snapshot\chrome-capture-for-channels\node_modules\puppeteer-core\lib\cjs\puppeteer\common\NodeWebSocketTransport.js:62:32)
    at callListener (C:\snapshot\chrome-capture-for-channels\node_modules\ws\lib\event-target.js:290:14)
    at WebSocket.onMessage (C:\snapshot\chrome-capture-for-channels\node_modules\ws\lib\event-target.js:209:9)
    at WebSocket.emit (node:events:537:28)
    at Receiver.receiverOnMessage (C:\snapshot\chrome-capture-for-channels\node_modules\ws\lib\websocket.js:1184:20)
    at Receiver.emit (node:events:537:28)
    at Receiver.dataMessage (C:\snapshot\chrome-capture-for-channels\node_modules\ws\lib\receiver.js:541:14)
[2023/06/23 21:27:42.351] GET /stream/cbnc from ::ffff:127.0.0.1 responded 500 in 1013.111 ms

Running chrome-capture-for-channels-win-x64.exe v0.1.9 on the same machine as Channels DVR Version 2023.06.23.0108.

Chrome is up to date
Version 114.0.5735.134 (Official Build) (64-bit)

Would anybody know whether there is anything wrong in my M3U?

1 Like

I can't tell you if this is the same problem I had (same error message as you) but I switched to the alternate URL in the M3U.

Here's my entry for CNBC:

chrome://x.x.x.x:5589/stream?url=https://www.nbc.com/live?brand=cnbc&callsign=cnbc

With different versions of the chrome-capture, the "short" URL method gave me problems. The one I used above for all channels works all of the time.

3 Likes

Thank you, @mike_here! It works now with the full URL. :smiley:

1 Like

Have an odd problem and not sure what's going on. I use Tivimate on a Shield Pro to watch my Channels DVR (hosted on a m1 Mac mini) for multi view purposes. When using this exe, the first stream plays wonderfully but the second I change the channel, all subsequent streams are all of very low quality. I tried forcing higher bitrate and resolution in the m3u link with no change. When i added &codec=copy to the end of the m3u, it then would play high quality video but included no audio track. I even tried changing the audio codec with acodec=mp3 and aac with no help. Anyone have any ideas?

Excited about this development. Will be great when NFL season rolls around with Sunday Ticket on YouTube TV

Last night, I recorded a two hour program on NBC. I noticed that the recording was flagged as interrupted. When I tried to watch it, it started out full screen, however when I got to the part where the recording was interrupted, it shifted to a severely cropped window for the rest of the program essentially making it unwatchable. Until this issue is fixed, I cannot depend on this method, I really hope they can figure this out…

1 Like

I got this up and running yesterday, even got Showtime and Starz to play. Then I tried setting up a recording from Starz and when I went back to check on it, it never started. Going to the ChromeCapture server, I noticed it crashed. Here's the message.

➜  downloads ./chrome-capture-for-channels-macos-x64
[2023/06/23 19:33:20.299] Chrome Capture server listening on port 5589
[2023/06/23 20:00:46.388] streaming https://www.starz.com/us/en/play/26020
[2023/06/23 20:38:33.468] GET /stream?url=https://www.starz.com/us/en/play/26020 from ::ffff:192.168.4.13 responded 200 in 3041.883 ms
/snapshot/chrome-capture-for-channels/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Connection.js:429
            return Promise.reject(new Errors_js_1.TargetCloseError(`Protocol error (${method}): Session closed. Most likely the ${__classPrivateFieldGet(this, _CDPSessionImpl_targetType, "f")} has been closed.`));
                                  ^

TargetCloseError: Protocol error (Runtime.callFunctionOn): Session closed. Most likely the page has been closed.
    at CDPSessionImpl.send (/snapshot/chrome-capture-for-channels/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Connection.js:429:35)
    at ExecutionContext._ExecutionContext_evaluate (/snapshot/chrome-capture-for-channels/node_modules/puppeteer-core/lib/cjs/puppeteer/common/ExecutionContext.js:244:46)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async ExecutionContext.evaluate (/snapshot/chrome-capture-for-channels/node_modules/puppeteer-core/lib/cjs/puppeteer/common/ExecutionContext.js:145:16)

Node.js v18.5.0
2 Likes

I have the same problem and I think it's because I have an older Nvidia gtx750ti card that I think Chrome is using for the encoding. Not sure if that's the case but others have reported 60 FPS with newer cards.

Ok i cant seem to get the whole Power Shell thing to work on Win10 running latest Chrome Capture exe

here's my folder layout in my "DVR server"

C:\Chrome Capture
chrome-capture-for-channels-win-x64.exe

chrome-capture-for-channels-win-x64.ps1
(Start-Process -WindowStyle hidden C:\Chrome Capture\chrome-capture-for-channels-win-x64.exe)

Then i followed the PowerShell setup links online BUT i think my issue is in the above info/settings

If i leave the server script running i can acces the channels from the guide BUT cant get it running automatically

This may be simple for some BUT for whatever reason im stumped for now

Thanks for any insight

3 Likes

It's working pretty well over here, as I continue testing. I did have another crash though:


[2023/06/24 00:11:03.543] GET /stream?url=https://tv.youtube.com/watch/ecmqotbt12s from ::1 responded 200 in 3112.166 ms
[2023/06/24 00:11:03.784] finished https://tv.youtube.com/watch/ecmqotbt12s
[2023/06/24 05:55:37.640] streaming https://www.nbc.com/live?brand=syfy&callsign=syfy_west
[2023/06/24 05:56:11.764] GET /stream/syfyp from ::1 responded 200 in 3192.381 ms
[2023/06/24 05:56:12.263] finished https://www.nbc.com/live?brand=syfy&callsign=syfy_west
[2023/06/24 05:56:12.304] streaming https://tv.youtube.com/watch/ecmqotbt12s
node:internal/process/promises:288
            triggerUncaughtException(err, true /* fromPromise */);
            ^

[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "undefined".] {
  code: 'ERR_UNHANDLED_REJECTION'
}

Node.js v18.5.0

Saving session...
1 Like

Your path needs to be inside quotes. It should be Start-Process -WindowStyle hidden "C:\Chrome Capture\chrome-capture-for-channels-win-x64.exe"

Quotes are also necessary in your "Action" settings for the path in Task Scheduler:

image

Without seeing screen shots of your other settings, it is impossible to determine where other issues may be.

Thankyou for the starting points I won't be home till late tonight BUT I'll get screenshot if still no go

2 Likes

@babsonnexus and I have reported issues with playback of recorded shows using Chrome capture. I have full details here:

Does anybody else have issues other than the picture size with recorded programs using Chrome capture?

The biggest problem for me is that I can't open the recordings in a video editor.

1 Like

Spectrum's streaming site is working for me. My url to go straight to Bravo, for example, is:

https://watch.spectrum.net/livetv?tmsid=58625

If you'll tune into each channel using their guide, you can check the resulting url to get that tmsid number for your channels of choice.

Thank you @tmm1, this is super cool. :smile:

1 Like