|
|
@ -17,6 +17,7 @@ from ..utils import (
|
|
|
|
ExtractorError,
|
|
|
|
ExtractorError,
|
|
|
|
xpath_with_ns,
|
|
|
|
xpath_with_ns,
|
|
|
|
unsmuggle_url,
|
|
|
|
unsmuggle_url,
|
|
|
|
|
|
|
|
int_or_none,
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
_x = lambda p: xpath_with_ns(p, {'smil': 'http://www.w3.org/2005/SMIL21/Language'})
|
|
|
|
_x = lambda p: xpath_with_ns(p, {'smil': 'http://www.w3.org/2005/SMIL21/Language'})
|
|
|
@ -148,9 +149,9 @@ class ThePlatformIE(InfoExtractor):
|
|
|
|
base_url = head.find(_x('smil:meta')).attrib['base']
|
|
|
|
base_url = head.find(_x('smil:meta')).attrib['base']
|
|
|
|
for f in switch.findall(_x('smil:video')):
|
|
|
|
for f in switch.findall(_x('smil:video')):
|
|
|
|
attr = f.attrib
|
|
|
|
attr = f.attrib
|
|
|
|
width = int(attr['width'])
|
|
|
|
width = int_or_none(attr.get('width'))
|
|
|
|
height = int(attr['height'])
|
|
|
|
height = int_or_none(attr.get('height'))
|
|
|
|
vbr = int(attr['system-bitrate']) // 1000
|
|
|
|
vbr = int_or_none(attr.get('system-bitrate'), 1000)
|
|
|
|
format_id = '%dx%d_%dk' % (width, height, vbr)
|
|
|
|
format_id = '%dx%d_%dk' % (width, height, vbr)
|
|
|
|
formats.append({
|
|
|
|
formats.append({
|
|
|
|
'format_id': format_id,
|
|
|
|
'format_id': format_id,
|
|
|
@ -165,7 +166,7 @@ class ThePlatformIE(InfoExtractor):
|
|
|
|
switch = body.find(_x('smil:seq//smil:switch')) or body.find(_x('smil:seq/smil:switch'))
|
|
|
|
switch = body.find(_x('smil:seq//smil:switch')) or body.find(_x('smil:seq/smil:switch'))
|
|
|
|
for f in switch.findall(_x('smil:video')):
|
|
|
|
for f in switch.findall(_x('smil:video')):
|
|
|
|
attr = f.attrib
|
|
|
|
attr = f.attrib
|
|
|
|
vbr = int(attr['system-bitrate']) // 1000
|
|
|
|
vbr = int_or_none(attr.get('system-bitrate'), 1000)
|
|
|
|
ext = determine_ext(attr['src'])
|
|
|
|
ext = determine_ext(attr['src'])
|
|
|
|
if ext == 'once':
|
|
|
|
if ext == 'once':
|
|
|
|
ext = 'mp4'
|
|
|
|
ext = 'mp4'
|
|
|
@ -184,5 +185,5 @@ class ThePlatformIE(InfoExtractor):
|
|
|
|
'formats': formats,
|
|
|
|
'formats': formats,
|
|
|
|
'description': info['description'],
|
|
|
|
'description': info['description'],
|
|
|
|
'thumbnail': info['defaultThumbnailUrl'],
|
|
|
|
'thumbnail': info['defaultThumbnailUrl'],
|
|
|
|
'duration': info['duration'] // 1000,
|
|
|
|
'duration': int_or_none(info.get('duration'), 1000),
|
|
|
|
}
|
|
|
|
}
|
|
|
|