Merge pull request #8766 from yan12125/dash-detect-ext

Detect file extensions of DASH formats from their codecs
This commit is contained in:
Yen Chi Hsuan 2016-03-11 21:40:07 +08:00
commit 64f08d4ff2
2 changed files with 18 additions and 0 deletions

View file

@ -29,6 +29,7 @@ from ..utils import (
age_restricted, age_restricted,
bug_reports_message, bug_reports_message,
clean_html, clean_html,
codec2ext,
compiled_regex_type, compiled_regex_type,
determine_ext, determine_ext,
error_to_compat_str, error_to_compat_str,
@ -1471,6 +1472,7 @@ class InfoExtractor(object):
f = { f = {
'format_id': '%s-%s' % (mpd_id, representation_id) if mpd_id else representation_id, 'format_id': '%s-%s' % (mpd_id, representation_id) if mpd_id else representation_id,
'url': base_url, 'url': base_url,
'ext': codec2ext(representation_attrib.get('codecs')),
'width': int_or_none(representation_attrib.get('width')), 'width': int_or_none(representation_attrib.get('width')),
'height': int_or_none(representation_attrib.get('height')), 'height': int_or_none(representation_attrib.get('height')),
'tbr': int_or_none(representation_attrib.get('bandwidth'), 1000), 'tbr': int_or_none(representation_attrib.get('bandwidth'), 1000),

View file

@ -1893,6 +1893,22 @@ def mimetype2ext(mt):
}.get(res, res) }.get(res, res)
def codec2ext(codec):
codec_type = codec.split('.')[0]
# Leave the return value None for unknown values as codec_type
# is not a good fallback for file extensions
return {
'avc1': 'mp4',
'avc2': 'mp4',
'avc3': 'mp4',
'avc4': 'mp4',
'mp4a': 'm4a',
'vorbis': 'webm',
'vp9': 'webm',
}.get(codec_type)
def urlhandle_detect_ext(url_handle): def urlhandle_detect_ext(url_handle):
try: try:
url_handle.headers url_handle.headers