|
|
@ -128,8 +128,10 @@ class RUTVIE(InfoExtractor): |
|
|
|
elif video_path.startswith('index/iframe/cast_id'): |
|
|
|
video_type = 'live' |
|
|
|
|
|
|
|
is_live = video_type == 'live' |
|
|
|
|
|
|
|
json_data = self._download_json( |
|
|
|
'http://player.rutv.ru/iframe/%splay/id/%s' % ('live-' if video_type == 'live' else '', video_id), |
|
|
|
'http://player.rutv.ru/iframe/%splay/id/%s' % ('live-' if is_live else '', video_id), |
|
|
|
video_id, 'Downloading JSON') |
|
|
|
|
|
|
|
if json_data['errors']: |
|
|
@ -156,6 +158,7 @@ class RUTVIE(InfoExtractor): |
|
|
|
|
|
|
|
for transport, links in media['sources'].items(): |
|
|
|
for quality, url in links.items(): |
|
|
|
preference = -1 if priority_transport == transport else -2 |
|
|
|
if transport == 'rtmp': |
|
|
|
mobj = re.search(r'^(?P<url>rtmp://[^/]+/(?P<app>.+))/(?P<playpath>.+)$', url) |
|
|
|
if not mobj: |
|
|
@ -169,9 +172,11 @@ class RUTVIE(InfoExtractor): |
|
|
|
'rtmp_live': True, |
|
|
|
'ext': 'flv', |
|
|
|
'vbr': int(quality), |
|
|
|
'preference': preference, |
|
|
|
} |
|
|
|
elif transport == 'm3u8': |
|
|
|
formats.extend(self._extract_m3u8_formats(url, video_id, 'mp4')) |
|
|
|
formats.extend(self._extract_m3u8_formats( |
|
|
|
url, video_id, 'mp4', preference=preference, m3u8_id='hls')) |
|
|
|
continue |
|
|
|
else: |
|
|
|
fmt = { |
|
|
@ -181,7 +186,6 @@ class RUTVIE(InfoExtractor): |
|
|
|
'width': width, |
|
|
|
'height': height, |
|
|
|
'format_id': '%s-%s' % (transport, quality), |
|
|
|
'preference': -1 if priority_transport == transport else -2, |
|
|
|
}) |
|
|
|
formats.append(fmt) |
|
|
|
|
|
|
@ -190,8 +194,6 @@ class RUTVIE(InfoExtractor): |
|
|
|
|
|
|
|
self._sort_formats(formats) |
|
|
|
|
|
|
|
is_live = video_type == 'live' |
|
|
|
|
|
|
|
return { |
|
|
|
'id': video_id, |
|
|
|
'title': self._live_title(title) if is_live else title, |
|
|
|