From ad23c2a82afaa4c10ab43c8a2144be81460ebdfa Mon Sep 17 00:00:00 2001 From: mhdzumair Date: Sun, 25 Aug 2024 01:13:07 +0530 Subject: [PATCH] fix HLS key URL modification --- mediaflow_proxy/handlers.py | 2 +- mediaflow_proxy/utils/m3u8_processor.py | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/mediaflow_proxy/handlers.py b/mediaflow_proxy/handlers.py index f5d0ab6..6930904 100644 --- a/mediaflow_proxy/handlers.py +++ b/mediaflow_proxy/handlers.py @@ -124,7 +124,7 @@ async def fetch_and_process_m3u8(url: str, headers: dict, request: Request, key_ try: streamer = Streamer(client) content = await streamer.get_text(url, headers) - processor = M3U8Processor(request, HttpUrl) + processor = M3U8Processor(request, key_url) processed_content = await processor.process_m3u8(content, str(streamer.response.url)) return Response( content=processed_content, diff --git a/mediaflow_proxy/utils/m3u8_processor.py b/mediaflow_proxy/utils/m3u8_processor.py index bb9332e..0438fb8 100644 --- a/mediaflow_proxy/utils/m3u8_processor.py +++ b/mediaflow_proxy/utils/m3u8_processor.py @@ -56,9 +56,8 @@ class M3U8Processor: original_uri = uri_match.group(1) uri = parse.urlparse(original_uri) if self.key_url: - uri.scheme = self.key_url.scheme - uri.netloc = self.key_url.netloc - new_uri = await self.proxy_url(str(uri), base_url) + uri = uri._replace(scheme=self.key_url.scheme, netloc=self.key_url.host) + new_uri = await self.proxy_url(uri.geturl(), base_url) line = line.replace(f'URI="{original_uri}"', f'URI="{new_uri}"') return line