From 505551f31252e46f1bb6b84ad84dba8b00db240c Mon Sep 17 00:00:00 2001 From: Dispatcharr Date: Mon, 17 Mar 2025 15:06:47 -0500 Subject: [PATCH] Updated M3U stream URLs Changed M3U urls to use proxy --- apps/output/urls.py | 2 +- apps/output/views.py | 6 +++++- core/views.py | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/output/urls.py b/apps/output/urls.py index 9b92eb94..02e43c83 100644 --- a/apps/output/urls.py +++ b/apps/output/urls.py @@ -12,5 +12,5 @@ urlpatterns = [ re_path(r'^epg/?$', generate_epg, name='generate_epg'), # Allow both `/stream/` and `/stream//` - re_path(r'^stream/(?P\d+)/?$', stream_view, name='stream'), + re_path(r'^stream/(?P[0-9a-fA-F\-]+)/?$', stream_view, name='stream'), ] diff --git a/apps/output/views.py b/apps/output/views.py index 92319e93..cffc20e1 100644 --- a/apps/output/views.py +++ b/apps/output/views.py @@ -22,7 +22,11 @@ def generate_m3u(request): f'#EXTINF:-1 tvg-id="{tvg_id}" tvg-name="{tvg_name}" tvg-logo="{tvg_logo}" ' f'tvg-chno="{channel_number}" group-title="{group_title}",{channel.name}\n' ) - stream_url = request.build_absolute_uri(reverse('output:stream', args=[channel.id])) + + base_url = request.build_absolute_uri('/')[:-1] + stream_url = f"{base_url}/proxy/ts/stream/{channel.uuid}" + + #stream_url = request.build_absolute_uri(reverse('output:stream', args=[channel.id])) m3u_content += extinf_line + stream_url + "\n" response = HttpResponse(m3u_content, content_type="application/x-mpegURL") diff --git a/core/views.py b/core/views.py index a5852171..397783fb 100644 --- a/core/views.py +++ b/core/views.py @@ -29,7 +29,7 @@ def settings_view(request): return render(request, 'settings.html') -def stream_view(request, stream_id): +def stream_view(request, channel_uuid): """ Streams the first available stream for the given channel. It uses the channel’s assigned StreamProfile. @@ -40,7 +40,7 @@ def stream_view(request, stream_id): redis_client = redis.Redis(host=settings.REDIS_HOST, port=6379, db=int(getattr(settings, "REDIS_DB", "0"))) # Retrieve the channel by the provided stream_id. - channel = Channel.objects.get(channel_number=stream_id) + channel = Channel.objects.get(uuid=channel_uuid) logger.debug("Channel retrieved: ID=%s, Name=%s", channel.id, channel.name) # Ensure the channel has at least one stream.