From 884f35d54a64f1e6e7be49459842f573fc3a2701 Mon Sep 17 00:00:00 2001 From: bashonly <88596187+bashonly@users.noreply.github.com> Date: Mon, 7 Jul 2025 22:54:27 -0500 Subject: [PATCH] [ie/BiliBiliBangumi] Fix geo-block detection (#13667) Closes #13634 Authored by: bashonly --- yt_dlp/extractor/bilibili.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/yt_dlp/extractor/bilibili.py b/yt_dlp/extractor/bilibili.py index 0f5c2c97e..0c6535fc7 100644 --- a/yt_dlp/extractor/bilibili.py +++ b/yt_dlp/extractor/bilibili.py @@ -900,7 +900,9 @@ def _real_extract(self, url): headers=headers)) geo_blocked = traverse_obj(play_info, ( - 'raw', 'data', 'plugins', lambda _, v: v['name'] == 'AreaLimitPanel', 'config', 'is_block', {bool}, any)) + ('result', ('raw', 'data')), 'plugins', + lambda _, v: v['name'] == 'AreaLimitPanel', + 'config', 'is_block', {bool}, any)) premium_only = play_info.get('code') == -10403 video_info = traverse_obj(play_info, (('result', ('raw', 'data')), 'video_info', {dict}, any)) or {} @@ -914,7 +916,7 @@ def _real_extract(self, url): if traverse_obj(play_info, (( ('result', 'play_check', 'play_detail'), # 'PLAY_PREVIEW' vs 'PLAY_WHOLE' - ('raw', 'data', 'play_video_type'), # 'preview' vs 'whole' + (('result', ('raw', 'data')), 'play_video_type'), # 'preview' vs 'whole' vs 'none' ), any, {lambda x: x in ('PLAY_PREVIEW', 'preview')})): self.report_warning( 'Only preview format is available, '