[Vice] alternative embed player extraction
fixes https://news.vice.com/video/experimenting-on-animals-inside-the-monkey-lab https://video.vice.com/en_us/embed/57f41d3556a0a80f54726060
This commit is contained in:
parent
ec3472b832
commit
abda700592
@ -21,26 +21,24 @@ from ..utils import (
|
|||||||
|
|
||||||
class ViceBaseIE(AdobePassIE):
|
class ViceBaseIE(AdobePassIE):
|
||||||
def _extract_preplay_video(self, url, locale, webpage):
|
def _extract_preplay_video(self, url, locale, webpage):
|
||||||
|
watch_hub = self._search_regex(
|
||||||
prefetch_data = self._parse_json(self._search_regex(
|
r'(?s)(<watch-hub\s*.+?</watch-hub>)', webpage, 'watch hub', default=None)
|
||||||
r'window\.__PREFETCH_DATA\s*=\s*({.*});',
|
if watch_hub:
|
||||||
webpage, 'prefetch data'), None, fatal=False)
|
watch_hub_data = extract_attributes(watch_hub)
|
||||||
if prefetch_data:
|
|
||||||
if prefetch_data.get('data'):
|
|
||||||
prefetch_data = prefetch_data.get('data')
|
|
||||||
prefetch_data = prefetch_data.get('video')
|
|
||||||
|
|
||||||
video_id = prefetch_data.get('id')
|
|
||||||
title = prefetch_data.get('title')
|
|
||||||
is_locked = prefetch_data.get('locked') == '1' or prefetch_data.get('locked') == 'true'
|
|
||||||
watch_hub_data = {}
|
|
||||||
else:
|
|
||||||
prefetch_data = {}
|
|
||||||
watch_hub_data = extract_attributes(self._search_regex(
|
|
||||||
r'(?s)(<watch-hub\s*.+?</watch-hub>)', webpage, 'watch hub'))
|
|
||||||
video_id = watch_hub_data['vms-id']
|
video_id = watch_hub_data['vms-id']
|
||||||
title = watch_hub_data['video-title']
|
title = watch_hub_data['video-title']
|
||||||
is_locked = watch_hub_data.get('video-locked') == '1'
|
is_locked = watch_hub_data.get('video-locked') == '1'
|
||||||
|
prefetch_data = {}
|
||||||
|
else:
|
||||||
|
prefetch_data = self._parse_json(self._search_regex(
|
||||||
|
r'window\.__PREFETCH_DATA\s*=\s*({.*});',
|
||||||
|
webpage, 'prefetch data'), None)
|
||||||
|
prefetch_data = prefetch_data.get("data", {})
|
||||||
|
prefetch_data = prefetch_data['video']
|
||||||
|
video_id = prefetch_data['id']
|
||||||
|
title = prefetch_data.get('title')
|
||||||
|
is_locked = prefetch_data.get('locked') == '1' or prefetch_data.get('locked') == 'true'
|
||||||
|
watch_hub_data = {}
|
||||||
|
|
||||||
query = {}
|
query = {}
|
||||||
if is_locked:
|
if is_locked:
|
||||||
@ -88,7 +86,7 @@ class ViceBaseIE(AdobePassIE):
|
|||||||
'_type': 'url_transparent',
|
'_type': 'url_transparent',
|
||||||
'url': uplynk_preplay_url,
|
'url': uplynk_preplay_url,
|
||||||
'id': video_id,
|
'id': video_id,
|
||||||
'title': title,
|
'title': title or base.get('display_title'),
|
||||||
'description': base.get('body') or base.get('display_body'),
|
'description': base.get('body') or base.get('display_body'),
|
||||||
'thumbnail': prefetch_data.get('thumbnail_url') or watch_hub_data.get('cover-image') or watch_hub_data.get('thumbnail'),
|
'thumbnail': prefetch_data.get('thumbnail_url') or watch_hub_data.get('cover-image') or watch_hub_data.get('thumbnail'),
|
||||||
'duration': int_or_none(video_data.get('video_duration')) or parse_duration(watch_hub_data.get('video-duration')),
|
'duration': int_or_none(video_data.get('video_duration')) or parse_duration(watch_hub_data.get('video-duration')),
|
||||||
@ -160,7 +158,18 @@ class ViceIE(ViceBaseIE):
|
|||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
}, {
|
}, {
|
||||||
'url': 'https://video.vice.com/en_us/embed/57f41d3556a0a80f54726060',
|
'url': 'https://video.vice.com/en_us/embed/57f41d3556a0a80f54726060',
|
||||||
'only_matching': True,
|
'info_dict': {
|
||||||
|
'id': '57f41d3556a0a80f54726060',
|
||||||
|
'ext': 'mp4',
|
||||||
|
'title': "Making The World's First Male Sex Doll",
|
||||||
|
'description': "<p>In her show <i>Slutever</i>, VICE's resident sexpert Karley Sciortino explores the "
|
||||||
|
"mysterious labyrinth of human sexuality and check out the various ways that people around "
|
||||||
|
"the world like to get off. </p><p>In the premiere episode of <i>Slutever</i>'s brand new "
|
||||||
|
"season, Karley finds herself in the world of life-like custom male sex dolls and meets the "
|
||||||
|
"team pioneering the perfect plastic fuck buddy for women. </p>",
|
||||||
|
'uploader_id': '57a204088cb727dec794c67b',
|
||||||
|
'age_limit': 'TV-MA',
|
||||||
|
},
|
||||||
}]
|
}]
|
||||||
_PREPLAY_HOST = 'video.vice'
|
_PREPLAY_HOST = 'video.vice'
|
||||||
|
|
||||||
@ -294,7 +303,7 @@ class ViceArticleIE(InfoExtractor):
|
|||||||
prefetch_data['embed_code'], 'video URL')
|
prefetch_data['embed_code'], 'video URL')
|
||||||
else:
|
else:
|
||||||
video_url = self._html_search_regex(
|
video_url = self._html_search_regex(
|
||||||
r'<\s*iframe\s*src=\s*"([^"]+)',
|
r'<iframe[^>]+src="([^"]+)',
|
||||||
body, 'video URL')
|
body, 'video URL')
|
||||||
|
|
||||||
return _url_res(video_url, ViceIE.ie_key())
|
return _url_res(video_url, ViceIE.ie_key())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user