If you have searched for a way to turn your Plex library into something that feels like live television, you have probably come across a handful of tools with names that do not immediately explain what they do. ErsatzTV, DizqueTV, Tunarr, Channels DVR, Dispatcharr, and now Bunny Ears TV all solve some version of the same problem, but they approach it in very different ways.
This is a straightforward comparison of what each tool does, what it requires, and who it is best suited for. Full disclosure: I built Bunny Ears TV, so take my perspective on it accordingly. I have tried to be fair to every tool here because they are all solving real problems for real people.
ErsatzTV
ErsatzTV is the most powerful and most configurable option in the space. It runs as a Docker container on your server, connects to Plex (and Jellyfin and Emby), and lets you build custom channels with granular scheduling control. You can set specific time blocks, add filler content between programs, control playback order, and fine-tune just about every aspect of how your channels behave.
The output is an IPTV stream (M3U playlist + XMLTV guide data) that you watch through a compatible client. Most people use Channels DVR, Jellyfin's LiveTV plugin, or a standalone IPTV player to actually watch the streams.
Best for: People who want total control over their channel lineup and do not mind spending time on configuration. If you want a channel that plays Seinfeld episodes in air-date order with specific bumpers between them, ErsatzTV is the tool that can do that.
Requires: Docker, a server with available CPU/RAM, an IPTV-compatible client on the viewing end, and a willingness to learn the interface. Setup is not trivial, but the documentation has improved a lot.
Cost: Free and open source.
DizqueTV / Tunarr
DizqueTV was one of the earlier virtual channel tools and has largely been succeeded by Tunarr, which is an actively maintained fork with a modernized interface. The core idea is the same: run a Docker container, connect it to Plex, build channels, and output IPTV streams.
Tunarr simplifies the channel creation process compared to ErsatzTV. It does a better job of automatically filling schedules so you are not hand-placing every program into every time slot. The UI is more approachable, and getting a basic channel running takes less time.
The tradeoff is less granular control. If you need the kind of precision scheduling ErsatzTV offers, Tunarr will feel limiting. If you just want themed channels that play content from specific libraries or collections, it gets you there faster.
Best for: People who want Docker-based virtual channels without the full complexity of ErsatzTV. Good middle ground between power and simplicity.
Requires: Docker, a server, an IPTV client. Same infrastructure as ErsatzTV.
Cost: Free and open source.
Dispatcharr
Dispatcharr is newer and occupies a slightly different niche. It focuses on managing and organizing IPTV streams from multiple sources rather than creating virtual channels from scratch. Think of it as an IPTV stream manager that can sit in front of tools like ErsatzTV or Tunarr and help you organize, proxy, and distribute the streams they generate.
If you are running multiple virtual channel tools or combining them with external IPTV sources, Dispatcharr can be a useful layer on top. On its own, it is not a channel creation tool.
Best for: Power users running complex multi-source IPTV setups.
Requires: Docker, existing IPTV streams to manage.
Cost: Free and open source.
Channels DVR
Channels DVR is a commercial product that combines OTA live TV (via a tuner and antenna) with virtual channels from your media library. It runs its own server application and has polished client apps on Apple TV, Android TV, Fire TV, and web browsers.
The virtual channel feature is one part of a larger product that also handles DVR recording, commercial skipping, and live TV guide data. The client apps are well-designed and the overall experience is the most "finished product" feeling option in this space.
The tradeoff is cost and infrastructure. Channels DVR requires a subscription ($8/month or $80/year), its own server application running alongside Plex, and if you want the OTA features, a compatible TV tuner. You are essentially running two media server platforms.
Best for: People who want a polished all-in-one solution for both live OTA television and virtual channels from their library. Especially good if you are already using or considering an antenna setup.
Requires: Channels DVR server software, subscription, optionally a TV tuner for OTA. Client apps available on most platforms.
Cost: $8/month or $80/year.
Bunny Ears TV
This is mine, so I will try to be as objective as I can.
Bunny Ears TV takes a fundamentally different approach from every tool listed above. It is a native Apple TV app. There is no server-side component, no Docker container, no IPTV stream. You install it on your Apple TV, sign in with your Plex account, and the app generates over 200 themed channels and 50+ music stations from your library metadata automatically.
Channels are pre-built using metadata filters (genre, rating, decade, keywords, content ratings) rather than user-configured. You cannot create custom channels or hand-schedule content. The upside is that setup takes about 30 seconds and there is nothing to maintain on the server side. The downside is less flexibility.
The app includes a broadcast-style electronic program guide with a rolling 28-hour schedule, channel surfing with a retro static effect between channels, and metadata previews in the guide. It uses Plex's standard API, so your Plex server does not need any modifications, plugins, or additional configuration.
Best for: Plex users with an Apple TV who want the virtual channel experience without any server-side setup. People who value convenience over customization.
Requires: Apple TV (4th gen or later), a Plex account (free accounts work, no Plex Pass required), a Plex server with content.
Cost: 13 free channels forever. Paid plans at $1.99/month, $14.99/year, or $29.99 lifetime for the full 200+ channel lineup.
Side-by-Side Comparison
| ErsatzTV | Tunarr | Channels DVR | Bunny Ears TV | |
|---|---|---|---|---|
| Runs on | Your server (Docker) | Your server (Docker) | Its own server app | Apple TV (client only) |
| Media sources | Plex, Jellyfin, Emby | Plex, Jellyfin | Plex, own library | Plex |
| Custom channels | Yes, fully configurable | Yes, simplified | Yes | No (200+ pre-built) |
| Music stations | No | No | No | 50+ stations |
| Program guide | Via IPTV client | Via IPTV client | Built-in | Built-in |
| Client platforms | Any IPTV player | Any IPTV player | Apple TV, Android TV, Fire TV, Web | Apple TV only |
| Docker required | Yes | Yes | No (own server app) | No |
| Server config needed | Yes | Yes | Yes | None |
| Setup time | Hours | 30-60 minutes | 30-60 minutes | Under a minute |
| Plex Pass required | No | No | No | No |
| Cost | Free | Free | $8/mo or $80/yr | Free tier, paid from $1.99/mo |
Which One Should You Pick?
If you want maximum control and do not mind Docker, start with ErsatzTV or Tunarr. ErsatzTV if you want precision scheduling, Tunarr if you want something simpler. Both are free, both are actively maintained, and the communities around them are helpful.
If you want a polished product that also handles live OTA television, Channels DVR is the best option. The subscription is worth it if you are using a TV tuner and want everything in one place.
If you have an Apple TV and want virtual channels running tonight with zero server work, Bunny Ears TV will get you there faster than anything else on this list. You give up custom channels in exchange for not having to think about Docker, IPTV, or server-side configuration at all.
None of these tools conflict with each other. You can run ErsatzTV on your server for custom channels and Bunny Ears TV on your Apple TV for the pre-built lineup at the same time. They connect to Plex in completely different ways and do not interfere with each other.
The virtual channel ecosystem is healthier than it has ever been. Pick the tool that matches your tolerance for complexity and start watching.