From 450cde7c80707c6a6842f7a8e63bf373ac233ebf Mon Sep 17 00:00:00 2001 From: CodeName393 Date: Wed, 31 Dec 2025 19:27:39 +0900 Subject: [PATCH] Troubleshooting some string overlap --- unshackle/core/downloaders/n_m3u8dl_re.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/unshackle/core/downloaders/n_m3u8dl_re.py b/unshackle/core/downloaders/n_m3u8dl_re.py index 7472c59..a929e05 100644 --- a/unshackle/core/downloaders/n_m3u8dl_re.py +++ b/unshackle/core/downloaders/n_m3u8dl_re.py @@ -18,7 +18,7 @@ PERCENT_RE = re.compile(r"(\d+\.\d+%)") SPEED_RE = re.compile(r"(\d+\.\d+(?:MB|KB)ps)") SIZE_RE = re.compile(r"(\d+\.\d+(?:MB|GB|KB)/\d+\.\d+(?:MB|GB|KB))") WARN_RE = re.compile(r"(WARN : Response.*|WARN : One or more errors occurred.*)") -ERROR_RE = re.compile(r"(ERROR.*)") +ERROR_RE = re.compile(r"(ERROR.*|error.*|Error.*|FAILED.*|Failed.*|Exception.*)") DECRYPTION_ENGINE = { "shaka": "SHAKA_PACKAGER", @@ -67,7 +67,7 @@ def get_track_selection_args(track: Any) -> list[str]: if track_type == "Audio": if track_id := representation.get("id") or adaptation_set.get("audioTrackId"): - parts.append(rf'"id=\b{track_id}\b"') + parts.append(rf"id={track_id}") else: if codecs := representation.get("codecs"): parts.append(f"codecs={codecs}") @@ -83,7 +83,7 @@ def get_track_selection_args(track: Any) -> list[str]: if track_type == "Video": if track_id := representation.get("id"): - parts.append(rf'"id=\b{track_id}\b"') + parts.append(rf"id={track_id}") else: if width := representation.get("width"): parts.append(f"res={width}*") @@ -96,7 +96,7 @@ def get_track_selection_args(track: Any) -> list[str]: if track_type == "Subtitle": if track_id := representation.get("id"): - parts.append(rf'"id=\b{track_id}\b"') + parts.append(rf"id={track_id}") else: if lang := representation.get("lang"): parts.append(f"lang={lang}") @@ -109,7 +109,7 @@ def get_track_selection_args(track: Any) -> list[str]: if track_type == "Audio": if name := stream_index.get("Name") or quality_level.get("Index"): - parts.append(rf'"id=\b{name}\b"') + parts.append(rf"id={name}") else: if codecs := quality_level.get("FourCC"): parts.append(f"codecs={codecs}") @@ -122,7 +122,7 @@ def get_track_selection_args(track: Any) -> list[str]: if track_type == "Video": if name := stream_index.get("Name") or quality_level.get("Index"): - parts.append(rf'"id=\b{name}\b"') + parts.append(rf"id={name}") else: if width := quality_level.get("MaxWidth"): parts.append(f"res={width}*") @@ -136,7 +136,7 @@ def get_track_selection_args(track: Any) -> list[str]: # I've yet to encounter a subtitle track in ISM manifests, so this is mostly theoretical. if track_type == "Subtitle": if name := stream_index.get("Name") or quality_level.get("Index"): - parts.append(rf'"id=\b{name}\b"') + parts.append(rf"id={name}") else: if lang := stream_index.get("Language"): parts.append(f"lang={lang}")