mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	[extractor/common] Respect Width and Height attributes in ISM manifests
This commit is contained in:
		| @@ -2001,6 +2001,12 @@ class InfoExtractor(object): | |||||||
|             compat_etree_fromstring(ism.encode('utf-8')), urlh.geturl(), ism_id) |             compat_etree_fromstring(ism.encode('utf-8')), urlh.geturl(), ism_id) | ||||||
|  |  | ||||||
|     def _parse_ism_formats(self, ism_doc, ism_url, ism_id=None): |     def _parse_ism_formats(self, ism_doc, ism_url, ism_id=None): | ||||||
|  |         """ | ||||||
|  |         Parse formats from ISM manifest. | ||||||
|  |         References: | ||||||
|  |          1. [MS-SSTR]: Smooth Streaming Protocol, | ||||||
|  |             https://msdn.microsoft.com/en-us/library/ff469518.aspx | ||||||
|  |         """ | ||||||
|         if ism_doc.get('IsLive') == 'TRUE' or ism_doc.find('Protection') is not None: |         if ism_doc.get('IsLive') == 'TRUE' or ism_doc.find('Protection') is not None: | ||||||
|             return [] |             return [] | ||||||
|  |  | ||||||
| @@ -2022,8 +2028,11 @@ class InfoExtractor(object): | |||||||
|                     self.report_warning('%s is not a supported codec' % fourcc) |                     self.report_warning('%s is not a supported codec' % fourcc) | ||||||
|                     continue |                     continue | ||||||
|                 tbr = int(track.attrib['Bitrate']) // 1000 |                 tbr = int(track.attrib['Bitrate']) // 1000 | ||||||
|                 width = int_or_none(track.get('MaxWidth')) |                 # [1] does not mention Width and Height attributes. However, | ||||||
|                 height = int_or_none(track.get('MaxHeight')) |                 # they're often present while MaxWidth and MaxHeight are | ||||||
|  |                 # missing, so should be used as fallbacks | ||||||
|  |                 width = int_or_none(track.get('MaxWidth') or track.get('Width')) | ||||||
|  |                 height = int_or_none(track.get('MaxHeight') or track.get('Height')) | ||||||
|                 sampling_rate = int_or_none(track.get('SamplingRate')) |                 sampling_rate = int_or_none(track.get('SamplingRate')) | ||||||
|  |  | ||||||
|                 track_url_pattern = re.sub(r'{[Bb]itrate}', track.attrib['Bitrate'], url_pattern) |                 track_url_pattern = re.sub(r'{[Bb]itrate}', track.attrib['Bitrate'], url_pattern) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․