TwitchDownloader/config/global.schema.json

159 lines
5 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://github.com/piero0920/Twitch-Archive/config/global.schema.json",
"title": "Twitch Archive Global Configuration",
"description": "Global settings and defaults for all streamers",
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": ["best", "source", "high", "720p", "medium", "480p", "low", "360p", "audio_only"],
"default": "best",
"description": "Default video quality for stream recording"
},
"root_path": {
"type": "string",
"default": "archive",
"description": "Root directory path where all archives are saved"
},
"rclone_path": {
"type": "string",
"default": "remote:path/to/streams",
"description": "Default rclone remote path for cloud uploads (can be overridden per streamer)"
},
"refresh": {
"type": "number",
"default": 60.0,
"minimum": 1.0,
"description": "Time between status checks in seconds (60.0 recommended for multiple streamers)"
},
"notifications": {
"type": "integer",
"enum": [0, 1],
"default": 0,
"description": "Email notifications: 0 = disabled, 1 = enabled"
},
"downloadMETADATA": {
"type": "integer",
"enum": [0, 1],
"default": 1,
"description": "Download stream metadata: 0 = disabled, 1 = enabled"
},
"downloadVOD": {
"type": "integer",
"enum": [0, 1],
"default": 1,
"description": "Download VODs after stream ends: 0 = disabled, 1 = enabled"
},
"downloadCHAT": {
"type": "integer",
"enum": [0, 1],
"default": 1,
"description": "Download and render chat from VOD: 0 = disabled, 1 = enabled"
},
"downloadLiveCHAT": {
"type": "integer",
"enum": [0, 1],
"default": 1,
"description": "Download chat during live stream: 0 = disabled, 1 = enabled"
},
"vodTimeout": {
"type": "integer",
"default": 300,
"minimum": 0,
"description": "Seconds to wait for VOD to appear after stream ends"
},
"uploadCloud": {
"type": "integer",
"enum": [0, 1],
"default": 1,
"description": "Upload to rclone remote: 0 = disabled, 1 = enabled"
},
"deleteFiles": {
"type": "integer",
"enum": [0, 1],
"default": 0,
"description": "Delete local files after upload: 0 = disabled, 1 = enabled (BE CAREFUL)"
},
"onlyRaw": {
"type": "integer",
"enum": [0, 1],
"default": 0,
"description": "Keep only raw .ts files: 0 = convert to mp3/mp4, 1 = keep raw only"
},
"cleanRaw": {
"type": "integer",
"enum": [0, 1],
"default": 1,
"description": "Delete raw .ts files after processing: 0 = keep, 1 = delete"
},
"hls_segments": {
"type": "integer",
"default": 3,
"minimum": 1,
"maximum": 10,
"description": "Number of parallel download threads for live streams (1-10, recommended 2-3)"
},
"hls_segmentsVOD": {
"type": "integer",
"default": 10,
"minimum": 1,
"maximum": 10,
"description": "Number of parallel download threads for VODs (1-10)"
},
"streamlink_ttvlol": {
"type": "integer",
"enum": [0, 1],
"default": 0,
"description": "DEPRECATED: Ad-blocking with ttvlol (--twitch-proxy-playlist removed in newer streamlink)"
},
"ffmpeg_hwaccel": {
"type": "string",
"enum": ["auto", "nvenc", "qsv", "amf", "vaapi", "none"],
"default": "auto",
"description": "Hardware acceleration: auto (recommended), nvenc (NVIDIA), qsv (Intel), amf (AMD), vaapi (Linux), none (software only)"
},
"ffmpeg_threads": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "FFmpeg encoding thread count (0 = auto-detect optimal count)"
},
"ffmpeg_audio_codec": {
"type": "string",
"enum": ["aac", "libmp3lame"],
"default": "aac",
"description": "Audio codec for audio_only quality streams (aac recommended)"
},
"ffmpeg_audio_samplerate": {
"type": "integer",
"enum": [44100, 48000],
"default": 48000,
"description": "Audio sample rate in Hz (48000 recommended for broadcasts, 44100 for CD quality)"
},
"ffmpeg_audio_bitrate": {
"type": "string",
"pattern": "^[0-9]+k$",
"default": "192k",
"description": "Audio bitrate (e.g., 128k, 192k, 256k, 320k)"
},
"ffmpeg_error_recovery": {
"type": "integer",
"enum": [0, 1],
"default": 1,
"description": "Enable error recovery for corrupted/incomplete streams: 0 = disabled, 1 = enabled"
},
"ffmpeg_faststart": {
"type": "integer",
"enum": [0, 1],
"default": 1,
"description": "Enable MP4 faststart flag for better streaming/playback: 0 = disabled, 1 = enabled"
},
"ffmpeg_progress": {
"type": "integer",
"enum": [0, 1],
"default": 0,
"description": "Show FFmpeg encoding progress: 0 = silent, 1 = verbose output"
}
}
}