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 /youtube_dl/extractor/vimeo.py | |
| parent | 7c05097633138459e9bdf7e10738e021b04689a7 (diff) | |
[vimeo] Fix rented videos (Closes #9830)
Diffstat (limited to 'youtube_dl/extractor/vimeo.py')
| -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(  | 
