One clean lineup in front of every media server you run. 1.1 is about the guide being right — for Plex, Emby, Jellyfin, and Channels DVR at the same time — and about the app holding up when real tuners and real networks misbehave.
New in 1.1
One channel per station, even with two providers
When two sources carry the same station — say, two MLB servers in different cities for blackout coverage — the lineup now publishes it once; the other provider becomes automatic failover at tune time. 66 duplicate channels became 33 real ones.
Prefer every copy listed? There's an off switch in Settings → Guide.
The lineup is a number line
Broadcast channels first on their real numbers (6.1 stays 6.1), then your stations (100+), then imports (1000+) — consistently in every export: lineup.json, the M3U playlist, and the guide. Channels DVR numbers playlist channels in the order they appear, so this also fixes scrambled ordering there.
Channels DVR, done right
- The setup guidance is now truthful: Channels DVR's HDHomeRun mode reads lineups from port 80, which macOS reserves — so the app points you at a Custom Channels source instead, which works on any port. The Setup & Help guide has the steps.
- The device identifies as
VChannels2.0instead of borrowing a real SiliconDust model number.
Guide health check, built in
Settings → Guide → Check Guide Now reads the guide exactly as your servers fetch it and reports what would break an import: channels with no listings, overlaps, gaps, playlist entries that match nothing. Also served at /guide-check.json.
Richer guide data
Real runtimes, video quality and aspect, audio format, and previously-shown markers — so DVRs set to "new episodes only" stop recording every rerun on a virtual channel as a first run.
Fixes
- Live streams no longer drop data when a server reads slowly while starting a transcode — playback that aborted mid-stream now holds.
- Sources no longer report "offline" after every app launch; refreshes wait for the network to come up and retry briefly. Same fix for HDHomeRun tuners, which had their own copy of the race.
- Event channels no longer show day-long holes past the guide window — placeholder filler now covers everything the guide publishes.
- Double-encoded text from media filenames ("Eddie’s Exes") is repaired before it reaches the guide.
- Guides that fail strict XMLTV validation can be produced to spec with Settings → Guide → Strict XMLTV (drops the non-standard elements some servers read; leave off unless a client rejects the guide).
Verified
tv_validate_file (strict mode), tv_sort --duplicate-error, xmllint, and the built-in checker all pass clean on a 92-channel lineup mixing a real HDHomeRun, virtual stations, and two IPTV sources.
Requirements. macOS Tahoe (26) on Apple silicon. Signed and notarized by Apple — it opens without security warnings.
Get it. Download VirtualChannels 1.1, drag it to Applications, then add a source and build a channel. The Setup & Help guide walks the whole flow.