[vimeo] redirect to feature url only in the case of a trailer(closes #14591)

This commit is contained in:
Remita Amine 2018-09-15 06:30:57 +01:00
parent 3661ebf2b6
commit 8b40c92724

View File

@ -571,19 +571,23 @@ class VimeoIE(VimeoBaseInfoExtractor):
if config.get('view') == 4: if config.get('view') == 4:
config = self._verify_player_video_password(redirect_url, video_id) config = self._verify_player_video_password(redirect_url, video_id)
vod = config.get('video', {}).get('vod', {})
def is_rented(): def is_rented():
if '>You rented this title.<' in webpage: if '>You rented this title.<' in webpage:
return True return True
if config.get('user', {}).get('purchased'): if config.get('user', {}).get('purchased'):
return True return True
label = try_get( for purchase_option in vod.get('purchase_options', []):
config, lambda x: x['video']['vod']['purchase_options'][0]['label_string'], compat_str) if purchase_option.get('purchased'):
if label and label.startswith('You rented this'): return True
return True label = purchase_option.get('label_string')
if label and (label.startswith('You rented this') or label.endswith(' remaining')):
return True
return False return False
if is_rented(): if is_rented() and vod.get('is_trailer'):
feature_id = config.get('video', {}).get('vod', {}).get('feature_id') feature_id = vod.get('feature_id')
if feature_id and not data.get('force_feature_id', False): if feature_id and not data.get('force_feature_id', False):
return self.url_result(smuggle_url( return self.url_result(smuggle_url(
'https://player.vimeo.com/player/%s' % feature_id, 'https://player.vimeo.com/player/%s' % feature_id,