[youtube] Raise GeoRestrictedError

This commit is contained in:
Sergey M․ 2017-02-26 16:51:21 +07:00
parent 8878789f11
commit fd5c4aab59
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D

View File

@ -47,7 +47,6 @@ from ..utils import (
unsmuggle_url, unsmuggle_url,
uppercase_escape, uppercase_escape,
urlencode_postdata, urlencode_postdata,
ISO3166Utils,
) )
@ -371,6 +370,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
} }
_SUBTITLE_FORMATS = ('ttml', 'vtt') _SUBTITLE_FORMATS = ('ttml', 'vtt')
_GEO_BYPASS = False
IE_NAME = 'youtube' IE_NAME = 'youtube'
_TESTS = [ _TESTS = [
{ {
@ -917,7 +918,12 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
# itag 212 # itag 212
'url': '1t24XAntNCY', 'url': '1t24XAntNCY',
'only_matching': True, 'only_matching': True,
} },
{
# geo restricted to JP
'url': 'sJL6WA-aGkQ',
'only_matching': True,
},
] ]
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
@ -1376,11 +1382,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
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']: 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) regions_allowed = self._html_search_meta(
if regions_allowed: 'regionsAllowed', video_webpage, default=None)
raise ExtractorError('YouTube said: This video is available in %s only' % ( countries = regions_allowed.split(',') if regions_allowed else None
', '.join(map(ISO3166Utils.short2full, regions_allowed.split(',')))), self.raise_geo_restricted(
expected=True) msg=video_info['reason'][0], countries=countries)
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)
@ -2126,6 +2132,10 @@ class YoutubeChannelIE(YoutubePlaylistBaseInfoExtractor):
'id': 'UUs0ifCMCm1icqRbqhUINa0w', 'id': 'UUs0ifCMCm1icqRbqhUINa0w',
'title': 'Uploads from Deus Ex', 'title': 'Uploads from Deus Ex',
}, },
}, {
# geo restricted to JP
'url': 'https://www.youtube.com/user/kananishinoSMEJ',
'only_matching': True,
}] }]
@classmethod @classmethod