From 30965ac66a4e33b8e70d6c0cf5da1a746054d6cd Mon Sep 17 00:00:00 2001 From: Philipp Hagemeister Date: Wed, 18 Feb 2015 00:27:57 +0100 Subject: [PATCH] [vimeo] Prevent infinite loops if video password verification fails MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We're seeing this in the tests¹ right now, which do not terminate. ¹ https://travis-ci.org/jaimeMF/youtube-dl/jobs/51135858 --- youtube_dl/extractor/vimeo.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/youtube_dl/extractor/vimeo.py b/youtube_dl/extractor/vimeo.py index 303e81447..1959d5e36 100644 --- a/youtube_dl/extractor/vimeo.py +++ b/youtube_dl/extractor/vimeo.py @@ -18,6 +18,7 @@ InAdvancePagedList, int_or_none, RegexNotFoundError, + smuggle_url, std_headers, unsmuggle_url, urlencode_postdata, @@ -267,8 +268,11 @@ def _real_extract(self, url): raise ExtractorError('The author has restricted the access to this video, try with the "--referer" option') if re.search(r']+?id="pw_form"', webpage) is not None: + if data and '_video_password_verified' in data: + raise ExtractorError('video password verification failed!') self._verify_video_password(url, video_id, webpage) - return self._real_extract(url) + return self._real_extract( + smuggle_url(url, {'_video_password_verified': 'verified'})) else: raise ExtractorError('Unable to extract info section', cause=e)