ytdl-sub/src/ytdl_sub/config/defaults.py

37 lines
1.1 KiB
Python

import os
from ytdl_sub.utils.system import IS_WINDOWS
def _existing_path(*paths: str) -> str:
"""
Tries to search multiple paths for a file, returns a
path if it exists. If none are valid files, returns
the first one
"""
for path in paths:
if os.path.isfile(path):
return path
return paths[0]
if IS_WINDOWS:
DEFAULT_LOCK_DIRECTORY = "" # Not supported in Windows
DEFAULT_FFMPEG_PATH = ".\\ffmpeg.exe"
DEFAULT_FFPROBE_PATH = ".\\ffprobe.exe"
MAX_FILE_NAME_BYTES = 255
else:
DEFAULT_LOCK_DIRECTORY = "/tmp"
DEFAULT_FFMPEG_PATH = os.getenv(
"YTDL_SUB_FFMPEG_PATH", _existing_path("/usr/bin/ffmpeg", "/usr/local/bin/ffmpeg")
)
DEFAULT_FFPROBE_PATH = os.getenv(
"YTDL_SUB_FFPROBE_PATH", _existing_path("/usr/bin/ffprobe", "/usr/local/bin/ffmpeg")
)
MAX_FILE_NAME_BYTES = os.pathconf("/", "PC_NAME_MAX")
# Historically was hardcoded to this value. Use this as the default
# if download_archive_path is not specified
DEFAULT_DOWNLOAD_ARCHIVE_NAME = ".ytdl-sub-{subscription_name}-download-archive.json"