OK, so to close the loop on this -- here's what I've settled on for watching Channels on my multi-display Windows PC via VLC:
I like both the VLC integration (as enabled in Settings - Advanced - Integrations), and the drag-and-drop option using the Watch Now
button. Here are a few details on each:
To use the VLC integration, enable it on the above Channels DVR Settings page. Then, you'll need to place three batch files in the same folder where your VLC executable resides. These files can be downloaded from GitHub, but since modifications are required to the primary batch file it may be easier to simply grab them from here:
vlc-protocol.bat:
Setlocal EnableDelayedExpansion
set url=%~1
set url=!url: =%%20!
set url=!url:http/=http:/!
start "VLC" "%~dp0vlc.exe" --fullscreen "%url:~6%"
Note that on the fourth line, http can be changed to https, if you use https to access the Channels browser pages. Also, if you don't want the VLC window to open full screen (on one monitor if you have several), you can change --fullscreen
to --open
.
vlc-protocol-register.bat
@echo off
@echo.
if not exist "%~dp0vlc.exe" (
echo Warning: Can't find vlc.exe.
echo Please put these files in your VLC directory and then run this file.
@echo.
pause
exit /b
)
echo If you see "ERROR: Access is denied." then you need to right click and use "Run as Administrator".
@echo.
echo Associating vlc:// with vlc-protocol.bat...
reg add HKCR\vlc /ve /t REG_SZ /d "URL:vlc Protocol" /f
reg add HKCR\vlc /v "URL Protocol" /t REG_SZ /d "" /f
reg add HKCR\vlc\DefaultIcon /ve /t REG_SZ /d "%~dp0vlc.exe,0" /f
reg add HKCR\vlc\shell\open\command /ve /t REG_SZ /d "\"%~dp0vlc-protocol.bat\" \"%%1\"" /f
@echo.
pause
The only purpose of this file is to add 4 values to your Windows Registry, to create a vlc:// protocol, and define what to do when it's used.
vlc-protocol-deregister.bat:
@echo off
@echo.
echo If you see "ERROR: Access is denied." then you need to right click and use "Run as Administrator".
@echo.
echo Removing vlc:// association...
reg delete HKCR\vlc /f
@echo.
pause
And, this final batch will remove the entire vlc section from the registry, if you decide you no longer want to use it.
Contrary to what you made read in other posts on this subject the vlc-protocol.exe
file is not required -- at least not for Windows 11 Pro 23H2. Only the batch files.
Using the above approach, when I select VLC
from the Watch Now
dropdown followed by approving the running of the batch file (Chrome security pop-up), the desired channel will open full screen on the last display I used for VLC.
The other option I like, and that I'll use, is to drag the Watch Now
button down to a minimized instance of VLC (but don't drop it yet). This will maximize VLC, where I can then continue to drag the button, and then drop it on the open VLC window.
The advantage of this approach is that it requires no special batch file installation, and is just as easy to use. In fact, if I want to have two displays actively streaming CDVR content, I'll probably use both methods -- one for each instance of VLC.