Skip to content

Repository files navigation

DITto

开剪前给每段素材一个全局唯一名字,终结多天同名 C0001.MP4 带来的代理掉线与跨软件套底失败。

License: MIT CI Platform

DITto 是一个面向影视后期 / 无专职 DIT 小团队的 macOS 桌面小工具。它只做一件事:在开剪前,把素材文件和同目录 sidecar 就地改成全局唯一文件名,并留下可撤销的 manifest。

DITto app screenshot

为什么需要它

很多相机在每天格式化存储卡后,文件名会重新从 C0001.MP4 开始。拍摄多天后,同一个项目里会出现大量同名素材。剪辑软件在代理重连、XML/AAF 套底时高度依赖文件名与卷名,重名素材会让链路变脆。

DITto 的做法很保守:

  • 只改文件名
  • 不 remux
  • 不改写视频流或内嵌元数据
  • 执行前必须预览。
  • 就地改名使用两阶段流程,避免瞬时撞名。
  • 每次成功执行都会写出 _DIT_rename_manifest_*.json,可撤销。

完整使用说明见本文后续章节;发布流程见 docs/RELEASE.md

核心特性

  • 多文件夹素材扫描,递归识别 .mp4 / .mov
  • sidecar 同步改名,例如 Sony C0001M01.XML.THM
  • 命名格式:{PROJECT}_{DAY}_{CUSTOM_TAG?}_{CAMERA?}_{ORIGINAL}
  • 可选自定义标签,适合摄影师、组别、机位补充信息等。
  • 执行前预览旧名、新名、类型和冲突状态。
  • 两阶段就地改名,降低 A→B、B→A 互换场景风险。
  • manifest 撤销:支持撤销上一次,也支持从 manifest 文件撤销。
  • macOS 原生文件夹选择与 Finder 显示 manifest。

命名示例

C0001.MP4      → WEDDING_D01_ALICE_A_C0001.MP4
C0001M01.XML   → WEDDING_D01_ALICE_A_C0001M01.XML
C0001.THM      → WEDDING_D01_ALICE_A_C0001.THM

自定义标签或机位为空时自动省略:

WEDDING_D01_A_C0001.MP4
WEDDING_D01_C0001.MP4

所有命名段会被清洗为大写安全字符:A-Z0-9_

安装 / 使用

从 GitHub Releases 下载 .dmg,把 DITto.app 拖到 Applications 或任意目录后运行。

当前自用包可能是 ad-hoc 签名、未 notarize。首次运行如遇 macOS Gatekeeper 拦截,可在“系统设置 → 隐私与安全性”中手动允许。正式公开发布前建议使用 Apple Developer ID 签名并 notarize。

基本流程:

  1. 拖入或选择一个 / 多个素材文件夹。
  2. 填项目名、拍摄日,可选填自定义标签和机位。
  3. 点击预览,确认新旧文件名和冲突状态。
  4. 无冲突后执行重命名。
  5. 需要回滚时,使用“撤销上一次”或“从文件撤销”。

开发

要求:

  • macOS
  • Node.js 24(见 .nvmrc
  • pnpm
  • 可选:ffprobe(用于日期推断,brew install ffmpeg
pnpm i
pnpm dev

常用命令:

pnpm lint
pnpm typecheck
pnpm test
pnpm build
pnpm dist

发布前建议运行:

pnpm lint && pnpm typecheck && pnpm test && pnpm build
pnpm dist

打包说明

pnpm dist 会生成 arm64 macOS DMG:

release/DITto-<version>-arm64.dmg

Electron 应用包含 Chromium / Node / Electron runtime,体积会明显大于原生 Swift 小工具,这是正常现象。

安全边界

DITto 不会读取云端账户、不上传文件、不复制素材、不改写视频内部数据。它会对你选择的本地文件夹执行文件重命名,因此请在执行前仔细检查预览,并保留原始拍摄介质或备份。

贡献

CONTRIBUTING.md

许可证

MIT © 2026 haixing23

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages