diff options
author | Sergey M․ <dstftw@gmail.com> | 2016-06-19 03:56:01 +0700 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2016-06-19 03:56:01 +0700 |
commit | 6a55bb66ee4367a8445c8df2d803090e68c42fe9 (patch) | |
tree | ad315abda34cd6a82a54565c7a3bed09ad93f490 | |
parent | 7c05097633138459e9bdf7e10738e021b04689a7 (diff) |
[vimeo] Fix rented videos (Closes #9830)
-rw-r--r-- | youtube_dl/extractor/vimeo.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/youtube_dl/extractor/vimeo.py b/youtube_dl/extractor/vimeo.py index 0fd2c18a0..c52986af6 100644 --- a/youtube_dl/extractor/vimeo.py +++ b/youtube_dl/extractor/vimeo.py @@ -8,6 +8,7 @@ import itertools from .common import InfoExtractor from ..compat import ( compat_HTTPError, + compat_str, compat_urlparse, ) from ..utils import ( @@ -24,6 +25,7 @@ from ..utils import ( urlencode_postdata, unescapeHTML, parse_filesize, + try_get, ) @@ -445,7 +447,18 @@ class VimeoIE(VimeoBaseInfoExtractor): if config.get('view') == 4: config = self._verify_player_video_password(url, video_id) - if '>You rented this title.<' in webpage: + def is_rented(): + 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') if feature_id and not data.get('force_feature_id', False): return self.url_result(smuggle_url( |