aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2017-12-30 03:54:14 +0700
committerSergey M․ <dstftw@gmail.com>2017-12-30 03:54:14 +0700
commit580f3c79d52ae3f880b4ca64e22665bf094ae65f (patch)
treed159ba4c9c478e2aded41e138899cf577ba613e3
parent9d6ac71c27b1dfb662c795ef598dbfd0286682da (diff)
downloadyoutube-dl-580f3c79d52ae3f880b4ca64e22665bf094ae65f.zip
youtube-dl-580f3c79d52ae3f880b4ca64e22665bf094ae65f.tar.gz
youtube-dl-580f3c79d52ae3f880b4ca64e22665bf094ae65f.tar.bz2
[vimeo] Improve password protected videos extraction (closes #15114)
-rw-r--r--youtube_dl/extractor/vimeo.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/youtube_dl/extractor/vimeo.py b/youtube_dl/extractor/vimeo.py
index cedb548..6af7056 100644
--- a/youtube_dl/extractor/vimeo.py
+++ b/youtube_dl/extractor/vimeo.py
@@ -468,11 +468,12 @@ class VimeoIE(VimeoBaseInfoExtractor):
request = sanitized_Request(url, headers=headers)
try:
webpage, urlh = self._download_webpage_handle(request, video_id)
+ redirect_url = compat_str(urlh.geturl())
# Some URLs redirect to ondemand can't be extracted with
# this extractor right away thus should be passed through
# ondemand extractor (e.g. https://vimeo.com/73445910)
- if VimeoOndemandIE.suitable(urlh.geturl()):
- return self.url_result(urlh.geturl(), VimeoOndemandIE.ie_key())
+ if VimeoOndemandIE.suitable(redirect_url):
+ return self.url_result(redirect_url, VimeoOndemandIE.ie_key())
except ExtractorError as ee:
if isinstance(ee.cause, compat_HTTPError) and ee.cause.code == 403:
errmsg = ee.cause.read()
@@ -541,15 +542,15 @@ class VimeoIE(VimeoBaseInfoExtractor):
if re.search(r'<form[^>]+?id="pw_form"', webpage) is not None:
if '_video_password_verified' in data:
raise ExtractorError('video password verification failed!')
- self._verify_video_password(url, video_id, webpage)
+ self._verify_video_password(redirect_url, video_id, webpage)
return self._real_extract(
- smuggle_url(url, {'_video_password_verified': 'verified'}))
+ smuggle_url(redirect_url, {'_video_password_verified': 'verified'}))
else:
raise ExtractorError('Unable to extract info section',
cause=e)
else:
if config.get('view') == 4:
- config = self._verify_player_video_password(url, video_id)
+ config = self._verify_player_video_password(redirect_url, video_id)
def is_rented():
if '>You rented this title.<' in webpage: