mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-08-29 21:26:07 +02:00
![Matthew](/assets/img/avatar_default.png)
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>
48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
# flake8: noqa: F401
|
|
|
|
from .common import PostProcessor
|
|
from .embedthumbnail import EmbedThumbnailPP
|
|
from .exec import ExecAfterDownloadPP, ExecPP
|
|
from .ffmpeg import (
|
|
FFmpegConcatPP,
|
|
FFmpegCopyStreamPP,
|
|
FFmpegEmbedSubtitlePP,
|
|
FFmpegExtractAudioPP,
|
|
FFmpegFixupDuplicateMoovPP,
|
|
FFmpegFixupDurationPP,
|
|
FFmpegFixupM3u8PP,
|
|
FFmpegFixupM4aPP,
|
|
FFmpegFixupStretchedPP,
|
|
FFmpegFixupTimestampPP,
|
|
FFmpegMergerPP,
|
|
FFmpegMetadataPP,
|
|
FFmpegPostProcessor,
|
|
FFmpegSplitChaptersPP,
|
|
FFmpegSubtitlesConvertorPP,
|
|
FFmpegThumbnailsConvertorPP,
|
|
FFmpegVideoConvertorPP,
|
|
FFmpegVideoRemuxerPP,
|
|
)
|
|
from .metadataparser import (
|
|
MetadataFromFieldPP,
|
|
MetadataFromTitlePP,
|
|
MetadataParserPP,
|
|
)
|
|
from .modify_chapters import ModifyChaptersPP
|
|
from .movefilesafterdownload import MoveFilesAfterDownloadPP
|
|
from .sponskrub import SponSkrubPP
|
|
from .sponsorblock import SponsorBlockPP
|
|
from .xattrpp import XAttrMetadataPP
|
|
from ..plugins import load_plugins
|
|
|
|
_PLUGIN_CLASSES = load_plugins('postprocessor', 'PP')
|
|
|
|
|
|
def get_postprocessor(key):
|
|
return globals()[key + 'PP']
|
|
|
|
|
|
globals().update(_PLUGIN_CLASSES)
|
|
__all__ = [name for name in globals().keys() if name.endswith('PP')]
|
|
__all__.extend(('PostProcessor', 'FFmpegPostProcessor'))
|