I just published a Windows native app for playing Channels DVR content. It's intended to be an easy to use alternative to the administrative web page when you want to use your laptop for playback. It has the capability to use captions sidecar files if they exist, I have another project, py-captions-for-channels that can produce them. Here's the readme from the GitHub repository for WinChannels
WinChannels
WinChannels is a native Windows desktop client for Channels DVR.
Positioning
WinChannels is a desktop companion app for everyday Channels DVR viewing, not a living-room HTPC frontend.
Its intent is to provide an easier-to-use alternative to the Channels administrative web interface for non-technical users.
Non-goals
- This project is not designed as a remote-control-first, 10-foot TV interface.
- This project is not trying to replace dedicated HTPC/living-room player experiences.
- This project prioritizes simple desktop workflows (mouse/keyboard, clear settings, and caption handling).
Quick Start
- Download the latest installer from the Releases page:
- MSI โ recommended for most users
- EXE โ NSIS installer, useful if MSI is blocked by policy
- Run the installer and launch WinChannels from the Start menu.
- Open Settings and enter your Channels DVR server URL (e.g.
http://192.168.x.x:8089). - Optionally set the Storage Share Path to enable SRT sidecar captions.
Features
It gives you a simple TV-style experience for browsing and watching your DVR content, with support for:
- Recent recordings
- TV shows and episodes
- Movies
- Library groups and videos
- Channel logos
- Captions (broadcast and sidecar
.srt)
What It Does
WinChannels connects to your Channels DVR server API and streams recordings via HLS.
Key behavior:
- Reads media lists from your DVR server (
/api/v1/...) - Streams recordings from DVR file endpoints (
/dvr/files/...) - Displays channel logos where available
- Supports both embedded/broadcast captions and sidecar SRT captions
- Automatically loads
.srtsidecar files placed alongside recordings (e.g. generated by py-captions-for-channels) - Allows switching caption mode in the player (Off, Broadcast, SRT)
Requirements
- Windows 10/11
- A reachable Channels DVR server on your network
- DVR server URL (for example
http://192.168.3.150:8089) - Optional but recommended for SRT sidecar captions: access to the DVR storage path as a Windows share
Important Shared Folder Requirement
If you want SRT sidecar captions to work for all clients/users, the Channels DVR root recording folder must be shared and readable by everyone who will run WinChannels.
Why this matters:
- WinChannels can stream video from DVR HTTP endpoints, but sidecar
.srtloading requires filesystem access to the recording path. - The app maps recording paths to your configured Windows UNC share path.
Example share path:
\\192.168.3.150\AllMedia\Channels
Recommendations:
- Share the Channels root folder (or the exact DVR recording root) from the storage host.
- Grant read permissions to all users/machines that will use WinChannels.
- Verify each user can browse the UNC path in Windows Explorer.
Install
Option 1: Use a Built Installer (recommended)
Install the generated Windows bundle:
- MSI:
src-tauri/target/release/bundle/msi/WinChannels_<version>_x64_en-US.msi - NSIS EXE:
src-tauri/target/release/bundle/nsis/WinChannels_<version>_x64-setup.exe
Option 2: Run from Source
- Install prerequisites:
- Node.js 20+
- Rust toolchain (stable)
- Visual Studio C++ Build Tools (for Tauri on Windows)
- Clone repo and install dependencies:
npm install
- Start in development mode:
npm run tauri dev
- Build production bundles:
npm run tauri build
Configuration
Open Settings in the app and configure the following.
1) Channels DVR Server URL
- Field:
Channels DVR Server URL - Format:
http://<server-ip>:8089 - Example:
http://192.168.3.150:8089
Use the Test Connection button to confirm the app can reach your DVR and read shows/movies/episodes.
2) Storage Share Path (for SRT sidecars)
- Field:
Storage Share Path - Purpose: locate
.srtfiles next to recordings - Use a UNC path to your DVR storage root
- Example:
\\192.168.3.150\AllMedia\Channels
Notes:
- Leave this blank to disable SRT sidecar loading.
- Broadcast captions can still work without a share path.
- The path is stored locally per user in app local storage.
Caption Modes
The player exposes caption modes based on track availability:
- Off
- Broadcast (from stream text tracks)
- SRT (from sidecar subtitle file)
If both are available, you can switch between them from the player controls.
Troubleshooting
Can stream video but no SRT captions
- Verify
Storage Share Pathpoints to the correct DVR root share - Confirm the
.srtfile exists next to the recording on disk - Confirm current Windows user can read the share path
Connection test fails
- Verify DVR server URL includes port (usually
8089) - Confirm server is reachable from the client machine
- Confirm firewall rules allow access
Tech Stack
- Tauri 2
- React 19 + TypeScript + Vite
- Zustand for app state
- HLS.js for playback
- Tauri HTTP plugin for API requests






