BETA: Chrome Capture for Channels

If anyone can stop the YES login from Muting itself I'd truly be in you debt.....Ive tried many many things all with no luck BUT i can only run the Windows EXE no docker knowledge.

Heck id even offer up a YES login to get it fixed

https://watchyesnetwork.com/watch

I really would like to know if this is a feature of the app that I just could not figure out.

Well, anyway, I couldn't find anything about being able to click the 'play' button on this Amazon Prime page or even any web page

So, I just wrote a junky powershell to fix my need for this.
--powershell runs in a endless loop watching the chrome tabs for a tab with my show name
--when it discovers any chrome tab window, it starts a pre-saved mouse macro that does the mouse move/clicks
-- it loops and monitors the page for up to 2 minutes while the mouse macro is playing to click the buttons needed, at the end of 2 minutes it makes sure the mouse macro is taskkill
--after that it loops and monitors the tab windows (that is recording or playing) to watch if the page is still playing for 60 minutes
--if the tab window stops playing at any time during the loop, it closes the loop and resets the timers and restarts a new loop and watches for the 'show named' tab to open again, thus restarting the entire cycle again

I've beat up testing this process with 100% success everytime, but it's ugly in my opinion

and yes, it just ignores any tab that does not have my show name in the tab title

# 'MYSHOWTITLE' in this script is the name presented in the chrome tab title
# 'MacroRecorder.exe' is my mouse program that physically acts like a mouse movement and clicker
# '.\MYSHOWTITLE_click.mcr' is the file script saved from the app MacroRecorder.exe
$global:TestFile = $null
$global:ChromeIS = $null
$global:chrometitle = $null
$global:i = $null

timeout 3

taskkill /f /t /im MacroRecorder.ex*

timeout 3

$global:TestFile = '.\PageRunning.txt'
if (Test-Path $global:TestFile) {
 Remove-Item $global:TestFile -force
 }
timeout 3

function ChromeStatus {
 $global:ChromeIS = 2
 $global:chrometitle = Get-Process chrome | select -expandproperty MainWindowTitle
 if ($global:chrometitle -like "*MYSHOWTITLE*") { Write-host "-0- MYSHOWTITLE is playing now" } else { Write-host "-1- MYSHOWTITLE page not playing" }
 if ($global:chrometitle -like "*MYSHOWTITLE*") { $global:ChromeIS = 0 } else { $global:ChromeIS = 1 }
write-host "--- $global:ChromeIs ---"
}

function ChromeAction {
 $global:ChromeIS = 2
 $global:chrometitle = Get-Process chrome | select -expandproperty MainWindowTitle
 if ($global:chrometitle -like "*MYSHOWTITLE*") { Write-host "-0- MYSHOWTITLE is playing now" } else { Write-host "-1- MYSHOWTITLE page not playing" }
 if ($global:chrometitle -like "*MYSHOWTITLE*") { $global:ChromeIS = 0 } else { $global:ChromeIS = 1 }
write-host ("--- $global:ChromeIs ---")
if ($global:chrometitle -like "*MYSHOWTITLE*") { 
 Write-Host ("-0- Yes MYSHOWTITLE page is playing") > $global:TestFile
write-host ("--- $global:ChromeIs ---")
 timeout 5
 StartMouseClicks
 StartUpWaiting
 RecordingWaiting
 Remove-Item $global:TestFile -force
 } else { 
 Write-Host ("-1- NO MYSHOWTITLE page not found")
write-host ("--- $global:ChromeIs ---")
 if (Test-Path $global:TestFile) {
  Remove-Item $global:TestFile -force
 Write-Host ("-1- NO MYSHOWTITLE page not found again")
  timeout 2
 }
}
}

function StartMouseClicks {
 write-host "start MacroRecorder"
 taskkill /f /t /im MacroRecorder.ex*
 timeout 2
 .\MYSHOWTITLE_click.mcr
 timeout 2
}

# timer set to 21/25 is equal to approximately 2 minutes
function StartUpWaiting {
 for ($i = 1; $i -le 25; $i++) {
  Write-Host "$i count while waiting during startup"
  if ($i -eq 21) {
   break
  }
 $global:chrometitle = Get-Process chrome | select -expandproperty MainWindowTitle
 if ($global:chrometitle -like "*MYSHOWTITLE*") { Write-host "-0- MYSHOWTITLE startup is still playing" } else { Write-host "-1- MYSHOWTITLE page not playing" }
 if ($global:chrometitle -like "*MYSHOWTITLE*") { $global:ChromeIS = 0 } else { $global:ChromeIS = 1 }
 write-host ("--- $global:ChromeIs ---")
 if ($global:chrometitle -like "*MYSHOWTITLE*") { Write-Host "YES MYSHOWTITLE page is streaming" } else { 
 write-host "stopping MacroRecorder"
 taskkill /f /t /im MacroRecorder.ex*
 break }
   timeout 5
 }
}

# timer set to 830/840 is equal to 69 minutes
function RecordingWaiting {
 for ($i = 1; $i -le 840; $i++) {
  Write-Host "$i count while recording show"
  if ($i -eq 830) {
   break
  }
 $global:chrometitle = Get-Process chrome | select -expandproperty MainWindowTitle
 if ($global:chrometitle -like "*MYSHOWTITLE*") { Write-host "-0- MYSHOWTITLE is still playing" } else { Write-host "-1- MYSHOWTITLE page not playing" }
 if ($global:chrometitle -like "*MYSHOWTITLE*") { $global:ChromeIS = 0 } else { $global:ChromeIS = 1 }
 write-host ("--- $global:ChromeIs ---")
 if ($global:chrometitle -like "*MYSHOWTITLE*") { Write-Host "___" } else { 
 write-host "stopping MacroRecorder"
 taskkill /f /t /im MacroRecorder.ex*
 break }
   timeout 5
 }
}

function Test-File {
 Test-Path $global:TestFile
}

do {
 if (-not (Test-File)) {
  Write-Host "Web NOT Found -- first loop"
  ChromeAction
  timeout 5
 }
} until (Test-File)

do {
 if (Test-File) {
  Write-Host "Web Found - second loop"
  ChromeAction
  timeout 5
 }
} until (Test-File)

timeout 2

exit

Care to share this "janky" script? I might have some use for this since I have prime :rofl::joy:

1 Like

how do I post code in here?

Standard Markdown -- 3 backticks before and after.

1 Like

Click Reply ...

click on </> and post code between the ```

BUT if it can be fixed via Docker then I guess ill be learning Docker

Any fixes for not being able to sign in with Youtube TV because of browser not being secure error? I have tried the solutions above but still getting the signin issue. I can signin normally when not using CC4C.

I finally had a chance to try a Raspberry Pi 4 - 2GB. It was quite a bit of work, had to refresh the OS to 64-bit versions since Node has dropped support for 32-bit OSs. Then installed everything baremetal on the PI's OS like the docker file would. Spent half a day getting winevine DRM running as Google doesn't ship an official Chrome for ARM, only x86 Linux.

Got it to the point that weatherscan works, but NBC.com live gives this error. The DRM test site works and gives the same results as the x86 system, but NBC does not.

1 Like

Yep, that's as far as I got. Could you tell, based on console messages, what the trouble is? Or are we just assuming that they must be blocking RPi somehow?

It won't work on NBC unless you use an official Google Chrome

1 Like

Ah, that makes sense! Thanks @tmm1. It's definitely a bummer though :frowning: .

2 Likes

oh well. sometimes the purpose is to be an example for others!

Does Fubo still work with this? Looks like they changed the URL format. When attempting to load one of the channels via CC4C, it just loads the Fubo home page.

1 Like

I returned to Fubo for the start of the baseball season, and found CC4C was no longer working. Try the "Fubo TV Project" docker in this forum. It works perfectly, and you don't need a separate PC to transcode the Fubo stream.

4 Likes

Not sure whats happening but Many NBC links are failing to open the correct stream via CC4C NBC MSNBC CNBC seem ok but Bravo USA E...etc fail to open or all open nbc news now
I havent changed anything in my custom chanel list yet

will look again tomorow when i find more time etc

Found something weird If i revert nack to the orig NBC links it seems to work now BUT not with the newer direct links which work fine on any browser BUT not with CC4C custom channels
Below works
#EXTINF:-1 channel-id="E! (East)",E! (East)
chrome://localhost:5589/stream/e

Newest link not working in CC4C
#EXTINF:-1 channel-id="E! (East)",E! (East)
chrome://localhost:5589/stream?url=https://www.nbc.com/live?brand=e&callsign=e_east

Maybe its another NBC issue

2 Likes

Thanks so much for mentioning this. Exactly what I needed. Easy setup and works perfectly!

1 Like

@jaw3, Great to hear. It does work extremely well.

2 Likes

Looking to use cc4c with directv stream. Unfortunately, my login has a "." in it. I need a docker run command that also starts the vnc server. thanks.

1 Like