mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	Improve plugin architecture (#5553)
to make plugins easier to develop and use: * Plugins are now loaded as namespace packages. * Plugins can be loaded in any distribution of yt-dlp (binary, pip, source, etc.). * Plugin packages can be installed and managed via pip, or dropped into any of the documented locations. * Users do not need to edit any code files to install plugins. * Backwards-compatible with previous plugin architecture. As a side-effect, yt-dlp will now search in a few more locations for config files. Closes https://github.com/yt-dlp/yt-dlp/issues/1389 Authored by: flashdagger, coletdjnz, pukkandan, Grub4K Co-authored-by: Marcel <flashdagger@googlemail.com> Co-authored-by: pukkandan <pukkandan.ytdlp@gmail.com> Co-authored-by: Simon Sawicki <accounts@grub4k.xyz>
This commit is contained in:
		| @@ -40,8 +40,12 @@ def main(): | ||||
| 
 | ||||
|     _ALL_CLASSES = get_all_ies()  # Must be before import | ||||
| 
 | ||||
|     import yt_dlp.plugins | ||||
|     from yt_dlp.extractor.common import InfoExtractor, SearchInfoExtractor | ||||
| 
 | ||||
|     # Filter out plugins | ||||
|     _ALL_CLASSES = [cls for cls in _ALL_CLASSES if not cls.__module__.startswith(f'{yt_dlp.plugins.PACKAGE_NAME}.')] | ||||
| 
 | ||||
|     DummyInfoExtractor = type('InfoExtractor', (InfoExtractor,), {'IE_NAME': NO_ATTR}) | ||||
|     module_src = '\n'.join(( | ||||
|         MODULE_TEMPLATE, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Matthew
					Matthew