mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	Improve handling for overriding extractors with plugins (#5916)
* Extractors replaced with plugin extractors now show in debug output * Better testcase handling * Added documentation Authored by: coletdjnz, pukkandan
This commit is contained in:
		| @@ -33,7 +33,7 @@ from .extractor.common import UnsupportedURLIE | ||||
| from .extractor.openload import PhantomJSwrapper | ||||
| from .minicurses import format_text | ||||
| from .plugins import directories as plugin_directories | ||||
| from .postprocessor import _PLUGIN_CLASSES as plugin_postprocessors | ||||
| from .postprocessor import _PLUGIN_CLASSES as plugin_pps | ||||
| from .postprocessor import ( | ||||
|     EmbedThumbnailPP, | ||||
|     FFmpegFixupDuplicateMoovPP, | ||||
| @@ -3730,7 +3730,10 @@ class YoutubeDL: | ||||
| 
 | ||||
|         # These imports can be slow. So import them only as needed | ||||
|         from .extractor.extractors import _LAZY_LOADER | ||||
|         from .extractor.extractors import _PLUGIN_CLASSES as plugin_extractors | ||||
|         from .extractor.extractors import ( | ||||
|             _PLUGIN_CLASSES as plugin_ies, | ||||
|             _PLUGIN_OVERRIDES as plugin_ie_overrides | ||||
|         ) | ||||
| 
 | ||||
|         def get_encoding(stream): | ||||
|             ret = str(getattr(stream, 'encoding', 'missing (%s)' % type(stream).__name__)) | ||||
| @@ -3808,12 +3811,17 @@ class YoutubeDL: | ||||
|                 proxy_map.update(handler.proxies) | ||||
|         write_debug(f'Proxy map: {proxy_map}') | ||||
| 
 | ||||
|         for plugin_type, plugins in {'Extractor': plugin_extractors, 'Post-Processor': plugin_postprocessors}.items(): | ||||
|             if not plugins: | ||||
|                 continue | ||||
|             write_debug(f'{plugin_type} Plugins: %s' % (', '.join(sorted(('%s%s' % ( | ||||
|         for plugin_type, plugins in {'Extractor': plugin_ies, 'Post-Processor': plugin_pps}.items(): | ||||
|             display_list = ['%s%s' % ( | ||||
|                 klass.__name__, '' if klass.__name__ == name else f' as {name}') | ||||
|                 for name, klass in plugins.items()))))) | ||||
|                 for name, klass in plugins.items()] | ||||
|             if plugin_type == 'Extractor': | ||||
|                 display_list.extend(f'{plugins[-1].IE_NAME.partition("+")[2]} ({parent.__name__})' | ||||
|                                     for parent, plugins in plugin_ie_overrides.items()) | ||||
|             if not display_list: | ||||
|                 continue | ||||
|             write_debug(f'{plugin_type} Plugins: {", ".join(sorted(display_list))}') | ||||
| 
 | ||||
|         plugin_dirs = plugin_directories() | ||||
|         if plugin_dirs: | ||||
|             write_debug(f'Plugin directories: {plugin_dirs}') | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Matthew
					Matthew