diff options
Diffstat (limited to 'youtube_dl/extractor/vimeo.py')
-rw-r--r-- | youtube_dl/extractor/vimeo.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/youtube_dl/extractor/vimeo.py b/youtube_dl/extractor/vimeo.py index 81c495d1e..540ca4fcc 100644 --- a/youtube_dl/extractor/vimeo.py +++ b/youtube_dl/extractor/vimeo.py @@ -124,6 +124,19 @@ class VimeoIE(InfoExtractor): 'Verifying the password', 'Wrong password') + def _verify_player_video_password(self, url, video_id): + password = self._downloader.params.get('videopassword', None) + if password is None: + raise ExtractorError('This video is protected by a password, use the --video-password option') + data = compat_urllib_parse.urlencode({'password': password}) + pass_url = url + '/check-password' + password_request = compat_urllib_request.Request(pass_url, data) + password_request.add_header('Content-Type', 'application/x-www-form-urlencoded') + return self._download_json( + password_request, video_id, + 'Verifying the password', + 'Wrong password') + def _real_initialize(self): self._login() @@ -184,8 +197,7 @@ class VimeoIE(InfoExtractor): cause=e) else: if config.get('view') == 4: - self._verify_video_password(url, video_id, webpage) - return self._real_extract(url) + config = self._verify_player_video_password(url, video_id) # Extract title video_title = config["video"]["title"] |