From 4e9673edd2826e694f6c73e92381494bc15c2936 Mon Sep 17 00:00:00 2001 From: Nirvana Date: Wed, 25 Mar 2026 09:32:45 +0100 Subject: [PATCH] Prepare recordings --- routes/m3u.py | 4 ++-- service.py | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/routes/m3u.py b/routes/m3u.py index ebd98f4..758df26 100644 --- a/routes/m3u.py +++ b/routes/m3u.py @@ -350,7 +350,7 @@ def setup_m3u_routes(app, manager, service): channel_id = channel.channel_id channel_name = channel.name channel_logo = channel.logo_url or "" - chno = f' tvg-chno="{channel.channel_number}"' if getattr(channel, "channel_number", None) is not None else "" + chno = f' tvg-chno="{channel.channel_number}" ch-number="{channel.channel_number}"' if getattr(channel, "channel_number", None) is not None else "" # Get provider label try: @@ -456,7 +456,7 @@ def setup_m3u_routes(app, manager, service): channel_id = channel.channel_id channel_name = channel.name channel_logo = channel.logo_url or "" - chno = f' tvg-chno="{channel.channel_number}"' if getattr(channel, "channel_number", None) is not None else "" + chno = f' tvg-chno="{channel.channel_number}" ch-number="{channel.channel_number}"' if getattr(channel, "channel_number", None) is not None else "" # Build decrypted stream URL stream_url = f"{base_url}/api/providers/{provider_name}/channels/{channel_id}/stream/decrypted/index.mpd" diff --git a/service.py b/service.py index afde0b3..08e6b2b 100644 --- a/service.py +++ b/service.py @@ -922,7 +922,7 @@ class UltimateService: elif is_unencrypted: # Explicitly unencrypted channel - include with direct stream URL stream_url = f"{base_url}/api/providers/{provider_name}/channels/{channel_id}/stream/index.mpd" - chno = f' tvg-chno="{channel.channel_number}"' if getattr(channel, "channel_number", None) is not None else "" + chno = f' tvg-chno="{channel.channel_number}" ch-number="{channel.channel_number}"' if getattr(channel, "channel_number", None) is not None else "" m3u_content += f'#EXTINF:-1 tvg-id="{channel_id}"{chno} tvg-logo="{channel_logo}" group-title="{provider_label}",{channel_name}\n' m3u_content += f"{stream_url}\n" channels_included += 1 @@ -1010,9 +1010,9 @@ class UltimateService: @staticmethod def _chno_attr(channel) -> str: - """Return a ' tvg-chno="N"' string when channel_number is set, else empty string.""" + """Return ' tvg-chno="N" ch-number="N"' when channel_number is set, else empty string.""" chno = getattr(channel, "channel_number", None) - return f' tvg-chno="{chno}"' if chno is not None else "" + return f' tvg-chno="{chno}" ch-number="{chno}"' if chno is not None else "" def _generate_m3u_channel_entry(self, base_url, provider_name, channel): """ @@ -1108,7 +1108,7 @@ class UltimateService: channel_id = channel.channel_id channel_name = channel.name channel_logo = channel.logo_url or "" - chno = f' tvg-chno="{channel.channel_number}"' if getattr(channel, "channel_number", None) is not None else "" + chno = f' tvg-chno="{channel.channel_number}" ch-number="{channel.channel_number}"' if getattr(channel, "channel_number", None) is not None else "" # Build decrypted stream URL via media proxy with /index.mpd # Format: /api/providers/{provider}/channels/{channel_id}/stream/decrypted/index.mpd @@ -1251,7 +1251,7 @@ class UltimateService: elif is_unencrypted: # Explicitly unencrypted channel - include with direct stream URL stream_url = f"{base_url}/api/providers/{provider_name}/channels/{channel_id}/stream/index.mpd" - chno = f' tvg-chno="{channel.channel_number}"' if getattr(channel, "channel_number", None) is not None else "" + chno = f' tvg-chno="{channel.channel_number}" ch-number="{channel.channel_number}"' if getattr(channel, "channel_number", None) is not None else "" m3u_content += f'#EXTINF:-1 tvg-id="{channel_id}"{chno} tvg-logo="{channel_logo}" group-title="{provider_label}",{channel_name}\n' m3u_content += f"{stream_url}\n" channels_included += 1