|
@ -32,6 +32,7 @@ from ..utils import ( |
|
|
unescapeHTML, |
|
|
unescapeHTML, |
|
|
unified_strdate, |
|
|
unified_strdate, |
|
|
uppercase_escape, |
|
|
uppercase_escape, |
|
|
|
|
|
ISO3166Utils, |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -903,6 +904,12 @@ class YoutubeIE(YoutubeBaseInfoExtractor): |
|
|
break |
|
|
break |
|
|
if 'token' not in video_info: |
|
|
if 'token' not in video_info: |
|
|
if 'reason' in video_info: |
|
|
if 'reason' in video_info: |
|
|
|
|
|
if 'The uploader has not made this video available in your country.' in video_info['reason']: |
|
|
|
|
|
regions_allowed = self._html_search_meta('regionsAllowed', video_webpage, default=None) |
|
|
|
|
|
if regions_allowed is not None: |
|
|
|
|
|
raise ExtractorError('YouTube said: This video is available in %s only' % ( |
|
|
|
|
|
', '.join(map(ISO3166Utils.short2full, regions_allowed.split(',')))), |
|
|
|
|
|
expected=True) |
|
|
raise ExtractorError( |
|
|
raise ExtractorError( |
|
|
'YouTube said: %s' % video_info['reason'][0], |
|
|
'YouTube said: %s' % video_info['reason'][0], |
|
|
expected=True, video_id=video_id) |
|
|
expected=True, video_id=video_id) |
|
|