From: Yen Chi Hsuan Date: Fri, 11 Mar 2016 13:40:07 +0000 (+0800) Subject: Merge pull request #8766 from yan12125/dash-detect-ext X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=commitdiff_plain;h=64f08d4ff2392135be07774f2d5371f111f21592;hp=e738e43358a7f34dbbcb73b45b228d7b9b3360a7;p=youtube-dl Merge pull request #8766 from yan12125/dash-detect-ext Detect file extensions of DASH formats from their codecs --- diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index bfa9c82f6..393677251 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -29,6 +29,7 @@ from ..utils import ( age_restricted, bug_reports_message, clean_html, + codec2ext, compiled_regex_type, determine_ext, error_to_compat_str, @@ -1471,6 +1472,7 @@ class InfoExtractor(object): f = { 'format_id': '%s-%s' % (mpd_id, representation_id) if mpd_id else representation_id, 'url': base_url, + 'ext': codec2ext(representation_attrib.get('codecs')), 'width': int_or_none(representation_attrib.get('width')), 'height': int_or_none(representation_attrib.get('height')), 'tbr': int_or_none(representation_attrib.get('bandwidth'), 1000), diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 22a39a0ab..0e04e91a4 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -1893,6 +1893,22 @@ def mimetype2ext(mt): }.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): try: url_handle.headers