|
|
|
@ -33,28 +33,18 @@ class LivestreamIE(InfoExtractor): |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
def _extract_video_info(self, video_data): |
|
|
|
|
video_id = compat_str(video_data['id']) |
|
|
|
|
|
|
|
|
|
FORMAT_KEYS = ( |
|
|
|
|
('sd', 'progressive_url'), |
|
|
|
|
('hd', 'progressive_url_hd'), |
|
|
|
|
) |
|
|
|
|
formats = [{ |
|
|
|
|
'format_id': format_id, |
|
|
|
|
'url': video_data[key], |
|
|
|
|
'quality': i + 1, |
|
|
|
|
} for i, (format_id, key) in enumerate(FORMAT_KEYS) |
|
|
|
|
if video_data.get(key)] |
|
|
|
|
|
|
|
|
|
smil_url = video_data.get('smil_url') |
|
|
|
|
if smil_url: |
|
|
|
|
def _parse_smil(self, video_id, smil_url): |
|
|
|
|
formats = [] |
|
|
|
|
_SWITCH_XPATH = ( |
|
|
|
|
'.//{http://www.w3.org/2001/SMIL20/Language}body/' |
|
|
|
|
'{http://www.w3.org/2001/SMIL20/Language}switch') |
|
|
|
|
smil_doc = self._download_xml( |
|
|
|
|
smil_url, video_id, note='Downloading SMIL information') |
|
|
|
|
|
|
|
|
|
smil_url, video_id, |
|
|
|
|
note='Downloading SMIL information', |
|
|
|
|
errnote='Unable to download SMIL information', |
|
|
|
|
fatal=False) |
|
|
|
|
if smil_doc is False: # Download failed |
|
|
|
|
return formats |
|
|
|
|
title_node = find_xpath_attr( |
|
|
|
|
smil_doc, './/{http://www.w3.org/2001/SMIL20/Language}meta', |
|
|
|
|
'name', 'title') |
|
|
|
@ -84,6 +74,25 @@ class LivestreamIE(InfoExtractor): |
|
|
|
|
'tbr': tbr, |
|
|
|
|
'preference': -1000, |
|
|
|
|
}) |
|
|
|
|
return formats |
|
|
|
|
|
|
|
|
|
def _extract_video_info(self, video_data): |
|
|
|
|
video_id = compat_str(video_data['id']) |
|
|
|
|
|
|
|
|
|
FORMAT_KEYS = ( |
|
|
|
|
('sd', 'progressive_url'), |
|
|
|
|
('hd', 'progressive_url_hd'), |
|
|
|
|
) |
|
|
|
|
formats = [{ |
|
|
|
|
'format_id': format_id, |
|
|
|
|
'url': video_data[key], |
|
|
|
|
'quality': i + 1, |
|
|
|
|
} for i, (format_id, key) in enumerate(FORMAT_KEYS) |
|
|
|
|
if video_data.get(key)] |
|
|
|
|
|
|
|
|
|
smil_url = video_data.get('smil_url') |
|
|
|
|
if smil_url: |
|
|
|
|
formats.extend(self._parse_smil(video_id, smil_url)) |
|
|
|
|
self._sort_formats(formats) |
|
|
|
|
|
|
|
|
|
return { |
|
|
|
|