1
0
Fork 0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-03-09 12:50:23 -05:00
yt-dlp/yt_dlp/postprocessor/__init__.py

71 lines
1.9 KiB
Python
Raw Normal View History

# flake8: noqa: F401
2021-11-09 16:44:42 -06:00
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,
2021-04-10 19:22:55 -05:00
FFmpegVideoConvertorPP,
FFmpegVideoRemuxerPP,
2013-10-14 19:07:26 -05:00
)
2021-08-09 14:52:55 -05:00
from .metadataparser import (
MetadataFromFieldPP,
MetadataFromTitlePP,
MetadataParserPP,
)
from .modify_chapters import ModifyChaptersPP
from .movefilesafterdownload import MoveFilesAfterDownloadPP
2020-11-14 18:28:41 -06:00
from .sponskrub import SponSkrubPP
from .sponsorblock import SponsorBlockPP
from .xattrpp import XAttrMetadataPP
2024-10-18 22:25:36 -05:00
from .._globals import plugin_pps, postprocessors
2024-10-19 17:59:29 -05:00
from ..plugins import PACKAGE_NAME, register_plugin_spec, PluginSpec
2023-01-07 01:19:13 -06:00
from ..utils import deprecation_warning
2023-01-07 01:19:13 -06:00
def __getattr__(name):
2024-11-29 17:57:30 -06:00
lookup = plugin_pps.value
2023-01-07 01:19:13 -06:00
if name in lookup:
deprecation_warning(
f'Importing a plugin Post-Processor from {__name__} is deprecated. '
f'Please import {PACKAGE_NAME}.postprocessor.{name} instead.')
return lookup[name]
raise AttributeError(f'module {__name__!r} has no attribute {name!r}')
def get_postprocessor(key):
2024-11-29 17:57:30 -06:00
return postprocessors.value[key + 'PP']
2023-01-07 01:19:13 -06:00
2024-10-19 17:59:29 -05:00
register_plugin_spec(PluginSpec(
module_name='postprocessor',
suffix='PP',
destination=postprocessors,
plugin_destination=plugin_pps,
))
2023-01-07 01:19:13 -06:00
_default_pps = {
name: value
for name, value in globals().items()
if name.endswith('PP') or name in ('FFmpegPostProcessor', 'PostProcessor')
2023-01-07 01:19:13 -06:00
}
2024-11-29 17:57:30 -06:00
postprocessors.value.update(_default_pps)
2023-01-07 01:19:13 -06:00
__all__ = list(_default_pps.values())