aboutsummaryrefslogtreecommitdiffstats
path: root/youtube
diff options
context:
space:
mode:
Diffstat (limited to 'youtube')
-rw-r--r--youtube/channel.py2
-rw-r--r--youtube/yt_data_extract/everything_else.py9
2 files changed, 7 insertions, 4 deletions
diff --git a/youtube/channel.py b/youtube/channel.py
index 394ce1b..153760b 100644
--- a/youtube/channel.py
+++ b/youtube/channel.py
@@ -203,7 +203,7 @@ def get_channel_page_general_url(base_url, tab, request, channel_id=None):
info = yt_data_extract.extract_channel_info(json.loads(polymer_json), tab)
- if info['error']:
+ if info['error'] is not None:
return flask.render_template('error.html', error_message = info['error'])
post_process_channel_info(info)
diff --git a/youtube/yt_data_extract/everything_else.py b/youtube/yt_data_extract/everything_else.py
index ac1ab7d..d1389c6 100644
--- a/youtube/yt_data_extract/everything_else.py
+++ b/youtube/yt_data_extract/everything_else.py
@@ -21,10 +21,13 @@ def extract_channel_info(polymer_json, tab):
# example terminated channel: https://www.youtube.com/channel/UCnKJeK_r90jDdIuzHXC0Org
except KeyError:
if response.get('alerts'):
- return {'error': ' '.join(
- deep_get(alert, 'alertRenderer', 'text', 'simpleText', default='')
+ error_string = ' '.join(
+ extract_str(deep_get(alert, 'alertRenderer', 'text'), default='')
for alert in response['alerts']
- )}
+ )
+ if not error_string:
+ error_string = 'Failed to extract error'
+ return {'error': error_string}
elif deep_get(response, 'responseContext', 'errors'):
for error in response['responseContext']['errors'].get('error', []):
if error.get('code') == 'INVALID_VALUE' and error.get('location') == 'browse_id':