mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-12-13 14:37:43 +01:00
[vimeo] fix the extraction for videos protected with password
Added a test video.
This commit is contained in:
parent
0a89b2852e
commit
93b22c7828
@ -1,3 +1,4 @@
|
|||||||
|
# encoding: utf-8
|
||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
import itertools
|
import itertools
|
||||||
@ -55,7 +56,22 @@ class VimeoIE(InfoExtractor):
|
|||||||
u'title': u'Kathy Sierra: Building the minimum Badass User, Business of Software',
|
u'title': u'Kathy Sierra: Building the minimum Badass User, Business of Software',
|
||||||
u'uploader': u'The BLN & Business of Software',
|
u'uploader': u'The BLN & Business of Software',
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
u'url': u'http://vimeo.com/68375962',
|
||||||
|
u'file': u'68375962.mp4',
|
||||||
|
u'md5': u'aaf896bdb7ddd6476df50007a0ac0ae7',
|
||||||
|
u'note': u'Video protected with password',
|
||||||
|
u'info_dict': {
|
||||||
|
u'title': u'youtube-dl password protected test video',
|
||||||
|
u'upload_date': u'20130614',
|
||||||
|
u'uploader_id': u'user18948128',
|
||||||
|
u'uploader': u'Jaime Marquínez Ferrándiz',
|
||||||
|
},
|
||||||
|
u'params': {
|
||||||
|
u'videopassword': u'youtube-dl',
|
||||||
|
},
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
def _login(self):
|
def _login(self):
|
||||||
@ -130,20 +146,21 @@ def _real_extract(self, url, new_video=True):
|
|||||||
|
|
||||||
# Extract the config JSON
|
# Extract the config JSON
|
||||||
try:
|
try:
|
||||||
config_url = self._html_search_regex(
|
try:
|
||||||
r' data-config-url="(.+?)"', webpage, u'config URL')
|
config_url = self._html_search_regex(
|
||||||
config_json = self._download_webpage(config_url, video_id)
|
r' data-config-url="(.+?)"', webpage, u'config URL')
|
||||||
config = json.loads(config_json)
|
config_json = self._download_webpage(config_url, video_id)
|
||||||
except RegexNotFoundError:
|
config = json.loads(config_json)
|
||||||
# For pro videos or player.vimeo.com urls
|
except RegexNotFoundError:
|
||||||
config = self._search_regex([r' = {config:({.+?}),assets:', r'c=({.+?);'],
|
# For pro videos or player.vimeo.com urls
|
||||||
webpage, u'info section', flags=re.DOTALL)
|
config = self._search_regex([r' = {config:({.+?}),assets:', r'c=({.+?);'],
|
||||||
config = json.loads(config)
|
webpage, u'info section', flags=re.DOTALL)
|
||||||
|
config = json.loads(config)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
if re.search('The creator of this video has not given you permission to embed it on this domain.', webpage):
|
if re.search('The creator of this video has not given you permission to embed it on this domain.', webpage):
|
||||||
raise ExtractorError(u'The author has restricted the access to this video, try with the "--referer" option')
|
raise ExtractorError(u'The author has restricted the access to this video, try with the "--referer" option')
|
||||||
|
|
||||||
if re.search('If so please provide the correct password.', webpage):
|
if re.search('<form[^>]+?id="pw_form"', webpage) is not None:
|
||||||
self._verify_video_password(url, video_id, webpage)
|
self._verify_video_password(url, video_id, webpage)
|
||||||
return self._real_extract(url)
|
return self._real_extract(url)
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user