I just launch it directly by double-clicking it. You can also add it to your list of apps to start up automatically when booting up, via System Settings > General > Login Items, at least on macOS Ventura.
I'm probably misunderstanding the question, but under the "Create a launcher" step, I didn't really have to do anything on my M1 Mac. I downloaded the latest arm64 version, moved it to where I wanted it to be, then unzipped it. After unzipping it, I right-clicked on the"chrome-capture-for-channels-macos-arm64" exec file, and chose "Open." It then ran in Terminal, with a message "Chrome Capture server listening on port 5589."
Some things to watch for:
- If you don't right-click, and only doubles click, you get a permission message the very first time you launch it (but not on subsequent attempts).
- Also, there have been a few times where it opens, and I get a bunch of text in Terminal, but no message that it is listening. The problem has always been that there's still a background process of Chrome Capture running from a previous launch. I use Activity Monitor to find it and force quit it.
I’ve tried this on macOS, however it never starts. I had to use an AppleScript to launch it at start up…
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?
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.
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.
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.
I have defined this custom channel:

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?
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.
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…
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
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
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...
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:

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

