mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 00:25:15 +00:00 
			
		
		
		
	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()
 |