mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	Merge pull request #8766 from yan12125/dash-detect-ext
Detect file extensions of DASH formats from their codecs
This commit is contained in:
		| @@ -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), | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Yen Chi Hsuan
					Yen Chi Hsuan