commit: 21292c0649e956afc46bd39d774ec811d568de2a
parent 46a265a2da26c663463244ecf9a4a699c2cd6efc
Author: Daniel Peukert <daniel@peukert.cc>
Date: Sat, 21 Nov 2020 15:52:20 +0100
[youtube] Fix error reason extraction (#27081)
Diffstat:
1 file changed, 15 insertions(+), 0 deletions(-)
diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py
@@ -2024,6 +2024,21 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
else:
error_message = extract_unavailable_message()
if not error_message:
+ reason_list = try_get(
+ player_response,
+ lambda x: x['playabilityStatus']['errorScreen']['playerErrorMessageRenderer']['subreason']['runs'],
+ list) or []
+ for reason in reason_list:
+ if not isinstance(reason, dict):
+ continue
+ reason_text = try_get(reason, lambda x: x['text'], compat_str)
+ if reason_text:
+ if not error_message:
+ error_message = ''
+ error_message += reason_text
+ if error_message:
+ error_message = clean_html(error_message)
+ if not error_message:
error_message = clean_html(try_get(
player_response, lambda x: x['playabilityStatus']['reason'],
compat_str))