{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "YTDLP_ENABLED": {
      "type": "boolean",
      "default": true,
      "x-aliases": [
        "MEDIA_ENABLED",
        "SAVE_MEDIA",
        "USE_MEDIA",
        "USE_YTDLP",
        "FETCH_MEDIA",
        "SAVE_YTDLP"
      ],
      "description": "Enable video/audio downloading with yt-dlp"
    },
    "YTDLP_BINARY": {
      "type": "string",
      "default": "yt-dlp",
      "x-aliases": ["YOUTUBEDL_BINARY", "YOUTUBE_DL_BINARY"],
      "description": "Path to yt-dlp binary"
    },
    "YTDLP_NODE_BINARY": {
      "type": "string",
      "default": "node",
      "x-fallback": "NODE_BINARY",
      "description": "Path to Node.js binary for yt-dlp JS runtime"
    },
    "YTDLP_TIMEOUT": {
      "type": "integer",
      "default": 3600,
      "minimum": 30,
      "x-fallback": "TIMEOUT",
      "x-aliases": ["MEDIA_TIMEOUT"],
      "description": "Timeout for yt-dlp downloads in seconds"
    },
    "YTDLP_COOKIES_FILE": {
      "type": "string",
      "default": "",
      "x-fallback": "COOKIES_FILE",
      "description": "Path to cookies file"
    },
    "YTDLP_MAX_SIZE": {
      "type": "string",
      "default": "750m",
      "pattern": "^\\d+[kmgKMG]?$",
      "x-aliases": ["MEDIA_MAX_SIZE"],
      "description": "Maximum file size for yt-dlp downloads"
    },
    "YTDLP_CHECK_SSL_VALIDITY": {
      "type": "boolean",
      "default": true,
      "x-fallback": "CHECK_SSL_VALIDITY",
      "description": "Whether to verify SSL certificates"
    },
    "YTDLP_ARGS": {
      "type": "array",
      "items": { "type": "string" },
      "default": [
        "--restrict-filenames",
        "--trim-filenames=128",
        "--write-description",
        "--write-info-json",
        "--write-thumbnail",
        "--write-sub",
        "--write-auto-subs",
        "--convert-subs=srt",
        "--yes-playlist",
        "--continue",
        "--no-abort-on-error",
        "--ignore-errors",
        "--geo-bypass",
        "--add-metadata",
        "--no-progress",
        "--remote-components ejs:github",
        "-o",
        "%(title)s.%(ext)s"
      ],
      "x-aliases": ["YTDLP_DEFAULT_ARGS"],
      "description": "Default yt-dlp arguments"
    },
    "YTDLP_ARGS_EXTRA": {
      "type": "array",
      "items": { "type": "string" },
      "default": [],
      "x-aliases": ["YTDLP_EXTRA_ARGS"],
      "description": "Extra arguments to append to yt-dlp command"
    }
  }
}
