v0.3.2 — 新版剪映草稿 schema 导出
新增
- 新版剪映 schema-driven 草稿导出 (#48):剪映导出从单文件 JSON 拼装拆成 schema / model / builder / track / writer 分层,草稿基线升级到
version: 360000、new_version: 111.0.0、app_version: 5.9.5-beta1,并补齐包含common_mask在内的新版materialsskeleton。 - 素材类型注册表与能力清单 (#48):明确区分已支持的
video/audio/text/subtitle/speed,以及预留但暂不写出的 image/sticker/effect/mask 等类别;未知或暂不支持类别会输出 note 并跳过,避免生成畸形草稿。
改进
- 剪映导出保持可选、懒加载、stdlib-only (#48):
export_jianying.py现在只是薄 facade,核心 ffmpeg 渲染路径不会导入任何jianying_*模块;timeline.json仍是后端无关的 canonical input,ffmpeg 仍是最终成片判定标准。 - 草稿写入更安全 (#48):保留非空目录避让、媒体打包、路径重写、临时目录原子替换;新增
draft_name校验,拒绝空名、绝对路径、..、以及路径分隔符,防止错误名称逃逸草稿父目录。 - BGM 循环与音量自动化覆盖更完整 (#48):循环 BGM 会拆成多段铺满时间线,并把窗口内
KFTypeVolume音量关键帧放到对应片段。
验证
ruff/py_compile/mypy --ignore-missing-imports覆盖剪映导出模块。- 相关 assemble/timeline 测试 84 passed;全项目
scripts/test.py全部 skill groups passed。 - GitHub Actions:ubuntu / macOS / Windows validate 全部通过。
- 本机剪映专业版
10.8.7实测:生成并打开 schema E2E 草稿;历史longvacation_2min_work/timeline.json转出的草稿也已被剪映登记并可打开。
完整对比:v0.3.1...v0.3.2