桌面端字幕批量重命名工具. 基于集数 key 自动配对视频与字幕文件, 把外挂字幕改名为视频同名(可配置后缀)以便播放器自动载入.
- 自动配对: 基于文件名集合内差异片段提取集数 key, 无需固定命名格式. 支持正则兜底与手动指派.
- 目标名生成: 视频主名 + 可选后缀 + 字幕原扩展名.
.idx+.sub成对作为同一逻辑单元. - 后缀三级解析: 用户标记映射表 → 文件名语言 token 自动提取 → 全局后缀.
- 执行安全: 动作模式显式二选一 —
Rename在字幕目录原地改名并写入 renames 历史;Copy复制到视频目录、源文件原样保留并写入 copies 日志. 按 (目录, 校验和) 身份反查命名史. - 可还原: 原地改名记录 checksum 身份, 还原前重算校验和比对, 不一致即拒绝还原; copy 不落 rename 历史, 撤销 copy = 删除目标文件(过于危险, 故意不提供).
- 冲突检测: 目标名重复 / 目标路径已存在均会标记冲突并阻止执行.
# release build (~20 MB stripped)
cargo build --release
./target/release/SubRE- 通过 Browse 按钮载入视频/字幕文件或文件夹(或在媒体目录下启动自动扫描当前目录).
- 主界面呈现视频 | 字幕 | 目标文件名 三列视图.
- 调整后缀(全局后缀, token→后缀映射), 预览即时刷新.
- 检查未匹配项 / 冲突项,必要时手动解除或编辑.
- 点击 Apply, 在确认对话框中确认后执行.
- 历史面板可浏览过往会话并按单条 / 整批还原.
配置全部通过界面 Settings 区修改, 点 Save config 落盘; 无需手工编辑配置文件.
- 历史数据库:
$XDG_DATA_HOME/SubRE/state.db(~/.local/share/SubRE/state.db) - 配置文件:
$XDG_CONFIG_HOME/SubRE/config.toml(~/.config/SubRE/config.toml)
历史遗留配置中的 action_mode = "Auto" / "Move" 会按启动规则解析为 Rename.
cargo fmt --check # 格式检查
cargo clippy --all-targets -- -D warnings # 严格 lint
cargo test # 单元测试 + 语料集成测试
cargo build --release本项目在开发过程中大量使用 AI 辅助生成代码. 作者仍在学习 Rust, 尚未对全部代码进行独立人工审阅, 使用前请自行评估风险.
GPL-3.0-or-later. 详见 LICENSE.
tests/fixtures/match_cases_subrenamer.json 语料来自 qwqcode/SubRenamer, 按 GPL-2.0 授权, 在文件头保留来源标注.