[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, 'http_chunk_size': 10485760,
} }
formats.append(dct) formats.append(dct)
elif video_info.get('hlsvp'): else:
manifest_url = video_info['hlsvp'][0] 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 = [] formats = []
m3u8_formats = self._extract_m3u8_formats( m3u8_formats = self._extract_m3u8_formats(
manifest_url, video_id, 'mp4', fatal=False) manifest_url, video_id, 'mp4', fatal=False)
@ -1955,7 +1962,7 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
error_message = extract_unavailable_message() error_message = extract_unavailable_message()
if error_message: if error_message:
raise ExtractorError(error_message, expected=True) 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 # uploader
video_uploader = try_get( video_uploader = try_get(