diff options
author | Yen Chi Hsuan <yan12125@gmail.com> | 2016-03-11 21:40:07 +0800 |
---|---|---|
committer | Yen Chi Hsuan <yan12125@gmail.com> | 2016-03-11 21:40:07 +0800 |
commit | 64f08d4ff2392135be07774f2d5371f111f21592 (patch) | |
tree | 2664977778269aae36181360f718d201a8fa5197 /youtube_dl | |
parent | e738e43358a7f34dbbcb73b45b228d7b9b3360a7 (diff) | |
parent | 6d210f20905a5c31f72eff16f9f4dbbed7f52c70 (diff) |
Merge pull request #8766 from yan12125/dash-detect-ext
Detect file extensions of DASH formats from their codecs
Diffstat (limited to 'youtube_dl')
-rw-r--r-- | youtube_dl/extractor/common.py | 2 | ||||
-rw-r--r-- | youtube_dl/utils.py | 16 |
2 files changed, 18 insertions, 0 deletions
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 |