1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2024-11-02 17:22:31 +01:00

[rts] Fix f4m and m3u8 extraction (Closes #4873)

This commit is contained in:
Sergey M․ 2015-02-05 22:17:50 +06:00
parent 60ca389c64
commit f13b88c616

View File

@ -6,12 +6,14 @@
from .common import InfoExtractor from .common import InfoExtractor
from ..compat import ( from ..compat import (
compat_str, compat_str,
compat_urllib_parse_urlparse,
) )
from ..utils import ( from ..utils import (
int_or_none, int_or_none,
parse_duration, parse_duration,
parse_iso8601, parse_iso8601,
unescapeHTML, unescapeHTML,
xpath_text,
) )
@ -159,11 +161,27 @@ def extract_bitrate(url):
return int_or_none(self._search_regex( return int_or_none(self._search_regex(
r'-([0-9]+)k\.', url, 'bitrate', default=None)) r'-([0-9]+)k\.', url, 'bitrate', default=None))
formats = [{ formats = []
'format_id': fid, for format_id, format_url in info['streams'].items():
'url': furl, if format_url.endswith('.f4m'):
'tbr': extract_bitrate(furl), token = self._download_xml(
} for fid, furl in info['streams'].items()] 'http://tp.srgssr.ch/token/akahd.xml?stream=%s/*' % compat_urllib_parse_urlparse(format_url).path,
video_id, 'Downloading %s token' % format_id)
auth_params = xpath_text(token, './/authparams', 'auth params')
if not auth_params:
continue
formats.extend(self._extract_f4m_formats(
'%s?%s&hdcore=3.4.0&plugin=aasp-3.4.0.132.66' % (format_url, auth_params),
video_id, f4m_id=format_id))
elif format_url.endswith('.m3u8'):
formats.extend(self._extract_m3u8_formats(
format_url, video_id, 'mp4', m3u8_id=format_id))
else:
formats.append({
'format_id': format_id,
'url': format_url,
'tbr': extract_bitrate(format_url),
})
if 'media' in info: if 'media' in info:
formats.extend([{ formats.extend([{