{
	"author": "",
	"binName": "N_m3u8DL-RE",
	"defaultMatches": [
		".m3u8",
		".m3u8?"
	],
	"description": "基于 N_m3u8DL-RE 的 M3U8 下载器",
	"formLayout": {
		"groups": [
			{
				"collapsed": false,
				"description": "基础下载配置",
				"id": "basic",
				"label": "基本设置",
				"parameters": [
					"input",
					"--save-dir",
					"--save-name",
					"--tmp-dir"
				]
			},
			{
				"collapsed": false,
				"description": "下载行为和性能配置",
				"id": "download",
				"label": "下载选项",
				"parameters": [
					"--thread-count",
					"--download-retry-count",
					"-R",
					"-mt",
					"--auto-select",
					"--skip-merge",
					"--skip-download",
					"--check-segments-count",
					"--binary-merge",
					"--del-after-done"
				]
			},
			{
				"collapsed": true,
				"description": "选择视频/音频/字幕流",
				"id": "stream",
				"label": "流选择",
				"parameters": [
					"-sv",
					"-sa",
					"-ss"
				]
			},
			{
				"collapsed": true,
				"description": "HTTP 请求和代理配置",
				"id": "network",
				"label": "网络设置",
				"parameters": [
					"--header",
					"--custom-proxy",
					"--custom-range",
					"--use-system-proxy",
					"--http-request-timeout"
				]
			},
			{
				"collapsed": true,
				"description": "直播流相关设置",
				"id": "live",
				"label": "直播录制",
				"parameters": [
					"--live-real-time-merge",
					"--live-keep-segments",
					"--live-pipe-mux",
					"--live-fix-vtt-by-audio",
					"--live-record-limit",
					"--live-perform-as-vod"
				]
			},
			{
				"collapsed": true,
				"description": "视频容器格式转换",
				"id": "mux",
				"label": "复用设置",
				"parameters": [
					"--mux-after-done",
					"--mux-import"
				]
			},
			{
				"collapsed": true,
				"description": "字幕下载和格式配置",
				"id": "subtitle",
				"label": "字幕选项",
				"parameters": [
					"--sub-format",
					"--sub-only",
					"--auto-subtitle-fix"
				]
			},
			{
				"collapsed": true,
				"description": "DRM 和加密流处理",
				"id": "encryption",
				"label": "加密/解密",
				"parameters": [
					"--key",
					"--key-text-file",
					"--decryption-binary-path"
				]
			},
			{
				"collapsed": true,
				"description": "高级配置和调试选项",
				"id": "advanced",
				"label": "高级选项",
				"parameters": [
					"--ffmpeg-binary-path",
					"--log-level",
					"--no-log",
					"--ui-language",
					"--use-shaka-packager",
					"--mp4-real-time-decryption"
				]
			}
		],
		"searchable": true
	},
	"homepage": "https://github.com/nilaoda/N_m3u8DL-RE",
	"i18n": {
		"en": {
			"--auto-select.description": "Automatically select best quality stream",
			"--auto-select.label": "Auto Select",
			"--auto-subtitle-fix.description": "Automatically fix subtitle timeline",
			"--auto-subtitle-fix.label": "Auto Fix Subtitles",
			"--binary-merge.description": "Use binary merge instead of FFmpeg",
			"--binary-merge.label": "Binary Merge",
			"--check-segments-count.description": "Verify downloaded segment count",
			"--check-segments-count.label": "Check Segment Count",
			"--custom-proxy.description": "Custom proxy server address (e.g., http://127.0.0.1:8888)",
			"--custom-proxy.label": "Proxy Server",
			"--custom-range.description": "Custom download range (format: start-end)",
			"--custom-range.label": "Custom Range",
			"--decryption-binary-path.description": "Path to custom decryption tool",
			"--decryption-binary-path.label": "Decryption Tool Path",
			"--del-after-done.description": "Delete temporary segment files after merging",
			"--del-after-done.label": "Delete Segments After Done",
			"--download-retry-count.description": "Number of retries on download failure",
			"--download-retry-count.label": "Retries",
			"--ffmpeg-binary-path.description": "Path to FFmpeg executable",
			"--ffmpeg-binary-path.label": "FFmpeg Path",
			"--header.description": "Custom HTTP headers (format: Key:Value)",
			"--header.label": "HTTP Headers",
			"--http-request-timeout.description": "HTTP request timeout in seconds",
			"--http-request-timeout.label": "HTTP Timeout",
			"--key-text-file.description": "Read decryption key from file",
			"--key-text-file.label": "Key File",
			"--key.description": "Manually specify decryption key (HEX format)",
			"--key.label": "Decryption Key",
			"--live-fix-vtt-by-audio.description": "Fix VTT subtitles using audio track duration",
			"--live-fix-vtt-by-audio.label": "Fix Subtitles by Audio",
			"--live-keep-segments.description": "Keep all segments during live recording",
			"--live-keep-segments.label": "Keep Live Segments",
			"--live-perform-as-vod.description": "Download live stream as if it were on-demand content",
			"--live-perform-as-vod.label": "Treat Live as VOD",
			"--live-pipe-mux.description": "Use pipe mode for live stream muxing",
			"--live-pipe-mux.label": "Pipe Muxing",
			"--live-real-time-merge.description": "Merge live stream segments in real time",
			"--live-real-time-merge.label": "Live Real-Time Merge",
			"--live-record-limit.description": "Live recording duration limit (format: HH:MM:SS)",
			"--live-record-limit.label": "Recording Duration Limit",
			"--log-level.description": "Log output level",
			"--log-level.label": "Log Level",
			"--mp4-real-time-decryption.description": "Real-time decryption for MP4 format",
			"--mp4-real-time-decryption.label": "MP4 Real-Time Decryption",
			"--mux-after-done.description": "Mux to specified format after download",
			"--mux-after-done.label": "Mux After Done",
			"--mux-import.description": "Import external files for muxing",
			"--mux-import.label": "Import for Muxing",
			"--no-log.description": "Do not output log files",
			"--no-log.label": "Disable Logging",
			"--save-dir.description": "Directory to save downloaded files",
			"--save-dir.label": "Save Directory",
			"--save-name.description": "Saved filename (without extension)",
			"--save-name.label": "Filename",
			"--skip-download.description": "Parse only, do not download (for debugging)",
			"--skip-download.label": "Skip Download",
			"--skip-merge.description": "Do not merge segments after download",
			"--skip-merge.label": "Skip Merge",
			"--sub-format.description": "Subtitle output format",
			"--sub-format.label": "Subtitle Format",
			"--sub-only.description": "Download subtitles only, skip video",
			"--sub-only.label": "Subtitles Only",
			"--thread-count.description": "Number of concurrent download threads",
			"--thread-count.label": "Download Threads",
			"--tmp-dir.description": "Directory for temporary files",
			"--tmp-dir.label": "Temporary Directory",
			"--ui-language.description": "User interface language",
			"--ui-language.label": "UI Language",
			"--use-shaka-packager.description": "Use Shaka Packager instead of FFmpeg for muxing",
			"--use-shaka-packager.label": "Use Shaka Packager",
			"--use-system-proxy.description": "Use system proxy settings",
			"--use-system-proxy.label": "Use System Proxy",
			"-R.description": "Download speed limit (e.g., 15M, 100K)",
			"-R.label": "Speed Limit",
			"-mt.description": "Download audio/video/subtitle tracks simultaneously",
			"-mt.label": "Parallel Track Download",
			"-sa.description": "Select audio stream by regex (e.g., lang=\"Chinese\")",
			"-sa.label": "Select Audio Stream",
			"-ss.description": "Select subtitle stream by regex",
			"-ss.label": "Select Subtitle Stream",
			"-sv.description": "Select video stream by regex (e.g., res=\"1080*\")",
			"-sv.label": "Select Video Stream",
			"advanced.description": "Advanced configuration and debugging",
			"advanced.label": "Advanced Options",
			"basic.description": "Basic download configuration",
			"basic.label": "Basic Settings",
			"description": "M3U8 downloader based on N_m3u8DL-RE",
			"download.description": "Download behavior and performance settings",
			"download.label": "Download Options",
			"encryption.description": "DRM and encrypted stream handling",
			"encryption.label": "Encryption/Decryption",
			"input.description": "URL of the M3U8 playlist",
			"input.label": "Input URL",
			"live.description": "Live stream settings",
			"live.label": "Live Recording",
			"mux.description": "Video container format conversion",
			"mux.label": "Muxing Settings",
			"name": "M3U8 Download",
			"network.description": "HTTP requests and proxy configuration",
			"network.label": "Network Settings",
			"stream.description": "Select video/audio/subtitle streams",
			"stream.label": "Stream Selection",
			"subtitle.description": "Subtitle download and format settings",
			"subtitle.label": "Subtitle Options"
		}
	},
	"id": "n_m3u8dl-re",
	"name": "M3U8 下载",
	"schema": {
		"args": {
			"--auto-select": {
				"default": "{true}",
				"description": "自动选择最佳质量流",
				"group": "download",
				"index": 12,
				"label": "自动选择",
				"type": "boolean"
			},
			"--auto-subtitle-fix": {
				"default": true,
				"description": "自动修复字幕时间轴",
				"group": "subtitle",
				"index": 52,
				"label": "自动修复字幕",
				"type": "boolean"
			},
			"--binary-merge": {
				"default": false,
				"description": "使用二进制合并而非 FFmpeg",
				"group": "download",
				"index": 16,
				"label": "二进制合并",
				"type": "boolean"
			},
			"--check-segments-count": {
				"default": "{false}",
				"description": "检查已下载分段数量",
				"group": "download",
				"index": 15,
				"label": "检查分段数",
				"type": "boolean"
			},
			"--custom-proxy": {
				"default": "{proxy}",
				"description": "自定义代理服务器地址（如：http://127.0.0.1:8888）",
				"group": "network",
				"index": 21,
				"label": "代理服务器",
				"type": "string"
			},
			"--custom-range": {
				"default": "",
				"description": "自定义下载范围（格式：start-end）",
				"group": "network",
				"index": 22,
				"label": "自定义范围",
				"pattern": "^\\d+-\\d+$",
				"type": "string"
			},
			"--decryption-binary-path": {
				"default": "",
				"description": "自定义解密程序路径",
				"group": "encryption",
				"index": 72,
				"label": "解密程序路径",
				"type": "file",
				"uiComponent": "file-picker"
			},
			"--del-after-done": {
				"default": "{deleteSegments}",
				"description": "合并完成后删除临时分段文件",
				"group": "download",
				"index": 17,
				"label": "完成后删除分段",
				"type": "boolean"
			},
			"--download-retry-count": {
				"default": 3,
				"description": "下载失败时的重试次数",
				"group": "download",
				"index": 11,
				"label": "重试次数",
				"max": 10,
				"min": 0,
				"type": "number"
			},
			"--ffmpeg-binary-path": {
				"default": "{ffmpegPath}",
				"description": "FFmpeg 可执行文件路径",
				"group": "advanced",
				"index": 60,
				"label": "FFmpeg 路径",
				"type": "file",
				"uiComponent": "file-picker"
			},
			"--header": {
				"default": "{headers}",
				"description": "自定义 HTTP 请求头（格式：Key:Value）",
				"group": "network",
				"index": 20,
				"label": "HTTP 请求头",
				"pattern": "^[^:]+:.+$",
				"type": "string"
			},
			"--http-request-timeout": {
				"default": 100,
				"description": "HTTP 请求超时时间（秒）",
				"group": "network",
				"index": 24,
				"label": "HTTP 超时",
				"max": 600,
				"min": 1,
				"type": "number"
			},
			"--key": {
				"default": "",
				"description": "手动指定解密密钥（HEX格式）",
				"group": "encryption",
				"index": 70,
				"label": "解密密钥",
				"pattern": "^[0-9a-fA-F]*$",
				"type": "string"
			},
			"--key-text-file": {
				"default": "",
				"description": "从文件读取解密密钥",
				"group": "encryption",
				"index": 71,
				"label": "密钥文件",
				"type": "file",
				"uiComponent": "file-picker"
			},
			"--live-fix-vtt-by-audio": {
				"default": false,
				"description": "使用音轨时长修复 VTT 字幕",
				"group": "live",
				"index": 33,
				"label": "音频修复字幕",
				"type": "boolean"
			},
			"--live-keep-segments": {
				"default": false,
				"description": "直播录制时保留所有分段",
				"group": "live",
				"index": 31,
				"label": "保留直播分段",
				"type": "boolean"
			},
			"--live-perform-as-vod": {
				"default": false,
				"description": "将直播流当作点播内容下载",
				"group": "live",
				"index": 35,
				"label": "直播当点播下载",
				"type": "boolean"
			},
			"--live-pipe-mux": {
				"default": false,
				"description": "直播流使用管道模式复用",
				"group": "live",
				"index": 32,
				"label": "管道复用",
				"type": "boolean"
			},
			"--live-real-time-merge": {
				"default": "{true}",
				"description": "直播流实时合并分段",
				"group": "live",
				"index": 30,
				"label": "直播实时合并",
				"type": "boolean"
			},
			"--live-record-limit": {
				"default": "",
				"description": "直播录制时长限制（格式：HH:MM:SS）",
				"group": "live",
				"index": 34,
				"label": "录制时长限制",
				"pattern": "^\\d{2}:\\d{2}:\\d{2}$",
				"type": "string"
			},
			"--log-level": {
				"default": "INFO",
				"description": "日志输出级别",
				"group": "advanced",
				"index": 61,
				"label": "日志级别",
				"options": [
					"OFF",
					"ERROR",
					"WARN",
					"INFO",
					"DEBUG"
				],
				"type": "string"
			},
			"--mp4-real-time-decryption": {
				"default": false,
				"dependsOn": {
					"condition": "equals",
					"parameter": "--mux-after-done",
					"value": "format=mp4"
				},
				"description": "MP4 格式实时解密",
				"group": "advanced",
				"index": 65,
				"label": "MP4 实时解密",
				"type": "boolean"
			},
			"--mux-after-done": {
				"default": "format=mp4",
				"description": "下载完成后复用到指定格式",
				"group": "mux",
				"index": 40,
				"label": "完成后复用",
				"options": [
					"format=mp4",
					"format=mkv",
					"format=ts"
				],
				"type": "string"
			},
			"--mux-import": {
				"default": "",
				"description": "导入外部文件进行复用",
				"group": "mux",
				"index": 41,
				"label": "导入复用",
				"type": "string"
			},
			"--no-log": {
				"default": "{true}",
				"description": "不输出日志文件",
				"group": "advanced",
				"index": 62,
				"label": "禁用日志",
				"type": "boolean"
			},
			"--save-dir": {
				"default": "{localDir}",
				"description": "下载文件的保存目录",
				"group": "basic",
				"index": 1,
				"label": "保存目录",
				"type": "file",
				"uiComponent": "file-picker"
			},
			"--save-name": {
				"default": "{name}",
				"description": "保存的文件名（不含扩展名）",
				"group": "basic",
				"index": 2,
				"label": "文件名",
				"type": "string"
			},
			"--skip-download": {
				"default": false,
				"description": "只解析不下载（调试用）",
				"group": "download",
				"index": 14,
				"label": "跳过下载",
				"type": "boolean"
			},
			"--skip-merge": {
				"default": false,
				"description": "下载完成后不合并分段",
				"group": "download",
				"index": 13,
				"label": "跳过合并",
				"type": "boolean"
			},
			"--sub-format": {
				"default": "VTT",
				"description": "字幕输出格式",
				"group": "subtitle",
				"index": 50,
				"label": "字幕格式",
				"options": [
					"VTT",
					"SRT"
				],
				"type": "string"
			},
			"--sub-only": {
				"default": false,
				"description": "仅下载字幕文件，不下载视频",
				"group": "subtitle",
				"index": 51,
				"label": "仅下载字幕",
				"type": "boolean"
			},
			"--thread-count": {
				"default": "{cpuThreads}",
				"description": "并发下载的线程数量",
				"group": "download",
				"index": 10,
				"label": "下载线程数",
				"max": 32,
				"min": 1,
				"type": "number"
			},
			"--tmp-dir": {
				"default": "{localDir}",
				"description": "临时文件存储目录",
				"group": "basic",
				"index": 3,
				"label": "临时目录",
				"type": "file",
				"uiComponent": "file-picker"
			},
			"--ui-language": {
				"default": "zh-CN",
				"description": "用户界面语言",
				"group": "advanced",
				"index": 63,
				"label": "界面语言",
				"options": [
					"zh-CN",
					"zh-TW",
					"en-US"
				],
				"type": "string"
			},
			"--use-shaka-packager": {
				"default": false,
				"description": "使用 Shaka Packager 而非 FFmpeg 进行复用",
				"group": "advanced",
				"index": 64,
				"label": "使用 Shaka Packager",
				"type": "boolean"
			},
			"--use-system-proxy": {
				"default": false,
				"description": "使用系统代理设置",
				"group": "network",
				"index": 23,
				"label": "使用系统代理",
				"type": "boolean"
			},
			"-R": {
				"default": "",
				"description": "下载速度限制（如：15M, 100K）",
				"group": "download",
				"index": 18,
				"label": "速度限制",
				"type": "string"
			},
			"-mt": {
				"default": false,
				"description": "同时下载音频/视频/字幕轨道",
				"group": "download",
				"index": 19,
				"label": "并行下载轨道",
				"type": "boolean"
			},
			"-sa": {
				"default": "",
				"description": "按正则选择音频流（如：lang=\"Chinese\"）",
				"group": "stream",
				"index": 26,
				"label": "选择音频流",
				"type": "string"
			},
			"-ss": {
				"default": "",
				"description": "按正则选择字幕流",
				"group": "stream",
				"index": 27,
				"label": "选择字幕流",
				"type": "string"
			},
			"-sv": {
				"default": "",
				"description": "按正则选择视频流（如：res=\"1080*\"）",
				"group": "stream",
				"index": 25,
				"label": "选择视频流",
				"type": "string"
			},
			"input": {
				"default": "{url}",
				"description": "M3U8 播放列表的 URL 地址",
				"group": "basic",
				"index": 0,
				"label": "输入 URL",
				"required": true,
				"type": "string"
			}
		},
		"consoleReg": {
			"error": "ERROR",
			"isLive": "检测到直播流",
			"percent": "([\\d.]+)%",
			"speed": "([\\d.]+[GMK]Bps)",
			"start": "保存文件名:"
		},
		"type": "n_m3u8dl-re"
	},
	"script": "ui.json",
	"type": "n_m3u8dl-re",
	"version": "1.0.8"
}
