[vimeo] Fix rented videos (Closes #9830)

This commit is contained in:
Sergey M․ 2016-06-19 03:56:01 +07:00
parent 7c05097633
commit 6a55bb66ee
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D

View File

@ -8,6 +8,7 @@ import itertools
from .common import InfoExtractor from .common import InfoExtractor
from ..compat import ( from ..compat import (
compat_HTTPError, compat_HTTPError,
compat_str,
compat_urlparse, compat_urlparse,
) )
from ..utils import ( from ..utils import (
@ -24,6 +25,7 @@ from ..utils import (
urlencode_postdata, urlencode_postdata,
unescapeHTML, unescapeHTML,
parse_filesize, parse_filesize,
try_get,
) )
@ -445,7 +447,18 @@ class VimeoIE(VimeoBaseInfoExtractor):
if config.get('view') == 4: if config.get('view') == 4:
config = self._verify_player_video_password(url, video_id) config = self._verify_player_video_password(url, video_id)
def is_rented():
if '>You rented this title.<' in webpage: if '>You rented this title.<' in webpage:
return True
if config.get('user', {}).get('purchased'):
return True
label = try_get(
config, lambda x: x['video']['vod']['purchase_options'][0]['label_string'], compat_str)
if label and label.startswith('You rented this'):
return True
return False
if is_rented():
feature_id = config.get('video', {}).get('vod', {}).get('feature_id') feature_id = config.get('video', {}).get('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(