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
- Open Jellyfin in a browser, usually
http://[server-ip]:8096, and sign in as an administrator. - Open the Admin Panel (labelled Dashboard in older versions) from the menu.
- Select Live TV in the left-hand menu.
- Click the + next to Tuner Devices.
- Choose M3U Tuner as the tuner type.
- 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
- Back in Admin Panel > Live TV, click the + next to TV Guide Data Providers.
- Choose XMLTV, paste the guide URL and save.
- Click the ... menu beside the new guide provider and choose Map Channels.
- Check that each tuner channel is matched to a guide channel. Fix any that aren't by picking the right entry from the list.
- 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.