Virtual Channels
v2.0 · macOS exclusive · Direct download

Your Media.
Your Channels.

Turn your personal media library into live TV channels. Works with Plex, Emby, Channels DVR, and Jellyfin.

  • HDHomeRun emulator built-in
  • GPU-accelerated transcoding on Apple Silicon
  • Works with your existing media libraries
  • Create unlimited custom channels
Signed & notarized by Apple macOS 13+ · Apple Silicon · 60 MB
VIRTUAL CHANNELS
BROADCAST
On Air
Guide
LIBRARY
Channels4
Library6
OUTPUT
VC Tuner1/8
Activity
v2.0.0⌘,
CPU 9%MEM 427 MB
On air 14:47:25 1 watching
Angry Sylvester Suits LA · S01E12 · 42 min · started 14:31
16:17 ELAPSED25:58 REMAINING
ALL CHANNELS · 4
101 Suits Angry Sylvester 1 WATCHING
100 Taylor Sheridan The Remembering 3:50 LEFT
102 HIMYM Attractive Architect 8:06 LEFT
103 Movies Test Inverting the Pyramid of Success 39:53 LEFT
TUNER SERVING · 10.13.31.7:5004 · 1/8 SLOTS SERVER ONLINE
Live TV from Your Library

Create 24/7 channels from your movies, TV shows, music, and more.

Lightning Fast

Native macOS app with hardware acceleration for smooth performance.

Private & Secure

Everything stays on your network. Your media, your rules.

Works with What You Use

Plex, Emby, Channels DVR, Jellyfin, and HDHomeRun compatible.

The app

A broadcast studio, not a dashboard.

Five places, each with one job. Open it to see what's on — artwork, current programme, who's watching. Tuner counts and transcode state live in a status line, where healthy plumbing belongs.

01 On Air

A full-size now playing card, then every channel with what's airing and how much is left.

02 Guide

A real EPG grid with channel logos and artwork. Select a slot to watch or edit the channel.

03 Channels

Poster-style cards: logo, what's on now, schedule state, source count. New channel is one click.

04 Library

Plex, Jellyfin, Emby and local folders in one place — content sources, not infrastructure.

05 Activity

Scans, guide refreshes, transcodes, tuner sessions and errors — off the home screen.

THE GUIDE, AS IT SHIPS IN 2.0 grey means airing · the accent means someone is watching
6.1KVCH-HD General HospitalON AIR Judy Justice Judy Justice KVCH News at 4
6.4ION Chicago Fire Chicago Fire Chicago Fire Chicago Fire
101SUITS Divide and Conquer Angry SylvesterON AIR · 1 Freedom Pilot

From folders to airtime

Program once.
Tune in anywhere.

Virtual Channels builds the schedule and exposes a tuner your media server already knows how to read. Nothing leaves your network.

  1. Point it at your media

    Connect Plex, Emby, Jellyfin, or plain folders on your Mac or NAS. Metadata and artwork come along.

  2. Build a channel

    Pick what belongs on it and how it should run — shuffled, in order, or on a schedule you set. It airs continuously from then on.

  3. Tune in from anything

    Your Mac answers as an HDHomeRun tuner. Plex, Channels DVR, Emby and Jellyfin find it on the network and show your lineup as live TV.

Setup

Point your server at it.

The working theory: content flows one way, from a source you point at to a screen someone's watching. Everything below is one of five steps.

1 · SOURCEPoint it at media

A folder on any drive, an HDHomeRun, or an M3U playlist. Library → Add Source.

2 · LIBRARYIt indexes itself

Folders scan in minutes; with Watch Folders on, new files join on their own.

3 · CHANNELBuild the lineup

Pick media, pick how it runs — shuffled, in order, scheduled. It broadcasts from then on.

4 · TUNERThe Mac serves it

Up to 8 streams at once on port 5004, with guide and playlist published beside it.

5 · CLIENTServers tune in

Plex, Emby, Jellyfin and Channels DVR see live TV. Recipes below.

Adding content

Drop files into a watched folder and they index themselves, joining every channel that draws from it. Not watching folders? Hit Rescan on the source. A whole new collection is a new source (step 1); a new show on an existing channel is Edit Channel → add it to the playlist.

One rule to know: editing a playlist restarts that station's timeline from now.

Removing content

Delete a file and the schedule skips it at the next roll — nothing breaks. Remove a source and the channels it fed lose those items; a channel with nothing left stops broadcasting but keeps its number. Delete a channel and the rest of the lineup keeps its numbers — nothing renumbers itself.

After lineup changes, Plex and Channels DVR need a lineup rescan and a guide refresh to notice.

Then connect a server.

Your Mac answers as an HDHomeRun on port 5004 and publishes a seven-day XMLTV guide. Two recipes cover every server.

Plex & Emby
  1. 1Add a DVR or live TV device — VirtualChannels shows up as an HDHomeRun.
  2. 2Paste the tuner address if it isn't discovered automatically.
  3. 3Use the XMLTV URL as the guide source and match channels.
Channels DVR & Jellyfin
  1. 1Add a custom channels source.
  2. 2Give it the M3U playlist and the XMLTV guide URLs.

Why not the tuner address? Channels DVR reads a tuner's lineup from port 80, which macOS reserves for root — on port 5004 it would show a device with no channels. The M3U route avoids that trap.

CONNECT YOUR MEDIA SERVER copy these from the VC Tuner screen in the app
Tuner (Plex, Emby)http://your-mac.local:5004
Guide (XMLTV)http://your-mac.local:5004/xmltv.xml
Playlist (M3U)http://your-mac.local:5004/playlist.m3u

Perfect for

Home Media Enthusiasts

Turn your collection into your own TV network.

Families

Curate kid-friendly channels for everyone.

Content Creators

Build branded channels with your own content.

Small Businesses

Digital signage, training videos, and internal broadcasts.

Cord Cutters

Ditch cable. Keep your content. Your way.

Pricing

v2.0 is here. Still free.

v2.0 — the broadcast studio on this page — is out now. v1 stays up for download, and everyone who ran it keeps their seat.

$0 v2.0, today
Unlimited channels and sources Up to 8 simultaneous tuners Automatic updates, straight from the app
Download v2.0 No account required

Put your library on the air tonight.

One download, no App Store, no account. It runs on your Mac and stays there.

Signed with a Developer ID and notarized by Apple Gatekeeper checks it on first launch — no right-click workaround, no security warning.

Version 2.0.0 · 60 MB · macOS 13 Ventura or later · Apple Silicon · v1 still available

FAQ

Questions, answered.

Does my media leave my network?

No. VirtualChannels runs entirely on your Mac: your media never leaves your network and the app collects no data. Streams are served on your local network like a hardware tuner.

What does it run on?

macOS 13 Ventura or later on Apple Silicon. One Mac serves the whole house — it can live in the Dock or run quietly from the menu bar.

Which media servers work with it?

Plex, Emby, Channels DVR and Jellyfin — anything that can tune an HDHomeRun. Real HDHomeRun tuners and M3U playlists can join your stations in one lineup.

Do I need to install ffmpeg?

No. MP4, M4V, MOV, MKV and WebM stream out of the box on Apple's engine. Adding ffmpeg is optional and only unlocks unusual formats — AVI, WMV, DTS and TrueHD audio.

Why isn't it on the App Store?

A tuner server needs things sandboxed apps can't do, so it ships from this site. Every build is signed with a Developer ID and notarized by Apple — Gatekeeper checks it on first launch, no workarounds.

How many people can watch at once?

Up to 8 tuners serve simultaneously. Direct play when the format allows; GPU-accelerated transcode on Apple Silicon when it doesn't.

How do channel numbers work?

Tuner channels keep their broadcast numbers, your stations follow from 100, and imported sources from 1,000. Numbers you set by hand are never moved.

How far out does the guide go?

Seven days, published as standard XMLTV that Plex, Emby, Jellyfin and Channels DVR all read. Sources re-sync themselves hourly.

How do updates work?

Check for Updates in the app asks this site — virtualchannels.app/updates.json — whether a newer build exists. The request carries nothing but the version you're on. Automatic checking is off by default; turn it on in Settings → General.

Where does feedback go?

The blog. Every post takes comments, they're all read, and feature votes for 2.1 happen there.