aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2016-06-19 03:56:01 +0700
committerSergey M․ <dstftw@gmail.com>2016-06-19 03:56:01 +0700
commit6a55bb66ee4367a8445c8df2d803090e68c42fe9 (patch)
treead315abda34cd6a82a54565c7a3bed09ad93f490
parent7c05097633138459e9bdf7e10738e021b04689a7 (diff)
downloadyoutube-dl-6a55bb66ee4367a8445c8df2d803090e68c42fe9.tar.xz
[vimeo] Fix rented videos (Closes #9830)
-rw-r--r--youtube_dl/extractor/vimeo.py15
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(