Getting TV Guide Data Into Jellyfin Without Losing Your Mind

Most people trying to set up live TV in Jellyfin hit the EPG (Electronic Program Guide) issue first. The built-in support is decent but finicky if you actually want it to work reliably. Here's how I got mine running consistently. You need a few things in place before anything else kicks in. An RTL-SDR or a proper digital tuner, a source for XMLTV data, and Jellyfin configured to pull from that data. That's the short version.

Jellyfin Live Tv Guide Setup Walkthrough

Start by grabbing an XMLTV file from a provider like XMLTV.eu or TVGrabber. These aggregate listings data and spit out a properly formatted XML file that Jellyfin understands. Don't bother generating your own unless you have time to waste. Download XMLTV.eu, configure it for your region and timezone, and run a full grab. This alone can take 20-40 minutes depending on how many channels you're tracking. Set it to cron or Task Scheduler so it refreshes daily. That single habit keeps your guide from rotting after three days. In Jellyfin, go to Dashboard > Plugins and make sure you have the Live TV plugin installed. Add your tuner device under Dashboard > Live TV, then set the XMLTV path to point at your downloaded file. You'll need to assign channel numbers manually at least once because the mapping between what the XML says and what your tuner sees is never clean. Jellyfin won't auto-match perfectly. It'll suggest pairings, but about a third of them are wrong every time.

I spent three hours on a Sunday re-mapping 47 channels because the EPG provider listed them under corporate parent names instead of their actual broadcast call signs. "CBS" showed up as "Columbia Broadcasting System" in one grab and as "WCBS" in another. I ended up writing a quick Python script that pre-normalizes the XML before Jellyfin touches it. It finds the matching EIT service IDs and cross-references against a hardcoded call-sign map I built over two weeks. Cuts mapping time from hours to about ten minutes per refresh cycle.

Get the Full Details

Live TV guide with multiple pages do not line up. · Issue #1543 · jellyfin/jellyfin-androidtv ...
Live TV guide with multiple pages do not line up. · Issue #1543 · jellyfin/jellyfin-androidtv ...

What Nobody Tells You About Guide Data

The biggest problem isn't getting the guide to load. It's that the guide data degrades fast. Most free XMLTV sources only provide 7 days of listings. After that, you're looking at empty slots or placeholders. Some providers claim 14 days, but the quality drops off sharply after day 5 anyway. Another thing: channel guide images. Jellyfin supports them but requires you to host them separately. The EPG images from XMLTV sources are usually tied to the provider's CDN and will break if that CDN changes paths or starts enforcing hotlink protection. I had a month where half my guide thumbnails disappeared because TVGuide.com updated their URL scheme. Nothing in Jellyfin breaks visibly. The grid just shows blank white boxes and you figure it out later when someone asks why Yesterday Night's Episode doesn't have a poster. Use a self-hosted image proxy or mirror the guide art locally. I keep a small Nginx instance on the same machine that proxies and caches images from the XMLTV source. Saves a call home every time the guide renders and stops the blank-box problem entirely.

Pitfalls That Waste Your Time

Don't skip the timezone configuration in Dashboard > General. Jellyfin will use server timezone by default, and if your Plex-compatible tuner reports times in UTC while your XMLTV file is in local time, every single show in your guide will be shifted. I learned this the hard way when my entire Monday evening guide was scheduled 5 hours ahead because my VPS was in Oregon and I'm in New York. Shows appeared at 3 PM that should have been at 8 PM. Also, if you're using HDHomeRun tuners, the native Jellyfin integration has a known issue where the guide won't refresh unless the tuner is actively scanning at least one channel. Leave a channel idle-scanning and your guide stays current. Stop the scan and the XMLTV cache gets stale after a while.

When It Just Doesn't Work

There are setups where Jellyfin's live TV guide will be a continuous headache and you should probably look elsewhere. If you're in a rural area with only 10-15 over-the-air channels, the XMLTV coverage is often incomplete or entirely absent. Some countries don't participate in the major listing aggregators at all. You'll be maintaining a hand-curated XML file that takes an hour to update each week, and you'll still miss things. In those cases, M3U-based guide systems like IPTV Smarters or even skipping the guide entirely and relying on on-demand content works better. Jellyfin is great for media libraries. Live TV with a clean guide is possible but it demands regular maintenance.

How to Set Up Live TV on Jellyfin with TrueNAS – Complete Step-by-Step Guide - YouTube
How to Set Up Live TV on Jellyfin with TrueNAS – Complete Step-by-Step Guide - YouTube