[youtube] Extract live HLS URL from player response (closes #18799)

This commit is contained in:
Sergey M․ 2019-01-10 22:46:53 +07:00
parent 432aba1c5e
commit c3e543893b
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D
1 changed files with 31 additions and 24 deletions

View File

@ -1931,8 +1931,15 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
'http_chunk_size': 10485760,
}
formats.append(dct)
elif video_info.get('hlsvp'):
manifest_url = video_info['hlsvp'][0]
else:
manifest_url = (
url_or_none(try_get(
player_response,
lambda x: x['streamingData']['hlsManifestUrl'],
compat_str)) or
url_or_none(try_get(
video_info, lambda x: x['hlsvp'][0], compat_str)))
if manifest_url:
formats = []
m3u8_formats = self._extract_m3u8_formats(
manifest_url, video_id, 'mp4', fatal=False)
@ -1955,7 +1962,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
error_message = extract_unavailable_message()
if error_message:
raise ExtractorError(error_message, expected=True)
raise ExtractorError('no conn, hlsvp or url_encoded_fmt_stream_map information found in video info')
raise ExtractorError('no conn, hlsvp, hlsManifestUrl or url_encoded_fmt_stream_map information found in video info')
# uploader
video_uploader = try_get(