用途:为 ButterCut 创建新的项目媒体库(用户侧称为“设置项目”),在主线执行,完成后交由 process-library 技能做端到端素材分析。
主要能力与步骤:
- 初始化设置:检查 libraries/settings.yaml 是否存在,不存在则执行 cp templates/settings_template.yaml libraries/settings.yaml;若无旧配置,用 AskUserQuestion 确认或修改默认值 editor 与 whisper_model。editor 可选 Final Cut Pro X→fcpx(仅 macOS 提供)、Adobe Premiere Pro→premiere、DaVinci Resolve→resolve;whisper_model 可选 Small(推荐)、Medium、Turbo(Large)。
- 收集项目信息:先防止覆盖已有库,拿到候选名后运行 ruby lib/buttercut/library.rb <name> exists(存在退出 0,否则 1);若已存在则停止创建,改用 process-library。随后逐个提问:库名称(规范化为小写、空格转连字符、去特殊字符);素材位置(可拖入文件夹或文件,支持视频 mov/mp4/mts/m2ts/mxf/avi,图片 jpg/jpeg/png,其他格式需先用 ffmpeg 转换);视频语言(如 English、Spanish 或自由输入);是否允许校对转写(保存为 transcript_refinement 布尔值,跳过时默认 true)。从 settings.yaml 读取 editor 传入创建调用。
- 创建库:通过 ruby -e 调用 Library.create,创建 transcripts/、contact_sheets/、summaries/、cuts/、plans/、misc/ 目录树,对每个视频 ffprobe 时长,并写入 library.yaml。media_paths 可同时包含视频与图片,类型按扩展名推断。
限制与注意事项:图片条目只有空的 summary,无 transcript、contact sheet 或时长。新建库总写入当前 schema,无需迁移;若改动既有库,需对照 templates/library_template.yaml 检查 schema,必要时运行 ruby lib/buttercut/library.rb migrate。创建后素材尚未分析,需继续执行 process-library。