From 8ea3b5b26c601131ffda624b1695ad5cc5c0369d Mon Sep 17 00:00:00 2001 From: blackicedbear Date: Sat, 27 Sep 2025 19:53:23 +0200 Subject: [PATCH] Fixed missing segment errors --- devine/core/downloaders/requests.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/devine/core/downloaders/requests.py b/devine/core/downloaders/requests.py index 3e47c18..d68587e 100644 --- a/devine/core/downloaders/requests.py +++ b/devine/core/downloaders/requests.py @@ -91,6 +91,11 @@ def download( try: stream = session.get(url, stream=True, **kwargs) + if stream.status_code == 404: + # Skip missing segments gracefully + yield dict(downloaded=f"[yellow]Segment missing (404 skipped)") + break + stream.raise_for_status() if not segmented: @@ -139,6 +144,11 @@ def download( DOWNLOAD_SIZES.clear() break except Exception as e: + if isinstance(e, requests.HTTPError) and e.response.status_code == 404: + # Safe skip, don’t bubble up + yield dict(downloaded=f"[yellow]Skipped missing segment: {url}") + break + save_path.unlink(missing_ok=True) if DOWNLOAD_CANCELLED.is_set() or attempts == MAX_ATTEMPTS: raise e