diff --git a/M3U8/scrapers/streambtw.py b/M3U8/scrapers/streambtw.py index cb4572d..383501d 100644 --- a/M3U8/scrapers/streambtw.py +++ b/M3U8/scrapers/streambtw.py @@ -1,3 +1,4 @@ +import base64 import re from functools import partial from urllib.parse import urljoin @@ -29,14 +30,13 @@ async def process_event( log.error(f'URL {url_num}) Failed to fetch "{url}": {e}') return - valid_m3u8 = re.compile( - r'var\s+(\w+)\s*=\s*["\']?(https?:\/\/[^"\'\s>]+\.m3u8(?:\?[^"\'\s>]*)?)["\']?', - re.IGNORECASE, - ) + valid_m3u8 = re.compile(r'var\s+(\w+)\s*=\s*"([^"]*)"', re.IGNORECASE) if match := valid_m3u8.search(r.text): + encoded = match[2][::-1] + decoded = base64.b64decode(encoded[::-1]).decode("utf-8") log.info(f"URL {url_num}) Captured M3U8") - return match[2] + return decoded log.info(f"URL {url_num}) No M3U8 found")