[vimeo] add support for unlisted video source format extraction
This commit is contained in:
parent
b92bb0e02a
commit
cf2dbec630
|
@ -226,10 +226,12 @@ class VimeoBaseInfoExtractor(InfoExtractor):
|
||||||
'is_live': is_live,
|
'is_live': is_live,
|
||||||
}
|
}
|
||||||
|
|
||||||
def _extract_original_format(self, url, video_id):
|
def _extract_original_format(self, url, video_id, unlisted_hash=None):
|
||||||
|
query = {'action': 'load_download_config'}
|
||||||
|
if unlisted_hash:
|
||||||
|
query['unlisted_hash'] = unlisted_hash
|
||||||
download_data = self._download_json(
|
download_data = self._download_json(
|
||||||
url, video_id, fatal=False,
|
url, video_id, fatal=False, query=query,
|
||||||
query={'action': 'load_download_config'},
|
|
||||||
headers={'X-Requested-With': 'XMLHttpRequest'})
|
headers={'X-Requested-With': 'XMLHttpRequest'})
|
||||||
if download_data:
|
if download_data:
|
||||||
source_file = download_data.get('source_file')
|
source_file = download_data.get('source_file')
|
||||||
|
@ -509,6 +511,11 @@ class VimeoIE(VimeoBaseInfoExtractor):
|
||||||
{
|
{
|
||||||
'url': 'https://vimeo.com/160743502/abd0e13fb4',
|
'url': 'https://vimeo.com/160743502/abd0e13fb4',
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
# requires passing unlisted_hash(a52724358e) to load_download_config request
|
||||||
|
'url': 'https://vimeo.com/392479337/a52724358e',
|
||||||
|
'only_matching': True,
|
||||||
}
|
}
|
||||||
# https://gettingthingsdone.com/workflowmap/
|
# https://gettingthingsdone.com/workflowmap/
|
||||||
# vimeo embed with check-password page protected by Referer header
|
# vimeo embed with check-password page protected by Referer header
|
||||||
|
@ -673,7 +680,8 @@ class VimeoIE(VimeoBaseInfoExtractor):
|
||||||
if config.get('view') == 4:
|
if config.get('view') == 4:
|
||||||
config = self._verify_player_video_password(redirect_url, video_id, headers)
|
config = self._verify_player_video_password(redirect_url, video_id, headers)
|
||||||
|
|
||||||
vod = config.get('video', {}).get('vod', {})
|
video = config.get('video') or {}
|
||||||
|
vod = video.get('vod') or {}
|
||||||
|
|
||||||
def is_rented():
|
def is_rented():
|
||||||
if '>You rented this title.<' in webpage:
|
if '>You rented this title.<' in webpage:
|
||||||
|
@ -733,7 +741,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
|
||||||
formats = []
|
formats = []
|
||||||
|
|
||||||
source_format = self._extract_original_format(
|
source_format = self._extract_original_format(
|
||||||
'https://vimeo.com/' + video_id, video_id)
|
'https://vimeo.com/' + video_id, video_id, video.get('unlisted_hash'))
|
||||||
if source_format:
|
if source_format:
|
||||||
formats.append(source_format)
|
formats.append(source_format)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue