|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
import logging
|
|
|
|
import configparser
|
|
|
|
import xml.etree.ElementTree as ET
|
|
|
|
|
|
|
|
autoProcess = os.path.join(os.environ.get("SMA_PATH", "/usr/local/sma"), "config/autoProcess.ini")
|
|
|
|
|
|
|
|
def main():
|
|
|
|
|
|
|
|
safeConfigParser = configparser.ConfigParser()
|
|
|
|
safeConfigParser.read(autoProcess)
|
|
|
|
|
|
|
|
# Set FFMPEG/FFProbe Paths
|
|
|
|
safeConfigParser.set("Converter", "ffmpeg", "ffmpeg")
|
|
|
|
safeConfigParser.set("Converter", "ffprobe", "ffprobe")
|
|
|
|
if os.environ.get("CONVERTER_THREADS"):
|
|
|
|
safeConfigParser.set("Converter", "threads", os.environ.get("CONVERTER_THREADS"))
|
|
|
|
if os.environ.get("CONVERTER_HWACCELS"):
|
|
|
|
safeConfigParser.set("Converter", "hwaccels", os.environ.get("CONVERTER_HWACCELS"))
|
|
|
|
else:
|
|
|
|
safeConfigParser.set("Converter", "hwaccels", " ")
|
|
|
|
if os.environ.get("CONVERTER_HWACCEL_DECODERS"):
|
|
|
|
safeConfigParser.set("Converter", "hwaccel-decoders", os.environ.get("CONVERTER_HWACCEL_DECODERS"))
|
|
|
|
else:
|
|
|
|
safeConfigParser.set("Converter", "hwaccel-decoders", " ")
|
|
|
|
if os.environ.get("CONVERTER_OUTPUT_FORMAT"):
|
|
|
|
safeConfigParser.set("Converter", "output-format", os.environ.get("CONVERTER_OUTPUT_FORMAT"))
|
|
|
|
if os.environ.get("CONVERTER_OUTPUT_EXTENSION"):
|
|
|
|
safeConfigParser.set("Converter", "output-extension", os.environ.get("CONVERTER_OUTPUT_EXTENSION"))
|
|
|
|
if os.environ.get("CONVERTER_MINIMUM_SIZE"):
|
|
|
|
safeConfigParser.set("Converter", "minimum-size", os.environ.get("CONVERTER_MINIMUM_SIZE"))
|
|
|
|
if os.environ.get("CONVERTER_SORT_STREAMS"):
|
|
|
|
safeConfigParser.set("Converter", "sort-streams", os.environ.get("CONVERTER_SORT_STREAMS"))
|
|
|
|
if os.environ.get("CONVERTER_PROCESS_SAME_EXTENSIONS"):
|
|
|
|
safeConfigParser.set("Converter", "process-same-extensions", os.environ.get("CONVERTER_PROCESS_SAME_EXTENSIONS"))
|
|
|
|
if os.environ.get("CONVERTER_FORCE_CONVERT"):
|
|
|
|
safeConfigParser.set("Converter", "force-convert", os.environ.get("CONVERTER_FORCE_CONVERT"))
|
|
|
|
if os.environ.get("CONVERTER_PREOPTS"):
|
|
|
|
safeConfigParser.set("Converter", "preopts", os.environ.get("CONVERTER_PREOPTS"))
|
|
|
|
if os.environ.get("CONVERTER_POSTOPTS"):
|
|
|
|
safeConfigParser.set("Converter", "postopts", os.environ.get("CONVERTER_POSTOPTS"))
|
|
|
|
|
|
|
|
# SET Permissions
|
|
|
|
if os.environ.get("PERMISSIONS_CHMOD"):
|
|
|
|
safeConfigParser.set("Permissions", "chmod", os.environ.get("PERMISSIONS_CHMOD"))
|
|
|
|
|
|
|
|
# Set Metadata Settings
|
|
|
|
if os.environ.get("METADATA_RELOCATE_MOV"):
|
|
|
|
safeConfigParser.set("Metadata", "relocate-moov", os.environ.get("METADATA_RELOCATE_MOV"))
|
|
|
|
if os.environ.get("METADATA_TAG"):
|
|
|
|
safeConfigParser.set("Metadata", "tag", os.environ.get("METADATA_TAG"))
|
|
|
|
if os.environ.get("METADATA_TAG_LANGUAGE"):
|
|
|
|
safeConfigParser.set("Metadata", "tag-language", os.environ.get("METADATA_TAG_LANGUAGE"))
|
|
|
|
if os.environ.get("METADATA_DOWNLOAD_ARTWORK"):
|
|
|
|
safeConfigParser.set("Metadata", "download-artwork", os.environ.get("METADATA_DOWNLOAD_ARTWORK"))
|
|
|
|
if os.environ.get("METADATA_PRESERVE_SOURCE_DISPOSITION"):
|
|
|
|
safeConfigParser.set("Metadata", "preserve-source-disposition", os.environ.get("METADATA_PRESERVE_SOURCE_DISPOSITION"))
|
|
|
|
|
|
|
|
# Set Video Settings
|
|
|
|
if os.environ.get("VIDEO_CODEC"):
|
|
|
|
safeConfigParser.set("Video", "codec", os.environ.get("VIDEO_CODEC"))
|
|
|
|
if os.environ.get("VIDEO_MAX_BITRATE"):
|
|
|
|
safeConfigParser.set("Video", "max-bitrate", os.environ.get("VIDEO_MAX_BITRATE"))
|
|
|
|
if os.environ.get("VIDEO_CRF"):
|
|
|
|
safeConfigParser.set("Video", "crf", os.environ.get("VIDEO_CRF"))
|
|
|
|
if os.environ.get("VIDEO_CRF_PROFILES"):
|
|
|
|
safeConfigParser.set("Video", "crf-profiles", os.environ.get("VIDEO_CRF_PROFILES"))
|
|
|
|
if os.environ.get("VIDEO_MAX_WIDTH"):
|
|
|
|
safeConfigParser.set("Video", "max-width", os.environ.get("VIDEO_MAX_WIDTH"))
|
|
|
|
if os.environ.get("VIDEO_PROFILE"):
|
|
|
|
safeConfigParser.set("Video", "profile", os.environ.get("VIDEO_PROFILE"))
|
|
|
|
if os.environ.get("VIDEO_MAX_LEVEL"):
|
|
|
|
safeConfigParser.set("Video", "max-level", os.environ.get("VIDEO_MAX_LEVEL"))
|
|
|
|
if os.environ.get("VIDEO_PIX_FMT"):
|
|
|
|
safeConfigParser.set("Video", "pix-fmt", os.environ.get("VIDEO_PIX_FMT"))
|
|
|
|
|
|
|
|
# Set Audio Settings
|
|
|
|
if os.environ.get("AUDIO_CODEC"):
|
|
|
|
safeConfigParser.set("Audio", "codec", os.environ.get("AUDIO_CODEC"))
|
|
|
|
if os.environ.get("AUDIO_LANGUAGES"):
|
|
|
|
safeConfigParser.set("Audio", "languages", os.environ.get("AUDIO_LANGUAGES"))
|
|
|
|
if os.environ.get("AUDIO_DEFAULT_LANGUAGE"):
|
|
|
|
safeConfigParser.set("Audio", "default-language", os.environ.get("AUDIO_DEFAULT_LANGUAGE"))
|
|
|
|
if os.environ.get("AUDIO_FIRST_STREAM_OF_LANGUAGE"):
|
|
|
|
safeConfigParser.set("Audio", "first-stream-of-language", os.environ.get("AUDIO_FIRST_STREAM_OF_LANGUAGE"))
|
|
|
|
if os.environ.get("AUDIO_CHANNEL_BITRATE"):
|
|
|
|
safeConfigParser.set("Audio", "channel-bitrate", os.environ.get("AUDIO_CHANNEL_BITRATE"))
|
|
|
|
if os.environ.get("AUDIO_MAX_BITRATE"):
|
|
|
|
safeConfigParser.set("Audio", "max-bitrate", os.environ.get("AUDIO_MAX_BITRATE"))
|
|
|
|
if os.environ.get("AUDIO_MAX_CHANNELS"):
|
|
|
|
safeConfigParser.set("Audio", "max-channels", os.environ.get("AUDIO_MAX_CHANNELS"))
|
|
|
|
if os.environ.get("AUDIO_PREFER_MORE_CHANNELS"):
|
|
|
|
safeConfigParser.set("Audio", "prefer-more-channels", os.environ.get("AUDIO_PREFER_MORE_CHANNELS"))
|
|
|
|
if os.environ.get("AUDIO_DEFAULT_MORE_CHANNELS"):
|
|
|
|
safeConfigParser.set("Audio", "default-more-channels", os.environ.get("AUDIO_DEFAULT_MORE_CHANNELS"))
|
|
|
|
if os.environ.get("AUDIO_FILTER"):
|
|
|
|
safeConfigParser.set("Audio", "filter", os.environ.get("AUDIO_FILTER"))
|
|
|
|
if os.environ.get("AUDIO_SAMPLE_RATES"):
|
|
|
|
safeConfigParser.set("Audio", "sample-rates", os.environ.get("AUDIO_SAMPLE_RATES"))
|
|
|
|
if os.environ.get("AUDIO_COPY_ORIGINAL"):
|
|
|
|
safeConfigParser.set("Audio", "copy-original", os.environ.get("AUDIO_COPY_ORIGINAL"))
|
|
|
|
if os.environ.get("AUDIO_AAC_ADTSTOASC"):
|
|
|
|
safeConfigParser.set("Audio", "aac-adtstoasc", os.environ.get("AUDIO_AAC_ADTSTOASC"))
|
|
|
|
if os.environ.get("AUDIO_IGNORE_TREHD"):
|
|
|
|
safeConfigParser.set("Audio", "ignore-truehd", os.environ.get("AUDIO_IGNORE_TREHD"))
|
|
|
|
|
|
|
|
# Set Universal Audio Settings
|
|
|
|
if os.environ.get("UAUDIO_CODEC"):
|
|
|
|
safeConfigParser.set("Universal Audio", "codec", os.environ.get("UAUDIO_CODEC"))
|
|
|
|
if os.environ.get("UAUDIO_CHANNEL_BITRATE"):
|
|
|
|
safeConfigParser.set("Universal Audio", "channel-bitrate", os.environ.get("UAUDIO_CHANNEL_BITRATE"))
|
|
|
|
if os.environ.get("UAUDIO_FIRST_STREAM_ONLY"):
|
|
|
|
safeConfigParser.set("Universal Audio", "first-stream-only", os.environ.get("UAUDIO_FIRST_STREAM_ONLY"))
|
|
|
|
if os.environ.get("UAUDIO_MOVE_AFTER"):
|
|
|
|
safeConfigParser.set("Universal Audio", "move-after", os.environ.get("UAUDIO_MOVE_AFTER"))
|
|
|
|
if os.environ.get("UAUDIO_FILTER"):
|
|
|
|
safeConfigParser.set("Universal Audio", "filter", os.environ.get("UAUDIO_FILTER"))
|
|
|
|
|
|
|
|
# Set Subtitle Settings
|
|
|
|
if os.environ.get("SUBTITLE_CODEC"):
|
|
|
|
safeConfigParser.set("Subtitle", "codec", os.environ.get("SUBTITLE_CODEC"))
|
|
|
|
if os.environ.get("SUBTITLE_CODEC_IMAGE_BASED"):
|
|
|
|
safeConfigParser.set("Subtitle", "codec-image-based", os.environ.get("SUBTITLE_CODEC_IMAGE_BASED"))
|
|
|
|
if os.environ.get("SUBTITLE_LANGUAGES"):
|
|
|
|
safeConfigParser.set("Subtitle", "languages", os.environ.get("SUBTITLE_LANGUAGES"))
|
|
|
|
if os.environ.get("SUBTITLE_DEFAULT_LANGUAGE"):
|
|
|
|
safeConfigParser.set("Subtitle", "default-language", os.environ.get("SUBTITLE_DEFAULT_LANGUAGE"))
|
|
|
|
if os.environ.get("SUBTITLE_FIRST_STREAM_OF_LANGUAGE"):
|
|
|
|
safeConfigParser.set("Subtitle", "first-stream-of-language", os.environ.get("SUBTITLE_FIRST_STREAM_OF_LANGUAGE"))
|
|
|
|
if os.environ.get("SUBTITLE_ENCODING"):
|
|
|
|
safeConfigParser.set("Subtitle", "encoding", os.environ.get("SUBTITLE_ENCODING"))
|
|
|
|
if os.environ.get("SUBTITLE_BURN_SUBTITLES"):
|
|
|
|
safeConfigParser.set("Subtitle", "burn-subtitles", os.environ.get("SUBTITLE_BURN_SUBTITLES"))
|
|
|
|
if os.environ.get("SUBTITLE_BURN_DISPOSITIONS"):
|
|
|
|
safeConfigParser.set("Subtitle", "burn-dispositions", os.environ.get("SUBTITLE_BURN_DISPOSITIONS"))
|
|
|
|
if os.environ.get("SUBTITLE_DOWNLOAD_SUBS"):
|
|
|
|
safeConfigParser.set("Subtitle", "download-subs", os.environ.get("SUBTITLE_DOWNLOAD_SUBS"))
|
|
|
|
if os.environ.get("SUBTITLE_DOWNLOAD_HEARING_IMPAIRED_SUBS"):
|
|
|
|
safeConfigParser.set("Subtitle", "download-hearing-impaired-subs", os.environ.get("SUBTITLE_DOWNLOAD_HEARING_IMPAIRED_SUBS"))
|
|
|
|
if os.environ.get("SUBTITLE_DOWNLOAD_PROVIDERS"):
|
|
|
|
safeConfigParser.set("Subtitle", "download-providers", os.environ.get("SUBTITLE_DOWNLOAD_PROVIDERS"))
|
|
|
|
if os.environ.get("SUBTITLE_EMBED_SUBS"):
|
|
|
|
safeConfigParser.set("Subtitle", "embed-subs", os.environ.get("SUBTITLE_EMBED_SUBS"))
|
|
|
|
if os.environ.get("SUBTITLE_EMBED_IMAGE_SUBS"):
|
|
|
|
safeConfigParser.set("Subtitle", "embed-image-subs", os.environ.get("SUBTITLE_EMBED_IMAGE_SUBS"))
|
|
|
|
if os.environ.get("SUBTITLE_EMBED_ONLY_INTERNAL_SUBS"):
|
|
|
|
safeConfigParser.set("Subtitle", "embed-only-internal-subs", os.environ.get("SUBTITLE_EMBED_ONLY_INTERNAL_SUBS"))
|
|
|
|
if os.environ.get("SUBTITLE_FILENAME_DISPOSITIONS"):
|
|
|
|
safeConfigParser.set("Subtitle", "filename-dispositions", os.environ.get("SUBTITLE_FILENAME_DISPOSITIONS"))
|
|
|
|
if os.environ.get("SUBTITLE_IGNORE_EMBEDDED_SUBS"):
|
|
|
|
safeConfigParser.set("Subtitle", "ignore-embedded-subs", os.environ.get("SUBTITLE_IGNORE_EMBEDDED_SUBS"))
|
|
|
|
if os.environ.get("SUBTITLE_ATTACHMENT_CODEC"):
|
|
|
|
safeConfigParser.set("Subtitle", "attachment-codec", os.environ.get("SUBTITLE_ATTACHMENT_CODEC"))
|
|
|
|
|
|
|
|
# Set Plex Settings
|
|
|
|
if os.environ.get("PLEX_HOST"):
|
|
|
|
safeConfigParser.set("Plex", "host", os.environ.get("PLEX_HOST"))
|
|
|
|
if os.environ.get("PLEX_PORT"):
|
|
|
|
safeConfigParser.set("Plex", "port", os.environ.get("PLEX_PORT"))
|
|
|
|
if os.environ.get("PLEX_REFRESH"):
|
|
|
|
safeConfigParser.set("Plex", "refresh", os.environ.get("PLEX_REFRESH"))
|
|
|
|
if os.environ.get("PLEX_TOKEN"):
|
|
|
|
safeConfigParser.set("Plex", "token", os.environ.get("PLEX_TOKEN"))
|
|
|
|
|
|
|
|
fp = open(autoProcess, "w")
|
|
|
|
safeConfigParser.write(fp)
|
|
|
|
fp.close()
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
main()
|