keepcalculator

06 Numbers and Powers

Jellyfin Pseudo Live TV: Playlists, Schedules & M3U

Card No. 06·40578 · Updated · Standard formula, shown below

This guide explains how to set up pseudo live TV in Jellyfin using playlists, schedules, M3U streams, and channel guides. You’ll learn how to turn your existing media library or external IPTV streams into a live TV-like experience with channel numbers, EPG data, and scheduled programming. No special hardware or additional server software is required—just Jellyfin’s built-in features and a bit of configuration.

What You’ll Need

  • A running Jellyfin server (version 10.8 or later recommended)
  • Access to the Jellyfin admin dashboard
  • Media files (movies, shows) or valid M3U/M3U8 stream URLs
  • Optional: XMLTV file for electronic program guide (EPG) data
  • Basic text editor for creating playlist files

Step-by-Step

  1. Understand the components. Pseudo live TV in Jellyfin works by combining three things: a channel list (M3U), a schedule (XMLTV or Jellyfin’s built-in scheduler), and your media sources (local files or remote streams). The M3U defines what channels exist and what they play; the schedule tells Jellyfin what to play at what time; the guide (EPG) provides the program information shown in the TV guide.
  2. Create an M3U playlist file. Open a text editor and create a new file. The basic format is:
    #EXTM3U
    #EXTINF:-1 tvg-id="channel1" tvg-name="Channel One" tvg-logo="logo.png" group-title="Movies",Channel One
    /path/to/movie.mp4
    #EXTINF:-1 tvg-id="channel2" tvg-name="News Stream" group-title="News",http://example.com/stream.m3u8

    Each #EXTINF line defines a channel. The tvg-id is used to match EPG data. The next line is the media source—either a local file path or a remote stream URL. Save the file with an .m3u extension.

  3. Add the M3U as a TV tuner in Jellyfin. Go to Dashboard → Live TV → Tuner Devices. Click Add Tuner, choose M3U Tuner, and enter the file path or URL to your M3U file. Set the Channel Numbering to your preference (e.g., starting at 1). Save the tuner.
  4. Set up a schedule (optional but recommended). Jellyfin can generate a schedule automatically if you enable Enable automatic channel mapping and Enable EPG. For manual control, you can create an XMLTV file that defines programs for each channel. Alternatively, use Jellyfin’s built-in scheduler by going to Live TV → Schedules and adding a new schedule. Choose the channel, the days, and the time range, then select the media (e.g., a playlist or a specific folder) to play during that slot.
  5. Add an XMLTV guide (EPG). If you have an XMLTV file (from a TV guide provider or generated by tools like tvheadend), go to Dashboard → Live TV → TV Guide Data Providers. Click Add, choose XMLTV, and enter the file path or URL. Jellyfin will import the guide data and match it to your channels using the tvg-id in your M3U.
  6. Verify channel mapping. Go to Dashboard → Live TV → Channels. Check that all your M3U channels appear. If you have guide data, click on a channel and see if the EPG shows programs. If not, adjust the tvg-id in the M3U to match the XMLTV channel IDs.
  7. Test playback. Open the Jellyfin app or web client, go to Live TV, and select a channel. It should start playing the assigned media. If it doesn’t, check the logs or the tuner settings.
  8. Fine-tune the schedule. For a more realistic experience, you can create multiple schedules for different times of day. For example, a movie channel might play a different movie every two hours. Use the Schedules tab to add these rules. You can also use the Fallback option to play a default video when no schedule matches.

Common Mistakes

  • Incorrect M3U syntax. Missing #EXTM3U at the top or missing the media line after #EXTINF will cause the tuner to fail.
  • Mismatched tvg-id. If your EPG doesn’t show up, the tvg-id in the M3U likely doesn’t match the XMLTV channel ID.
  • Using relative file paths. Jellyfin needs absolute paths to local media files. A relative path like movies/movie.mp4 will not work.
  • Forgetting to enable the tuner. After adding the M3U tuner, you must also enable it in Dashboard → Live TV → Tuner Devices (the toggle switch).
  • Not refreshing guide data. After importing XMLTV, you need to wait for Jellyfin to refresh the guide (or manually trigger a refresh) before it appears.

Tips

  • Use a dedicated folder for your M3U and XMLTV files so they don’t get mixed with your media.
  • For remote streams, ensure your Jellyfin server has sufficient bandwidth and can reach the stream URL.
  • Use the group-title attribute in the M3U to organize channels into categories (e.g., Movies, News, Sports) for easier navigation.
  • If you want to simulate a live broadcast, use a scheduling tool like ErsatzTV (external) to generate a proper XMLTV and M3U pair, then import them into Jellyfin.
  • Regularly update your M3U if your media library changes—Jellyfin will not automatically pick up new files unless you re-scan the tuner.

Troubleshooting

  • Channels don’t appear after adding the tuner. Check the M3U file for errors. Open it in a text editor and verify each channel has two lines. Also check the Jellyfin logs (Dashboard → Logs) for any parsing errors.
  • Channel shows but playback fails. For local files, confirm the path is correct and the file is readable by the Jellyfin service user. For remote streams, try playing the URL directly in a browser to see if it works.
  • EPG is empty. Ensure the XMLTV file is valid (you can validate it with an online parser). Also confirm the tvg-id in the M3U matches the id attribute in the XMLTV <channel> tags.
  • Schedule not working. Check that the schedule’s time zone matches your server’s time zone. Also, ensure the media you selected in the schedule actually exists and is playable.
  • Guide data is stale. Go to Dashboard → Live TV → TV Guide Data Providers and click the refresh button (or wait for the automatic refresh interval).

Frequently Asked Questions

Q: Can I use an M3U URL instead of a file?
A: Yes, Jellyfin accepts remote M3U URLs in the tuner settings. Just paste the URL directly.

Q: How do I get an XMLTV file?
A: You can generate one using tools like tv_grab_* (from XMLTV project) or export from IPTV providers. Some services offer XMLTV downloads for their channel lists.

Q: Can I mix local files and remote streams in the same M3U?
A: Yes, each channel’s media line can be either a local path or a remote URL. Jellyfin handles both.

Q: Why do my channels have no numbers?
A: In the tuner settings, you can set Channel Numbering to Start at 1 or Use channel numbers from M3U (if you include tvg-chno in the EXTINF).

Q: Does pseudo live TV work on all clients?
A: Most Jellyfin clients support Live TV, but the guide interface may vary. The web client and Android TV app have the most complete support.

Q: Can I record pseudo live TV?
A: Yes, if you have DVR functionality enabled (requires a valid tuner and a storage path for recordings). Schedules can be set to record.

Related

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.

More cards in this drawer

The whole Numbers and Powers drawer →