mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:20:45 +00:00 
			
		
		
		
	 2314b4d89f
			
		
	
	2314b4d89f
	
	
	
		
			
			This allows easier plugin chaining; e.g. - https://gist.github.com/pukkandan/24f13ff1ed385c5a390c1d7bd130d8f7 - https://gist.github.com/pukkandan/fcf5ca1785c80f64e471f0ee14f990fb
		
			
				
	
	
		
			27 lines
		
	
	
		
			791 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			791 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| import contextlib
 | |
| import os
 | |
| 
 | |
| from ..utils import load_plugins
 | |
| 
 | |
| # NB: Must be before other imports so that plugins can be correctly injected
 | |
| _PLUGIN_CLASSES = load_plugins('extractor', 'IE', {})
 | |
| 
 | |
| _LAZY_LOADER = False
 | |
| if not os.environ.get('YTDLP_NO_LAZY_EXTRACTORS'):
 | |
|     with contextlib.suppress(ImportError):
 | |
|         from .lazy_extractors import *  # noqa: F403
 | |
|         from .lazy_extractors import _ALL_CLASSES
 | |
|         _LAZY_LOADER = True
 | |
| 
 | |
| if not _LAZY_LOADER:
 | |
|     from ._extractors import *  # noqa: F403
 | |
|     _ALL_CLASSES = [  # noqa: F811
 | |
|         klass
 | |
|         for name, klass in globals().items()
 | |
|         if name.endswith('IE') and name != 'GenericIE'
 | |
|     ]
 | |
|     _ALL_CLASSES.append(GenericIE)  # noqa: F405
 | |
| 
 | |
| globals().update(_PLUGIN_CLASSES)
 | |
| _ALL_CLASSES[:0] = _PLUGIN_CLASSES.values()
 |