Jellyfin Forum
IPTV currated m3u list - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Guides, Walkthroughs & Tutorials (https://forum.jellyfin.org/f-guides-walkthroughs-tutorials)
+--- Thread: IPTV currated m3u list (/t-iptv-currated-m3u-list)



IPTV currated m3u list - Arah88 - 2025-09-09

Hi all, first post here! I'd love to get your thoughts on a project I've been working on. If you run into any issues, please let me know, and I'll do my best to help.

TL;DR: I created a set of PowerShell and Python scripts that automatically filters the IPTV-org channel lists (though it would work for any large .m3u link) for working streams, corrects their EPG data IDs, and generates a clean M3U and a high-quality guide.xml
for Jellyfin. 

GitHub Link: https://github.com/iptv-org/epg/tree/master The full tutorial is in the read me on this page.

This whole thing started with what I thought would be a simple goal: get as many free TV channels with EPG data as I could into my Jellyfin server. I started with the big IPTV-org list, but I quickly ran into a couple of major problems that I'm sure many of you have faced:
  1. Dead Links: About half the TV channels in the original
    .m3u
    were dead, and there was no easy way to filter them out.
  2. Missing EPG Data: Even for the working channels, getting reliable EPG data to sync up was a nightmare. I tried several tools like the TVHeadend plugin and Threadfin. While they're great projects, I couldn't get them to work reliably with such a large and messy channel list.
So, I decided to write the scripts myself to solve these problems directly.

My Goals for the Project:
  • Provide Jellyfin with an M3U that only contains working links, updated daily.
  • Get as much matching EPG data as possible. A working channel with no guide data is better than nothing, but my main goal was to maximize EPG coverage.
I've put together a full guide on my GitHub page, but here's the rundown of how it works. It's designed for a Windows machine, and my paths are centered around a
C:\server\epg
folder, so you may need to adjust paths for your own setup.

Then end result is the powershell scipt that I have set up to run everyday, that generates a cleaned and consolidated .m3u link and a guide.xml file that has the epg data. I then point jellyfin at this and have it update the guide data everyday an hour after the first script runs.