Bring Back the Classic TV Experience with Your Own Media
Remember when TV was simple? You'd flip on the set, browse through channels, and sometimes stumble upon something great. Modern streaming services killed channel surfing—but what if you could get that experience back using your own media collection?
Enter Tunarr, an open-source project that turns your Plex, Jellyfin, or Emby library into a traditional TV channel experience. It's the missing link between your meticulously organized media server and the nostalgic simplicity of broadcast television.
What It Does
Tunarr builds IPTV-style channels from your existing media libraries. It creates programmable "channels" that play content from your Plex, Jellyfin, or Emby servers in a continuous stream, complete with TV-style scheduling and programming. Think of it as creating your own personal television network using the movies and shows you already own.
The system generates standard M3U playlists and XMLTV electronic program guide data that work with most IPTV clients. You can set up multiple channels with different themes—maybe a 90s sitcom channel, a sci-fi channel, or a weekend movie channel—all pulling from your personal media collection.
Why It's Cool
The magic of Tunarr isn't just in recreating the channel surfing experience—it's in how intelligently it handles your content. The system can create channels based on specific criteria like genre, decade, or collection, and it schedules content with proper consideration for runtime, ensuring shows don't get awkwardly cut off.
What makes this particularly clever is that it doesn't actually move or duplicate your media files. Tunarr works as a scheduling and streaming layer on top of your existing media server, creating the illusion of live channels while pulling content on-demand from your Plex, Jellyfin, or Emby installation.
For developers, there are some nice touches too—it's built with Node.js and TypeScript, offers both CLI and server modes, and includes features like custom commercial insertion points and flexible scheduling rules.
How to Try It
Getting started is straightforward if you're comfortable with Docker:
docker run -d \
--name=tunarr \
-p 8000:8000 \
-v /path/to/your/config:/config \
--restart unless-stopped \
ghcr.io/chrisbenincasa/tunarr:latest
Once running, you can access the web interface at http://localhost:8000 to configure your channels and connect to your media server. The repository has comprehensive documentation on setting up channels and integrating with various IPTV clients.
You'll need an existing Plex, Jellyfin, or Emby server with some content to make it worthwhile. The project is actively developed, so check the GitHub repository for the latest setup instructions and requirements.
Final Thoughts
Tunarr solves a problem I didn't realize I had—the paradox of choice with massive media collections. Sometimes you don't want to decide what to watch; you just want to flip through channels and see what's on. It's a clever use of existing media infrastructure that adds a new way to enjoy your content.
For developers, it's also an interesting example of building streaming services on top of existing APIs. The approach could inspire similar projects that reimagine how we interact with our digital media collections. Whether you're looking to recreate that classic TV experience or just want to discover your media in a new way, Tunarr is definitely worth checking out.
Follow for more cool projects: @githubprojects