DEPRECATED: PC Stream for Channels (DRM Workaround) | No new hardware required!

android-for-channels.exe runs in background at startup. All the channels show up with proper guide info on the clients. None of the channels pull up chrome on the server? They either time out, or on my Android tablet, opens the NBC app when I select USA network. On the ATV I get a 403 error.

How can I troubleshoot the problem on my server? Is there a Powershell command I can use to see if something obvious isn't working? I am wanting to test each "step" separately to see what I could have made a mistake. Seems like just getting chrome to open with a command in powershell would be a logical first step to troubleshoot? Thanks!

Very interesting!

I've been following closely the "HDMI for Channels" thread but not quite ready to empty my wallet yet. :laughing:

Now you have given me a nice weekend project! :smiley:

1 Like

I have one Windows machine that can run this headless. My main machine however needs to have an attached display (as you say). I use a dummy HDMI adapter which can be purchased for $6.99 on Amazon and other retailers.

No need for a special Powershell; you can already manually test each step. Just open up a command prompt in administrative mode and navigate to the directory you created. Then, run in order:

  • prebmitune.bat <<< This should launch VLC and it should be running the stream
  • bmitune.bat {station code} <<< This will launch the station you put in (i.e., "bmitune.bat nfl") in Chrome and do all the things it is supposed to do in there. As a bonus, if you manually run this, you'll get a bmitune.log file in the same directory that will give you some information.
  • stopbmitune.bat <<< This will kill VLC and Chrome

As an aside, I know you said you have android-for-channels.exe running at startup, but can you double check that it is doing so in Task Manager? I noticed when I rebooted this morning that it actually didn't start and I had to change it to "When user logs on". I'll update the directions above to say the same.

Another easy way to add Android for HDMI to start up is to hit Win+R then type in shell: startup which brings you to the startup folder, then you can create a shortcut to the EXE. You can set it to run minimized too and it'll appear in the task bar but for server that's not a big deal to me. Makes it easy to bring up that window and troubleshoot if needed.

I had a weird error with my setup yesterday, was recording the US Open via the NBC app and about 2 hours in channels quit getting data from the stream (the recording basically froze at that point), I have no idea why. Might have been a problem with the NBC app but there wasn't an easy way to look at it.

I recorded the 8:00 p.m. showing and it ran fine for 4 hours.

Will the vlc screen be blank/black, but look to be running from looking at the time going as expected?

The other two .bat files are working as expected with the NFL network opening in full screen and the 3rd .bat file shutting both chrome and vlc off!

It should look something like this:


I just did that on a machine I've never done that on before, and VLC had to ask for permission from Windows, so maybe something like that is going on with you?

I haven't done a super long recording test yet, but have a 4-hour block scheduled tomorrow on USA. I'll see what happens on my end, too!

Attempting to follow along with the instructions and seems I am hitting a couple of issues that maybe you can assist with:

  1. VLC is returning an error: Capture failed: The device you selected cannot be used because its type is not supported
  2. no audio when viewing from channels (assuming this is related to the above)
1 Like

It asked for permission, I gave it access. It says dshow:// in the playlist and not "converting dshow://" the "converting" part is missing? It is running, but it has a blank screen with only the VLC icon.
Transform is checked and flip vertically is selected.

1 Like

It sounds like there is an issue with the screen capture program. Perhaps an uninstall and reinstall of that step would help?

Yes, it sounds like it did not automatically start like expected. It should auto-begin without intervention. Something must be blocking it.

Both of you, I'm curious if you can attempt a manual stream. I'm away from my server right now so I can't get all the screen shots and show a test with the setup we are using here, but if you could follow these directions and try to stream to another VLC on network?

I can get you something easier to follow with screen shots sometime over the weekend, probably.

Using the steps you outlined, it is now showing "Converting dshow://" rather than just "dshow://".

1 Like

Thanks, the initial was on a vm, so attempted a real machine and did not run into the same issue and getting audio so my issues were related and will need to play with my vm settings to see if I can get it to work appropriately.

My only issue now is now the "fullscreen" fullscreens the web page and not just the stream:

Well another issue with the DRM on NBC --- can get the audio but not the video.
Probably missed something here in my setup

This a capture from RDP of the Windows machine

And this is in channels

Try disabling hardware acceleration in Chrome: How to disable hardware acceleration in Google Chrome - Pureinfotech

1 Like

Has anyone played around with this in Linux? If not, I plan to try once I have some free time (maybe see about Docker or a way to have multiple channels per instance?). Worst case, I'll see about trying it out on some virtual machines.

1 Like

I’ve been using the miibeez/vlc-bridge-pbs Docker with Channels for a long time and it works seamlessly and I believe PBS is using DRM. Why can’t this be adapted to other channels like NBC?

1 Like

Yeah, exactly. It's been asked multiple times how PBS can be made to work and NBC can't.

I have been exploring Xvfb but honestly did not make it very far yesterday.

Here's what I have gotten to thus far.

Start a Xvfb running firefox:

xvfb-run -n 99 -a --server-args="-screen 0 1024x8000x24 -ac -nolisten tcp -dpi 96 +extension RANDR" /snap/bin/firefox

Start recording with FFMPEG and make available via port 4444:

ffmpeg -video_size 640x1208 -f x11grab -i :99 -c:v libx264 -c:a aac  -g 50 -b:v 4000k -maxrate 4000k -bufsize 8000k -f flv -listen 1 rtmp://localhost:4444/stream

Now tune into the virtual frame buffer from linux desktop:

ffplay -fflags -nobuffer -flags low_delay -probesize 32 -flags low_delay -analyzeduration 0 -i rtmp://localhost:4444/stream

Once more refined channels could subscribe to the the 4444 port or might have to uplink to nginx-rtmp (haven't made it this far yet).

Next steps are to get browser automation working via selenium.


Their code is private, so no one has been able to figure it out. Back in the PBS thread, they said that things like NFL and NBC were not possible. I don't think that is true, but without the code, there is no way to no for sure!