mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[youtube] Skip WebVTT in DASH manifest (#5297)
This commit is contained in:
		| @@ -788,33 +788,41 @@ class YoutubeIE(YoutubeBaseInfoExtractor): | ||||
|             errnote='Could not download DASH manifest') | ||||
|  | ||||
|         formats = [] | ||||
|         for r in dash_doc.findall('.//{urn:mpeg:DASH:schema:MPD:2011}Representation'): | ||||
|             url_el = r.find('{urn:mpeg:DASH:schema:MPD:2011}BaseURL') | ||||
|             if url_el is None: | ||||
|                 continue | ||||
|             format_id = r.attrib['id'] | ||||
|             video_url = url_el.text | ||||
|             filesize = int_or_none(url_el.attrib.get('{http://youtube.com/yt/2012/10/10}contentLength')) | ||||
|             f = { | ||||
|                 'format_id': format_id, | ||||
|                 'url': video_url, | ||||
|                 'width': int_or_none(r.attrib.get('width')), | ||||
|                 'height': int_or_none(r.attrib.get('height')), | ||||
|                 'tbr': int_or_none(r.attrib.get('bandwidth'), 1000), | ||||
|                 'asr': int_or_none(r.attrib.get('audioSamplingRate')), | ||||
|                 'filesize': filesize, | ||||
|                 'fps': int_or_none(r.attrib.get('frameRate')), | ||||
|             } | ||||
|             try: | ||||
|                 existing_format = next( | ||||
|                     fo for fo in formats | ||||
|                     if fo['format_id'] == format_id) | ||||
|             except StopIteration: | ||||
|                 full_info = self._formats.get(format_id, {}).copy() | ||||
|                 full_info.update(f) | ||||
|                 formats.append(full_info) | ||||
|             else: | ||||
|                 existing_format.update(f) | ||||
|         for a in dash_doc.findall('.//{urn:mpeg:DASH:schema:MPD:2011}AdaptationSet'): | ||||
|             mime_type = a.attrib.get('mimeType') | ||||
|             for r in a.findall('{urn:mpeg:DASH:schema:MPD:2011}Representation'): | ||||
|                 url_el = r.find('{urn:mpeg:DASH:schema:MPD:2011}BaseURL') | ||||
|                 if url_el is None: | ||||
|                     continue | ||||
|                 if mime_type == 'text/vtt': | ||||
|                     # TODO implement WebVTT downloading | ||||
|                     pass | ||||
|                 elif mime_type.startswith('audio/') or mime_type.startswith('video/'): | ||||
|                     format_id = r.attrib['id'] | ||||
|                     video_url = url_el.text | ||||
|                     filesize = int_or_none(url_el.attrib.get('{http://youtube.com/yt/2012/10/10}contentLength')) | ||||
|                     f = { | ||||
|                         'format_id': format_id, | ||||
|                         'url': video_url, | ||||
|                         'width': int_or_none(r.attrib.get('width')), | ||||
|                         'height': int_or_none(r.attrib.get('height')), | ||||
|                         'tbr': int_or_none(r.attrib.get('bandwidth'), 1000), | ||||
|                         'asr': int_or_none(r.attrib.get('audioSamplingRate')), | ||||
|                         'filesize': filesize, | ||||
|                         'fps': int_or_none(r.attrib.get('frameRate')), | ||||
|                     } | ||||
|                     try: | ||||
|                         existing_format = next( | ||||
|                             fo for fo in formats | ||||
|                             if fo['format_id'] == format_id) | ||||
|                     except StopIteration: | ||||
|                         full_info = self._formats.get(format_id, {}).copy() | ||||
|                         full_info.update(f) | ||||
|                         formats.append(full_info) | ||||
|                     else: | ||||
|                         existing_format.update(f) | ||||
|                 else: | ||||
|                     self.report_warning('Unknown MIME type %s in DASH manifest' % mime_type) | ||||
|         return formats | ||||
|  | ||||
|     def _real_extract(self, url): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yen Chi Hsuan
					Yen Chi Hsuan