|
|
@ -1256,7 +1256,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|
|
|
|
|
|
|
|
|
|
|
def _extract_signature_function(self, video_id, player_url, example_sig):
|
|
|
|
def _extract_signature_function(self, video_id, player_url, example_sig):
|
|
|
|
id_m = re.match(
|
|
|
|
id_m = re.match(
|
|
|
|
r'.*?-(?P<id>[a-zA-Z0-9_-]+)(?:/watch_as3|/html5player(?:-new)?|(?:/[a-z]{2,3}_[A-Z]{2})?/base)?\.(?P<ext>[a-z]+)$',
|
|
|
|
r'.*?[-.](?P<id>[a-zA-Z0-9_-]+)(?:/watch_as3|/html5player(?:-new)?|(?:/[a-z]{2,3}_[A-Z]{2})?/base)?\.(?P<ext>[a-z]+)$',
|
|
|
|
player_url)
|
|
|
|
player_url)
|
|
|
|
if not id_m:
|
|
|
|
if not id_m:
|
|
|
|
raise ExtractorError('Cannot identify player %r' % player_url)
|
|
|
|
raise ExtractorError('Cannot identify player %r' % player_url)
|
|
|
@ -2035,7 +2035,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
player_version = self._search_regex(
|
|
|
|
player_version = self._search_regex(
|
|
|
|
[r'html5player-([^/]+?)(?:/html5player(?:-new)?)?\.js',
|
|
|
|
[r'html5player-([^/]+?)(?:/html5player(?:-new)?)?\.js',
|
|
|
|
r'(?:www|player(?:_ias)?)-([^/]+)(?:/[a-z]{2,3}_[A-Z]{2})?/base\.js'],
|
|
|
|
r'(?:www|player(?:_ias)?)[-.]([^/]+)(?:/[a-z]{2,3}_[A-Z]{2})?/base\.js'],
|
|
|
|
player_url,
|
|
|
|
player_url,
|
|
|
|
'html5 player', fatal=False)
|
|
|
|
'html5 player', fatal=False)
|
|
|
|
player_desc = 'html5 player %s' % player_version
|
|
|
|
player_desc = 'html5 player %s' % player_version
|
|
|
|