diff options
| -rw-r--r-- | youtube_dl/extractor/youtube.py | 15 | 
1 files changed, 15 insertions, 0 deletions
diff --git a/youtube_dl/extractor/youtube.py b/youtube_dl/extractor/youtube.py index fb4c31326..fb6d816cc 100644 --- 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))  | 
