]> jfr.im git - yt-dlp.git/blob - yt_dlp/postprocessor/__init__.py
Improve plugin architecture (#5553)
[yt-dlp.git] / yt_dlp / postprocessor / __init__.py
1 # flake8: noqa: F401
2
3 from .common import PostProcessor
4 from .embedthumbnail import EmbedThumbnailPP
5 from .exec import ExecAfterDownloadPP, ExecPP
6 from .ffmpeg import (
7 FFmpegConcatPP,
8 FFmpegCopyStreamPP,
9 FFmpegEmbedSubtitlePP,
10 FFmpegExtractAudioPP,
11 FFmpegFixupDuplicateMoovPP,
12 FFmpegFixupDurationPP,
13 FFmpegFixupM3u8PP,
14 FFmpegFixupM4aPP,
15 FFmpegFixupStretchedPP,
16 FFmpegFixupTimestampPP,
17 FFmpegMergerPP,
18 FFmpegMetadataPP,
19 FFmpegPostProcessor,
20 FFmpegSplitChaptersPP,
21 FFmpegSubtitlesConvertorPP,
22 FFmpegThumbnailsConvertorPP,
23 FFmpegVideoConvertorPP,
24 FFmpegVideoRemuxerPP,
25 )
26 from .metadataparser import (
27 MetadataFromFieldPP,
28 MetadataFromTitlePP,
29 MetadataParserPP,
30 )
31 from .modify_chapters import ModifyChaptersPP
32 from .movefilesafterdownload import MoveFilesAfterDownloadPP
33 from .sponskrub import SponSkrubPP
34 from .sponsorblock import SponsorBlockPP
35 from .xattrpp import XAttrMetadataPP
36 from ..plugins import load_plugins
37
38 _PLUGIN_CLASSES = load_plugins('postprocessor', 'PP')
39
40
41 def get_postprocessor(key):
42 return globals()[key + 'PP']
43
44
45 globals().update(_PLUGIN_CLASSES)
46 __all__ = [name for name in globals().keys() if name.endswith('PP')]
47 __all__.extend(('PostProcessor', 'FFmpegPostProcessor'))