|
|
@ -2007,16 +2007,14 @@ class InfoExtractor(object):
|
|
|
|
f['url'] = initialization_url
|
|
|
|
f['url'] = initialization_url
|
|
|
|
f['fragments'].append({location_key(initialization_url): initialization_url})
|
|
|
|
f['fragments'].append({location_key(initialization_url): initialization_url})
|
|
|
|
f['fragments'].extend(representation_ms_info['fragments'])
|
|
|
|
f['fragments'].extend(representation_ms_info['fragments'])
|
|
|
|
try:
|
|
|
|
# According to [1, 5.3.5.2, Table 7, page 35] @id of Representation
|
|
|
|
existing_format = next(
|
|
|
|
# is not necessarily unique within a Period thus formats with
|
|
|
|
fo for fo in formats
|
|
|
|
# the same `format_id` are quite possible. There are numerous examples
|
|
|
|
if fo['format_id'] == representation_id)
|
|
|
|
# of such manifests (see https://github.com/rg3/youtube-dl/issues/15111,
|
|
|
|
except StopIteration:
|
|
|
|
# https://github.com/rg3/youtube-dl/issues/13919)
|
|
|
|
full_info = formats_dict.get(representation_id, {}).copy()
|
|
|
|
full_info = formats_dict.get(representation_id, {}).copy()
|
|
|
|
full_info.update(f)
|
|
|
|
full_info.update(f)
|
|
|
|
formats.append(full_info)
|
|
|
|
formats.append(full_info)
|
|
|
|
else:
|
|
|
|
|
|
|
|
existing_format.update(f)
|
|
|
|
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
self.report_warning('Unknown MIME type %s in DASH manifest' % mime_type)
|
|
|
|
self.report_warning('Unknown MIME type %s in DASH manifest' % mime_type)
|
|
|
|
return formats
|
|
|
|
return formats
|
|
|
|