mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-12-02 19:36:45 +00:00
[extractor] Skip subtitles without URI in m3u8 manifests
Closes #339 Authored by: hheimbuerger
This commit is contained in:
parent
acdecdfaef
commit
3907333c5d
|
@ -2042,7 +2042,12 @@ def extract_media(x_media_line):
|
||||||
groups.setdefault(group_id, []).append(media)
|
groups.setdefault(group_id, []).append(media)
|
||||||
# <https://tools.ietf.org/html/rfc8216#section-4.3.4.1>
|
# <https://tools.ietf.org/html/rfc8216#section-4.3.4.1>
|
||||||
if media_type == 'SUBTITLES':
|
if media_type == 'SUBTITLES':
|
||||||
lang = media['LANGUAGE'] # XXX: normalise?
|
# According to RFC 8216 §4.3.4.2.1, URI is REQUIRED in the
|
||||||
|
# EXT-X-MEDIA tag if the media type is SUBTITLES.
|
||||||
|
# However, lack of URI has been spotted in the wild.
|
||||||
|
# e.g. NebulaIE; see https://github.com/yt-dlp/yt-dlp/issues/339
|
||||||
|
if not media.get('URI'):
|
||||||
|
return
|
||||||
url = format_url(media['URI'])
|
url = format_url(media['URI'])
|
||||||
sub_info = {
|
sub_info = {
|
||||||
'url': url,
|
'url': url,
|
||||||
|
@ -2054,6 +2059,7 @@ def extract_media(x_media_line):
|
||||||
# <https://tools.ietf.org/html/rfc8216#section-3.1>
|
# <https://tools.ietf.org/html/rfc8216#section-3.1>
|
||||||
sub_info['ext'] = 'vtt'
|
sub_info['ext'] = 'vtt'
|
||||||
sub_info['protocol'] = 'm3u8_native'
|
sub_info['protocol'] = 'm3u8_native'
|
||||||
|
lang = media.get('LANGUAGE') or 'unknown'
|
||||||
subtitles.setdefault(lang, []).append(sub_info)
|
subtitles.setdefault(lang, []).append(sub_info)
|
||||||
if media_type not in ('VIDEO', 'AUDIO'):
|
if media_type not in ('VIDEO', 'AUDIO'):
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in a new issue