mirror of
https://github.com/NohamR/N_m3u8DL-RE_Command_Generator.git
synced 2025-05-24 14:31:57 +00:00
364 lines
19 KiB
HTML
364 lines
19 KiB
HTML
<!DOCTYPE html>
|
|
<meta lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Command Generator</title>
|
|
<link rel="stylesheet"
|
|
href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,300;0,700;1,400&display=swap.css">
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.5.1/gsap.min.js"></script>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<link rel="stylesheet" href="style.css">
|
|
<link rel="stylesheet" href="button-style.css">
|
|
</head>
|
|
<script type="module" src="generator.js"></script>
|
|
<script type="module" src="darkmode.js"></script>
|
|
|
|
<body class="dark">
|
|
<div id="DarkMode">
|
|
<div class="container-switch">
|
|
<div class="switch">
|
|
<div class="toggle-button">
|
|
<div class="toggle"></div>
|
|
<div class="moon-mask"></div>
|
|
<div class="circles-wrapper">
|
|
<div class="circle"></div>
|
|
<div class="circle"></div>
|
|
<div class="circle"></div>
|
|
<div class="circle"></div>
|
|
<div class="circle"></div>
|
|
<div class="circle"></div>
|
|
<div class="circle"></div>
|
|
<div class="circle"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="text">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<section class="container">
|
|
<a class="link" href="./cli2re.html">CLI命令转RE</a>
|
|
<header>Generator</header>
|
|
<div id="output"></div>
|
|
<form action="#" class="form" id="generator_body">
|
|
<div class="column">
|
|
<div class="input-box">
|
|
<label for="input">Url</label>
|
|
<input id="input" type="text" placeholder="链接或文件" required>
|
|
</div>
|
|
<div class="input-box">
|
|
<label>save-name</label>
|
|
<input id="save-name" type="text" placeholder="设置保存文件名">
|
|
</div>
|
|
<div class="input-box">
|
|
<label>base-url</label>
|
|
<input id="base-url" type="text" placeholder="设置BaseURL">
|
|
</div>
|
|
</div>
|
|
<div class="column">
|
|
<div class="input-box">
|
|
<label>save-dir</label>
|
|
<input id="save-dir" type="text" placeholder="设置输出目录">
|
|
</div>
|
|
<div class="input-box">
|
|
<label>tmp-dir</label>
|
|
<input id="tmp-dir" type="text" placeholder="设置临时文件存储目录">
|
|
</div>
|
|
<div class="input-box">
|
|
<label>mux-import</label>
|
|
<input id="mux-import" type="text" placeholder="混流时引入外部媒体文件">
|
|
</div>
|
|
</div>
|
|
<div class="column">
|
|
<div class="input-box">
|
|
<label>thread-count</label>
|
|
<input id="thread-count" type="text" placeholder="设置下载线程数 [default: 8]" defalut="8">
|
|
</div>
|
|
<div class="input-box">
|
|
<label>download-retry-count</label>
|
|
<input id="download-retry-count" type="text" placeholder="每个分片下载异常时的重试次数 [default: 3]" defalut="3">
|
|
</div>
|
|
</div>
|
|
<div class="column">
|
|
<div class="input-box">
|
|
<label>ffmpeg-binary-path</label>
|
|
<input id="ffmpeg-binary-path" type="text" placeholder="ffmpeg可执行程序全路径, 例如 C:\Tools\ffmpeg.exe">
|
|
</div>
|
|
<div class="input-box">
|
|
<label>urlprocessor-args</label>
|
|
<input id="urlprocessor-args" type="text" placeholder="此字符串将直接传递给URL Processor">
|
|
</div>
|
|
</div>
|
|
<div class="input-box">
|
|
<label>key-text-file</label>
|
|
<input id="key-text-file" type="text" placeholder="设置密钥文件,程序将从文件中按KID搜寻KEY以解密.(不建议使用特大文件)">
|
|
</div>
|
|
<div class="input-box">
|
|
<label>decryption-binary-path</label>
|
|
<input id="decryption-binary-path" type="text" placeholder=" MP4解密所用工具的全路径, 例如 C:\Tools\mp4decrypt.exe">
|
|
</div>
|
|
|
|
<div class="column">
|
|
<div class="input-box">
|
|
<label>mux-after-done</label>
|
|
<input id="mux-after-done" type="text" placeholder="所有工作完成时尝试混流分离的音视频">
|
|
</div>
|
|
<div class="input-box">
|
|
<label>custom-hls-key</label>
|
|
<input id="custom-hls-key" type="text" placeholder="指定HLS解密KEY. 可以是文件, HEX或Base64">
|
|
</div>
|
|
</div>
|
|
<div class="column">
|
|
<div class="input-box">
|
|
<label>custom-hls-iv</label>
|
|
<input id="custom-hls-iv" type="text" placeholder="指定HLS解密IV. 可以是文件, HEX或Base64">
|
|
</div>
|
|
<div class="input-box">
|
|
<label>custom-proxy</label>
|
|
<input id="custom-proxy" type="text" placeholder="设置请求代理, 如 http://127.0.0.1:8888">
|
|
</div>
|
|
</div>
|
|
<div class="column">
|
|
|
|
<div class="input-box">
|
|
<label>custom-range</label>
|
|
<input id="custom-range" type="text" placeholder="仅下载部分分片">
|
|
</div>
|
|
<div class="input-box">
|
|
<label>task-start-at</label>
|
|
<input id="task-start-at" type="text" placeholder="格式:<yyyyMMddHHmmss>在此时间之前不会开始执行任务">
|
|
</div>
|
|
</div>
|
|
<div class="column">
|
|
<div class="input-box">
|
|
<label>live-record-limit</label>
|
|
<input id="live-record-limit" type="text" placeholder="录制直播时的录制时长限制,格式: HH:mm:ss">
|
|
</div>
|
|
<div class="input-box">
|
|
<label>live-wait-time</label>
|
|
<input id="live-wait-time" type="text" placeholder="手动设置直播列表刷新间隔, 单位为秒">
|
|
</div>
|
|
</div>
|
|
<div class="column">
|
|
<div class="input-box">
|
|
<label>select-video</label>
|
|
<input id="select-video" type="text" placeholder="通过正则表达式选择符合要求的视频流">
|
|
</div>
|
|
<div class="input-box">
|
|
<label>select-audio</label>
|
|
<input id="select-audio" type="text" placeholder="通过正则表达式选择符合要求的音频流">
|
|
</div>
|
|
<div class="input-box">
|
|
<label>select-subtitle</label>
|
|
<input id="select-subtitle" type="text" placeholder="通过正则表达式选择符合要求的字幕流">
|
|
</div>
|
|
</div>
|
|
<div class="column">
|
|
<div class="input-box">
|
|
<label>drop-video</label>
|
|
<input id="drop-video" type="text" placeholder="通过正则表达式去除符合要求的视频流">
|
|
</div>
|
|
<div class="input-box">
|
|
<label>drop-audio</label>
|
|
<input id="drop-audio" type="text" placeholder="通过正则表达式去除符合要求的音频流">
|
|
</div>
|
|
<div class="input-box">
|
|
<label>drop-subtitle</label>
|
|
<input id="drop-subtitle" type="text" placeholder="通过正则表达式去除符合要求的字幕流">
|
|
</div>
|
|
</div>
|
|
<div class="column">
|
|
<div id="header" class="input-box ">
|
|
<div class="row">
|
|
<label>header</label><label class="button"
|
|
onclick="insert('#header','header','为HTTP请求设置特定的请求头, 例如: -H "Cookie: mycookie" -H "User-Agent: iOS"')">+</label><label
|
|
class="button" onclick="removeLast('#header')">-</label>
|
|
<input type="text" id="header"
|
|
placeholder="为HTTP请求设置特定的请求头, 例如: -H "Cookie: mycookie" -H "User-Agent: iOS"">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="column">
|
|
<div id="key" class="input-box ">
|
|
<div class="row">
|
|
<label>key</label><label class="button"
|
|
onclick="insert('#key','key','设置解密密钥, 程序调用mp4decrpyt/shaka-packager进行解密. 格式: --key KID1:KEY1 --key KID2:KEY2')">+</label><label
|
|
class="button" onclick="removeLast('#key')">-</label>
|
|
<input type="text" id="key"
|
|
placeholder="设置解密密钥, 程序调用mp4decrpyt/shaka-packager进行解密. 格式: --key KID1:KEY1 --key KID2:KEY2">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="column">
|
|
<div class="input-box">
|
|
<label for="log-level">log-level</label>
|
|
<div class="description">设置日志级别</div>
|
|
<div class="select-box">
|
|
<select id="log-level">
|
|
<option value="">INFO</option>
|
|
<option>DEBUG</option>
|
|
<option>WARN</option>
|
|
<option>ERROR</option>
|
|
<option>OFF</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="input-box">
|
|
<label for="custom-hls-method">custom-hls-method</label>
|
|
<div class="description">指定HLS加密方式</div>
|
|
<div class="select-box">
|
|
<select id="custom-hls-method">
|
|
<option value="">AUTO</option>
|
|
<option>AES_128</option>
|
|
<option>AES_128_ECB</option>
|
|
<option>CENC</option>
|
|
<option>CHACHA20</option>
|
|
<option>NONE</option>
|
|
<option>SAMPLE_AES</option>
|
|
<option>SAMPLE_AES_CTR</option>
|
|
<option>UNKNOWN</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="input-box">
|
|
<label for="sub-format">sub-format</label>
|
|
<div class="description">字幕输出类型</div>
|
|
<div class="select-box">
|
|
<select id="sub-format">
|
|
<option value="">SRT</option>
|
|
<option>VTT</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="input-box">
|
|
<label for="ui-language">ui-language</label>
|
|
<div class="description">设置UI语言</div>
|
|
<div class="select-box">
|
|
<select id="ui-language">
|
|
<option value="">auto</option>
|
|
<option>zh-CN</option>
|
|
<option>zh-TW</option>
|
|
<option>en-US</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="check-box">
|
|
<div class="check-option ">
|
|
<div class="check ">
|
|
<div>
|
|
<input type="checkbox" id="no-log" />
|
|
<label for="no-log">no-log</label>
|
|
<div class="description">关闭日志文件输出</div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="auto-select" />
|
|
<label for="auto-select">auto-select</label>
|
|
<div class="description">自动选择所有类型的最佳轨道</div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="skip-merge" />
|
|
<label for="skip-merge">skip-merge</label>
|
|
<div class="description">跳过合并分片</div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="skip-download" />
|
|
<label for="skip-download">skip-download</label>
|
|
<div class="description">跳过下载</div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="check-segments-count" checked default="true" />
|
|
<label for="check-segments-count">check-segments-count</label>
|
|
<div class="description">检测实际下载的分片数量和预期数量是否匹配 </div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="binary-merge" />
|
|
<label for="binary-merge">binary-merge</label>
|
|
<div class="description">二进制合并</div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="del-after-done" checked default="true" />
|
|
<label for="del-after-done">del-after-done</label>
|
|
<div class="description">完成后删除临时文件 </div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="no-date-info" />
|
|
<label for="no-date-info">no-date-info</label>
|
|
<div class="description">混流时不写入日期信息</div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="write-meta-json" default="true" checked />
|
|
<label for="write-meta-json">write-meta-json</label>
|
|
<div class="description">解析后的信息是否输出json文件</div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="append-url-params" />
|
|
<label for="append-url-params">append-url-params</label>
|
|
<div class="description">将输入Url的Params添加至分片, 对某些网站很有用, 例如 kakao.com</div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="concurrent-download" />
|
|
<label for="concurrent-download">concurrent-download</label>
|
|
<div class="description">并发下载已选择的音频、视频和字幕</div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="sub-only" />
|
|
<label for="sub-only">sub-only</label>
|
|
<div class="description">只选取字幕轨道</div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="auto-subtitle-fix" checked default="true" />
|
|
<label for="auto-subtitle-fix">auto-subtitle-fix</label>
|
|
<div class="description">自动修正字幕 </div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="use-shaka-packager" />
|
|
<label for="use-shaka-packager">use-shaka-packager</label>
|
|
<div class="description">解密时使用shaka-packager替代mp4decrypt</div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="mp4-real-time-decryption" />
|
|
<label for="mp4-real-time-decryption">mp4-real-time-decryption</label>
|
|
<div class="description">实时解密MP4分片</div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="use-system-proxy" checked default="true" />
|
|
<label for="use-system-proxy">use-system-proxy</label>
|
|
<div class="description">使用系统默认代理 </div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="live-perform-as-vod" />
|
|
<label for="live-perform-as-vod">live-perform-as-vod</label>
|
|
<div class="description">以点播方式下载直播流</div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="live-real-time-merge" />
|
|
<label for="live-real-time-merge">live-real-time-merge</label>
|
|
<div class="description">录制直播时实时合并</div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="live-keep-segments" checked default="true" />
|
|
<label for="live-keep-segments">live-keep-segments</label>
|
|
<div class="description">录制直播并开启实时合并时依然保留分片 </div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="live-pipe-mux" />
|
|
<label for="live-pipe-mux">live-pipe-mux</label>
|
|
<div class="description">录制直播并开启实时合并时通过管道+ffmpeg实时混流到TS文件</div>
|
|
</div>
|
|
<div>
|
|
<input type="checkbox" id="live-fix-vtt-by-audio" />
|
|
<label for="live-fix-vtt-by-audio">live-fix-vtt-by-audio</label>
|
|
<div class="description">通过读取音频文件的起始时间修正VTT字幕 </div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<input type="submit" class="button" value="Generate" onclick="generate('generator_body');return true" />
|
|
</form>
|
|
</section>
|
|
</body> |