[youtube] Fix error reason extraction (#27081)

This commit is contained in:
Daniel Peukert 2020-11-21 15:52:20 +01:00 committed by GitHub
parent 46a265a2da
commit 21292c0649
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -2023,6 +2023,21 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
formats.append(a_format) formats.append(a_format)
else: else:
error_message = extract_unavailable_message() 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: if not error_message:
error_message = clean_html(try_get( error_message = clean_html(try_get(
player_response, lambda x: x['playabilityStatus']['reason'], player_response, lambda x: x['playabilityStatus']['reason'],