From 15a049edc23446da3563e107d7f9ceaa66d28b45 Mon Sep 17 00:00:00 2001 From: Giacinto Lo Meo Date: Tue, 7 Apr 2026 22:34:16 +0200 Subject: [PATCH] Add channel number to M3U line formatting Add tvg-chno support using channel number from markdown lists - Extract channel number from md lists - Add tvg-chno attribute to M3U output - Skip invalid values (e.g. 0) Improves channel ordering in IPTV clients like Jellyfin --- make_playlist.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/make_playlist.py b/make_playlist.py index c6b7220..dc227dc 100755 --- a/make_playlist.py +++ b/make_playlist.py @@ -93,6 +93,7 @@ COUNTRY_CODES = { class Channel: def __init__(self, group, md_line, country_code=""): + self.chno = self.number if self.number and self.number != "0" else None self.group = group self.country_code = country_code md_line = md_line.strip() @@ -110,10 +111,11 @@ class Channel: def to_m3u_line(self): country = f' tvg-country="{self.country_code}"' if self.country_code else "" + chno = f' tvg-chno="{self.chno}"' if self.chno else "" if self.epg is None: - return (f'#EXTINF:-1 tvg-name="{self.name}" tvg-logo="{self.logo}"{country} group-title="{self.group}",{self.name}\n{self.url}') + return (f'#EXTINF:-1 tvg-name="{self.name}" tvg-logo="{self.logo}"{chno}{country} group-title="{self.group}",{self.name}\n{self.url}') else: - return (f'#EXTINF:-1 tvg-name="{self.name}" tvg-logo="{self.logo}" tvg-id="{self.epg}"{country} group-title="{self.group}",{self.name}\n{self.url}') + return (f'#EXTINF:-1 tvg-name="{self.name}" tvg-logo="{self.logo}" tvg-id="{self.epg}"{chno}{country} group-title="{self.group}",{self.name}\n{self.url}') def main():