Jellyfin Live TV and IPTV Setup (2026): M3U Tuner, Guide, DVR and Fixes

Short answer: in Jellyfin, open the Admin Panel, go to Live TV, click the plus next to Tuner Devices and choose M3U Tuner. Paste your playlist URL, set the simultaneous stream limit to your plan's connection count, then add an XMLTV guide under TV Guide Data Providers and map the channels. It's free and works well. The catch: Jellyfin has no Xtream Codes login option, so you need the M3U link version of your login, and it can't use Schedules Direct and XMLTV at the same time.

At a glance

Jellyfin live TV, the essentials

Cost Free and open source; current release 10.11.x
Sources M3U playlists, HDHomeRun tuners
Guide XMLTV or Schedules Direct, not both
Not supported Xtream Codes login (use the M3U link)
DVR Built in; budget about 3-8GB per hour

What Jellyfin live TV does well, and doesn't

Jellyfin is a free media server. Its live TV feature turns an M3U playlist or an antenna tuner into channels with a guide, recording and streaming to your devices. Before spending an evening on it, it helps to know where it shines.

Good at Weaker at
Costing nothing, with no account or subscription Channel-surfing speed; it's slower to tune than a dedicated player
Putting live channels next to your film library Handling very large playlists
Recording to your own drives, with series rules Guide polish compared with Channels DVR
HDHomeRun antenna tuners Xtream Codes logins (not supported natively)
Sharing with family accounts and parental ratings Live TV on some clients, notably Apple TV

If you only want to watch a playlist on one TV, a player app is simpler. Jellyfin earns its place when you want recording, several users and one library. If you're weighing paid options, Channels DVR and Plex compared covers the alternatives.

Get your playlist ready

Ten minutes here saves an hour later.

Use the M3U link, not the login. If your service gave you a server, username and password (an Xtream Codes login), it can usually also give you an M3U playlist URL built from the same details. Ask for it, or find it in your account area. Jellyfin needs that URL. Some people put a proxy such as Threadfin in between to convert and filter; that's optional.

Keep it live-only and lean. Provider playlists often include thousands of film and series entries. Jellyfin will try to import them as channels. A filtered playlist with just the live channels you watch loads faster, guides better and transcodes less.

Get the guide URL. An XMLTV address from the same source, ideally with channel IDs that match the playlist's tvg-id values.

Use a source you're entitled to. That can be a licensed service that supplies an M3U, an HDHomeRun with an antenna, or free ad-supported channels published as playlists. What's inside an M3U playlist explains the tags that matter.

Add the M3U tuner

  1. Open Jellyfin in a browser, usually http://[server-ip]:8096, and sign in as an administrator.
  2. Open the Admin Panel (labelled Dashboard in older versions) from the menu.
  3. Select Live TV in the left-hand menu.
  4. Click the + next to Tuner Devices.
  5. Choose M3U Tuner as the tuner type.
  6. Fill in the options below and click Save.
Option What to set Why
File or URL Your M3U playlist URL A local file path also works
User agent Leave blank Only if your source asks for a specific one
Simultaneous stream limit Your plan's connection count 0 means unlimited, which invites "max connections" errors
Auto-loop live streams Off at first Turn on only if streams stop after a few seconds

Depending on your version you may see further checkboxes for hardware transcoding and stream handling. Leave the defaults until something doesn't work.

Open the Live TV section from the home screen. The channels should be there, without programme information yet. Play one to confirm the stream works before adding the guide.

Add the guide and map channels

  1. Back in Admin Panel > Live TV, click the + next to TV Guide Data Providers.
  2. Choose XMLTV, paste the guide URL and save.
  3. Click the ... menu beside the new guide provider and choose Map Channels.
  4. Check that each tuner channel is matched to a guide channel. Fix any that aren't by picking the right entry from the list.
  5. Go to Admin Panel > Scheduled Tasks and run Refresh Guide rather than waiting for the next scheduled run.

Matching is automatic when the playlist's tvg-id values match the XMLTV channel IDs. When they don't, you map by hand, which is tedious with hundreds of channels and another reason to trim the playlist.

For antenna channels on an HDHomeRun, Schedules Direct gives cleaner US guide data, for a subscription of roughly $35 a year. Jellyfin's documentation says you can't use Schedules Direct and XMLTV at the same time, so if you mix antenna and playlist channels you'll need a single XMLTV source that covers both, or accept a gap. If the guide stays empty after all this, work through the guide checklist.

Turn on recording

Recording is in the same Live TV settings page, under the DVR section. Set:

  • Recording path, and optionally separate paths for films and series. Put them on a large drive, not the system disk.
  • Pre-padding and post-padding. One or two minutes before and five to ten after is sensible for live sport and news.

Then in the guide, select a programme and choose Record, or Record Series. Recordings appear in your library like any other video.

Storage depends on the stream. Jellyfin saves what the source sends, so an HD channel at 4-8Mbps uses roughly 2-4GB an hour, and a high-bitrate sports feed can approach 8GB. A 4TB drive holds several hundred hours either way.

Series rules rely on the guide having series and episode data. Many XMLTV feeds have thin metadata, which is why "new episodes only" sometimes records repeats. Other ways to record live TV.

Transcoding and the server's CPU

This is the part that surprises people. When a client can't play a stream as-is, Jellyfin converts it on the fly. With live TV that happens a lot, because many sources send MPEG-TS with audio formats some TVs and browsers won't play directly.

Software transcoding of HD video can use most of a small server's CPU. If two people watch at once on a low-power box, both will stutter. The fix is hardware acceleration: in Admin Panel > Playback > Transcoding, choose the option that matches your hardware, such as Intel Quick Sync, NVIDIA NVENC or VA-API, and enable the codecs it supports. An Intel CPU from the last few generations with Quick Sync handles several live streams comfortably.

You can reduce transcoding from the other end too. A client app that plays MPEG-TS and AC3 audio natively, such as the Android TV app on a good box, often gets the stream untouched.

Watching it on your TVs

Not every Jellyfin client treats live TV equally. As of 2026:

Device App Live TV experience
Google TV, Android TV, Fire OS Jellyfin for Android TV Good: guide, recording, mostly direct play
Same devices Sparkle TV (third-party) Very good; uses Jellyfin as a live TV source
Web browser Jellyfin web Good, but transcodes more often
Apple TV, iPhone Swiftfin, or UHF (third-party) Varies; UHF plays Jellyfin alongside playlists
Roku Jellyfin for Roku Basic
Samsung, LG Jellyfin TV apps Works, with more transcoding

If your household is mostly Google TV, the experience is close to a cable box, and Sparkle TV makes a particularly good live TV front end for a Jellyfin server. On Apple TV, a third-party client usually does live TV better than the official one; Apple TV player options.

Fixes for common problems

Symptom Likely cause Fix
Thousands of "channels" that are films VOD entries in the playlist Use a live-only playlist, or filter it first
Tuner saves, no channels appear URL unreachable from the server Open the URL from the server machine itself; check firewalls and Docker networking
Channel plays a few seconds, then stops Stream ends and restarts Enable Auto-loop live streams
"Max connections" from the provider Stream limit set to 0 Set the simultaneous stream limit to your plan
Guide empty Channels not mapped, or guide not refreshed Map Channels, then run Refresh Guide
Long wait before playback Transcoding start-up Enable hardware acceleration; use a direct-play client
Stutter with two viewers CPU maxed by software transcoding Hardware acceleration, or a stronger server
Plays in VLC, not Jellyfin Format or user-agent quirk Try setting the user agent your source expects

For anything that also fails outside Jellyfin, the source is the problem, not the server. How to test a stream in VLC.

Quick answers

How do I add IPTV to Jellyfin? Admin Panel > Live TV > + next to Tuner Devices > M3U Tuner. Paste the playlist URL, set the stream limit, save, then add an XMLTV guide.

Does Jellyfin support Xtream Codes? Not as a login type. Use the M3U playlist URL generated from the same account, or a proxy that converts it.

Is Jellyfin live TV free? Yes. Jellyfin is free and open source, with no paid tier. You pay only for your source and hardware.

Can Jellyfin record live TV? Yes. Set a recording path and padding in the Live TV settings, then record from the guide.

Why is my Jellyfin guide empty? Usually unmapped channels or a guide that hasn't refreshed. Use Map Channels, then run Refresh Guide in Scheduled Tasks.

Can I use Schedules Direct and XMLTV together? Not at the same time, according to Jellyfin's documentation.

Does Jellyfin work with an HDHomeRun? Yes. Add it as a tuner device and it's usually found automatically on the same network.


Menu names follow Jellyfin 10.11 and may differ slightly in other versions. Storage figures are estimates and depend on the source's bitrate. Use Jellyfin live TV only with an antenna or a source you're licensed to watch. Checked September 2026.