mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[youtube] Rewrite Extractor
- improve format sorting - remove unused code(swf parsing, ...) - fix series metadata extraction - fix trailer video extraction - improve error reporting - extract video location
This commit is contained in:
		| @@ -2064,7 +2064,7 @@ class InfoExtractor(object): | |||||||
|             }) |             }) | ||||||
|         return entries |         return entries | ||||||
|  |  | ||||||
|     def _extract_mpd_formats(self, mpd_url, video_id, mpd_id=None, note=None, errnote=None, fatal=True, formats_dict={}, data=None, headers={}, query={}): |     def _extract_mpd_formats(self, mpd_url, video_id, mpd_id=None, note=None, errnote=None, fatal=True, data=None, headers={}, query={}): | ||||||
|         res = self._download_xml_handle( |         res = self._download_xml_handle( | ||||||
|             mpd_url, video_id, |             mpd_url, video_id, | ||||||
|             note=note or 'Downloading MPD manifest', |             note=note or 'Downloading MPD manifest', | ||||||
| @@ -2078,10 +2078,9 @@ class InfoExtractor(object): | |||||||
|         mpd_base_url = base_url(urlh.geturl()) |         mpd_base_url = base_url(urlh.geturl()) | ||||||
|  |  | ||||||
|         return self._parse_mpd_formats( |         return self._parse_mpd_formats( | ||||||
|             mpd_doc, mpd_id=mpd_id, mpd_base_url=mpd_base_url, |             mpd_doc, mpd_id, mpd_base_url, mpd_url) | ||||||
|             formats_dict=formats_dict, mpd_url=mpd_url) |  | ||||||
|  |  | ||||||
|     def _parse_mpd_formats(self, mpd_doc, mpd_id=None, mpd_base_url='', formats_dict={}, mpd_url=None): |     def _parse_mpd_formats(self, mpd_doc, mpd_id=None, mpd_base_url='', mpd_url=None): | ||||||
|         """ |         """ | ||||||
|         Parse formats from MPD manifest. |         Parse formats from MPD manifest. | ||||||
|         References: |         References: | ||||||
| @@ -2359,15 +2358,7 @@ class InfoExtractor(object): | |||||||
|                         else: |                         else: | ||||||
|                             # Assuming direct URL to unfragmented media. |                             # Assuming direct URL to unfragmented media. | ||||||
|                             f['url'] = base_url |                             f['url'] = base_url | ||||||
|  |                         formats.append(f) | ||||||
|                         # According to [1, 5.3.5.2, Table 7, page 35] @id of Representation |  | ||||||
|                         # is not necessarily unique within a Period thus formats with |  | ||||||
|                         # the same `format_id` are quite possible. There are numerous examples |  | ||||||
|                         # of such manifests (see https://github.com/ytdl-org/youtube-dl/issues/15111, |  | ||||||
|                         # https://github.com/ytdl-org/youtube-dl/issues/13919) |  | ||||||
|                         full_info = formats_dict.get(representation_id, {}).copy() |  | ||||||
|                         full_info.update(f) |  | ||||||
|                         formats.append(full_info) |  | ||||||
|                     else: |                     else: | ||||||
|                         self.report_warning('Unknown MIME type %s in DASH manifest' % mime_type) |                         self.report_warning('Unknown MIME type %s in DASH manifest' % mime_type) | ||||||
|         return formats |         return formats | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user