From f66affa65ba1bd629b566aa96f0e07c31bc49c81 Mon Sep 17 00:00:00 2001 From: sepro Date: Tue, 4 Mar 2025 13:09:38 +0100 Subject: [PATCH] Improve error handling --- yt_dlp/extractor/vrt.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/yt_dlp/extractor/vrt.py b/yt_dlp/extractor/vrt.py index 220e001f3..4ccc90b2a 100644 --- a/yt_dlp/extractor/vrt.py +++ b/yt_dlp/extractor/vrt.py @@ -370,6 +370,15 @@ def _real_extract(self, url): formats, subtitles = self._extract_formats_and_subtitles(streaming_info, video_id) + code = traverse_obj(streaming_info, ('code', {str})) + if not formats and code: + if code in ('CONTENT_AVAILABLE_ONLY_FOR_BE_RESIDENTS', 'CONTENT_AVAILABLE_ONLY_IN_BE', 'CONTENT_UNAVAILABLE_VIA_PROXY'): + self.raise_geo_restricted() + elif code in ('CONTENT_AVAILABLE_ONLY_FOR_BE_RESIDENTS_AND_EXPATS', 'CONTENT_IS_AGE_RESTRICTED', 'CONTENT_REQUIRES_AUTHENTICATION'): + self.raise_login_required() + else: + raise ExtractorError(f'Unable to extract formats: {code}') + return { **self._json_ld(traverse_obj(metadata, ('ldjson', ..., {json.loads})), video_id, fatal=False), **traverse_obj(metadata, ('episode', {