From ebf0c0f61e3e578db26b45eb24d643f1a64bf17f Mon Sep 17 00:00:00 2001 From: bashonly <88596187+bashonly@users.noreply.github.com> Date: Thu, 30 Apr 2026 17:23:20 -0500 Subject: [PATCH] [ie/soundcloud] Improve error handling (#16602) Closes #16603 Authored by: bashonly --- yt_dlp/extractor/soundcloud.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/yt_dlp/extractor/soundcloud.py b/yt_dlp/extractor/soundcloud.py index 620c761dd3..bcb8c0f463 100644 --- a/yt_dlp/extractor/soundcloud.py +++ b/yt_dlp/extractor/soundcloud.py @@ -321,9 +321,16 @@ class SoundcloudBaseIE(InfoExtractor): continue # XXX: if not extract_flat, 429 error must be caught where _extract_info_dict is called - stream_url = traverse_obj(self._call_api( - format_url, track_id, f'Downloading {short_identifier} format info JSON', - query=query, headers=self._HEADERS), ('url', {url_or_none})) + try: + stream_url = traverse_obj(self._call_api( + format_url, track_id, f'Downloading {short_identifier} format info JSON', + query=query, headers=self._HEADERS), ('url', {url_or_none})) + except ExtractorError as e: + if isinstance(e.cause, HTTPError) and e.cause.status == 404: + self.report_warning(f'{short_identifier} format not found', video_id=track_id) + continue + raise + if invalid_url(stream_url): continue format_urls.add(stream_url)