---
name: edit-video
description: 在剪辑时间线上剪辑一集，并按要求出成片或导出剪映草稿。本集视频已齐、要剪一版时使用；用户按片段编号提出修改（如「c3 太拖」），或要求配 BGM、出成片、导出剪映草稿、复制或重命名剪辑时间线、回到旧修订时，也使用本 skill。
---

# 剪辑视频

一集的成片形态只记录在剪辑时间线上：预览按它拼接，成片与剪映草稿都从它生成。剪辑与出片全部经 `mcp__arcreel__*` 工具完成。各工具的参数、取值范围与写入语义，以工具描述为准。

## 一轮剪辑

用户每提出一次剪辑要求，就走一轮。每一轮都以一次交付结束。

1. **确定剪辑时间线**：用 `mcp__arcreel__list_timelines` 列出本集的剪辑时间线。
   - 本集还没有剪辑时间线：用 `mcp__arcreel__create_timeline` 按脚本机械新建一条，显示名用「完整版」。
   - 用户点名了某一条，就用那一条；没有点名时，用 `list_timelines` 中最近修改时间最新的那一条。用户的说法对得上多条、分不清指的是哪条时，先问用户。

   完成标准：拿到唯一一个剪辑时间线 ID。
2. **读取**：用 `mcp__arcreel__read_timeline` 读取选中的剪辑时间线，把用户的要求对应到片段编号（如 c3）。找不到用户说的片段时，先问清楚再改。仅要求出片时，读完直接进入「出片」。首轮剪辑（刚新建的时间线，或用户让你剪一版）读完后，`issues` 里有 `narration_missing` 时先按 `generate-narration-audio` 补齐缺失的旁白配音并重读时间线（旁白越界与相撞要有配音实测时长才算得出），再按「首轮全量审阅」一节看完全部素材，然后进入第 3 步。

   完成标准：每条要求都能定位到片段，或已明确需要用户补充的信息；首轮剪辑另有每个视频单元的审片报告，TTS 配音项目已补齐旁白配音，或已记下补不齐的单元。
3. **剪辑决策（L1）**：根据用户的要求，以及各片段的时长、状态、剪辑理由和 `issues`，决定本轮操作：
   - **结构**：围绕叙事顺序决定片段的取舍、重排与重复使用。大规模重构（重排大半片段、整体换一种节奏）先复制：用 `mcp__arcreel__create_timeline`（`from: "timeline"`，`timeline` 取当前选中的 ID）复制一条，显示名写成创作者认得出的剪法，如「快节奏版」；之后在副本上剪，原版留作退路，并告诉用户新时间线的名字。
   - **看画面**：首轮以审片报告为依据。对话中用户追问某几段的画面时（某段是否崩坏、哪里起势或拖尾、候选版本孰优），用 `mcp__arcreel__inspect_video_units` 看相关视频单元的联系表，自己看图判断。联系表同时标出机器检查信号：BLACK 黑屏段、FREEZE 卡帧段是疑似缺陷，看图确认后再决定要不要截掉；CUT 镜头切换点是结构信息，不是缺陷。信号只是提示，取舍以画面为准。
   - **节奏**：按用户提供的区间，或看画面后定下的时刻，决定截取或尾部定格。联系表上标注的时刻与入出点同一时间轴；入出点贴着 CUT 的切点帧或切点前一帧定，不要落在切换中间；截去片头或片尾的黑屏、卡帧时，区间的 end 是候选入点，start 是候选出点。
   - **衔接**：相邻片段之间可以设置转场。脚本里的 `segment_break`（场景切换点）可以当作放转场的提示。
   - **声音**：按用户要求调整原声音量。用户要配 BGM、换 BGM 或调 BGM 时，按「配 BGM」一节处理。
   - **旁白**：`issues` 里有 `narration_overrun` 或 `narration_source_collision` 时，按「旁白放不下时」一节处理。
   - **版本**：用户指定另一视频版本，或审片报告、看画面后另一候选版本明显更好时，用 `mcp__arcreel__select_video_version` 直接切换（不必征得同意），再重读时间线、重新决定截取。
   - **待创作者决定**：素材不可用、需要重新生成的视频单元，以及要改写的画外音，记下来，在第 5 步放进勾选清单。
   - **理由**：为保留或新增的改动片段写一句面向创作者的剪辑理由；删除片段的理由写入本轮总结。

   完成标准：用户这一轮的每条要求都落到了具体片段和操作上；做不到的要求记下原因，留到第 5 步说明。
4. **提交**：把本轮时间线调整集中为一次 `mcp__arcreel__edit_timeline`，依据最近一次读取结果提交，改动摘要用一句话写给创作者看。没有可执行的调整时，直接进入第 5 步。操作被拒时，按返回的定位信息修正后整批重交；遇到 `revision_conflict` 时，先重读，再按最新内容重新决定本轮调整。

   完成标准：调整已提交成功，或已明确本轮没有可提交的调整。
5. **交付**：按「一轮结束的交付」一节，一次交付改动总结、「跳到这里看」链接，以及有待决定事项时的勾选清单。

## 首轮全量审阅

首轮把剪辑时间线用到的每个视频单元都看一遍（current 版本，有候选版本的一并比较），交给只读的审片子智能体 `review-footage` 并行完成。联系表只进子智能体的上下文，你只读它们的文字报告。

1. **分组**：从 `read_timeline` 的片段收集用到的视频单元 ID，去重后按场景或相邻单元分组，每组约 6～10 个视频单元。一个单元连同它的候选版本只进一组，由同一个子智能体比较。
2. **派发**：在同一条消息里为每组发起一次 `review-footage` 子智能体调用，让各组并行。派发消息写明剧本文件、本组视频单元 ID 和报告要求。报告至少回答：能否使用、可用区间及依据、问题及时间点、候选版本排序、是否建议重新生成（以及是否需要修改提示词）、一句可以直接写进剪辑理由的话。
3. **汇总**：按报告逐单元决定第 3 步的操作：挑版本、按可用区间截取、写剪辑理由；建议重新生成的单元记为待创作者决定。

完成标准：时间线用到的每个视频单元都有一份审片报告。缺报告的单元补派一次。

## 一轮结束的交付

一轮剪辑以一次交付结束，三样东西放在同一条消息里：

1. **改动总结**：按片段编号列出本轮改了什么、为什么改，包括挑了哪个视频版本。再列出结果 `issues` 中仍然存在的 blocking 级与 warning 级问题，并说明做不到的要求及原因。
2. **「跳到这里看」链接**：每条问题都附一条应用内链接，写成 Markdown 链接，路径以 `/app/` 开头、不带域名，项目名按路径段做 URL 编码：
   - 问题落在剪辑时间线的片段上：`/app/projects/{项目名}/episodes/{集 ID}?view=edit&tl={剪辑时间线ID}&t={秒}`。`t` 是剪辑时间线上的全局时间：片段的 `start` 加上「问题时间点 − 该片段的入点」。
   - 问题落在没进时间线的视频单元上：`/app/projects/{项目名}/episodes/{集 ID}?unit={单元ID}&t={秒}`。`t` 是该视频单元视频自身的时间。
3. **勾选清单**：有待创作者决定的事项时，交付消息发出后用 AskUserQuestion 多选（`multiSelect: true`）一次问完，每类一个问题：
   - **重新生成**：先用 `mcp__arcreel__generate_videos` 预检（`preview: true`，`target` 取 `selected` 并列出全部候选单元，`force: true`）。每个选项写明视频单元、问题与时间点、是否修改提示词、预计费用与时长档位（档位有变化时写明编排时长与申请档位）；另给一个「全部重新生成」选项，写明合计费用。预检里 `blocked` 的单元不进选项，在改动总结里说明缺口。
   - **改写画外音**：每个选项写明原文 → 改后文字、预计缩短的秒数。

   一个问题的选项放不下全部候选时，按场景合并为一个选项，写明包含哪些视频单元与合计费用。没有待决定事项时不发勾选清单。

完成标准：交付消息里每条问题都有链接；每个待决定事项都在勾选清单里，并带上上述全部信息。

## 执行勾选项

付费或改脚本的动作，一轮只确认一次：创作者在勾选清单里选中的，直接执行，不再追问。

- **重新生成**：要修改提示词的单元先用 `mcp__arcreel__patch_episode_script` 改好提示词。然后用一次 `generate_videos` 提交全部选中项：`target` 取 `selected` 列出选中的单元，`force: true`，`confirmed_request_durations` 原样带上预检结果里的同名字段，档位就不会再被要求确认。被要求重新确认时，说明档位或费用有了变化，把新的报价告诉创作者，由 TA 决定是否继续。

  完成后验收：记下各单元重新生成前的 current 版本号，派 `review-footage` 比较新旧两个版本。挑好的作为 current（旧版本更好时用 `select_video_version` 改回），按报告重设入出点，用 `edit_timeline` 写进剪辑时间线，再按「一轮结束的交付」告诉创作者结果。新版本仍有问题时只在交付里报告，不自动进行第二次重新生成。
- **改写画外音**：用 `mcp__arcreel__patch_episode_script` 改写选中的画外音，再用 `mcp__arcreel__generate_narration_audio` 以 `segment_ids` 点名这些视频单元，重新生成旁白配音。

## 旁白放不下时

旁白从承载片段的起点开始，按配音实测时长播放，比画面长时会延伸到后续片段上，压到下一段旁白上或超出末尾（`narration_overrun`），也可能盖住台词或原声未压低的片段（`narration_source_collision`）。处理办法按授权边界分三级：

- **只动剪辑时间线：直接做。** 放宽截取、切换视频版本、插入同一视频单元的额外片段、尾部定格延长、用 `place_narration` 改挂旁白、压低被盖住片段的原声音量，都在本轮里随其他调整一起提交，并把理由写进片段的剪辑理由。
- **改写画外音：先经创作者确认。** 放进勾选清单，按「执行勾选项」处理。
- **重新生成更长的视频：先改编排时长，再征得同意。** 这一步会产生费用：先说明要把哪个视频单元的编排时长改成多少，以及预计费用，创作者同意后再改编排时长并重新生成。

这两个 issue 都是警告，不阻断出片。剪辑调整之后仍放不下时，在总结里写明剩下的越界与相撞，由创作者决定是带着警告出片，还是批准改写或重新生成。

## 配 BGM

BGM 由创作者在 Web 端剪辑视图的 BGM 轨上传，属于整个项目，响度在上传时已统一。BGM 操作随本轮其他调整在同一次 `edit_timeline` 里提交。

1. **挑 BGM**：用 `mcp__arcreel__list_bgm` 列出项目里的 BGM。用户点名了哪首就用哪首；没点名时，按名称挑最贴合本集情绪的一首，并在总结里说明挑了哪首。项目里没有 BGM，或没有合适的 BGM 时，请创作者在剪辑视图的 BGM 轨上传，上传后再摆放。
2. **摆放**：用 `insert_bgm` 按时间线上的绝对起点摆放。音量和淡入淡出取默认值，用户有要求时再调。
3. **拼多段**：BGM 比要覆盖的区间短时，接着摆下一段：下一段的 `start` 等于上一段的结束时间（上一段的 `start` + `source_out` − `source_in`），首尾相接、不重叠。下一段可以截取 BGM 的另一段落，避免同一乐句反复出现。拼接处两侧的淡出淡入改短到 0.5 秒左右，听起来更连贯。
4. **结尾**：超出时间线末尾的部分会自动截断，并在截断处淡出，不需要算准最后一段的出点。

完成标准：BGM 片段覆盖用户要求的区间，彼此不重叠；`issues` 里没有 `bgm_missing`。出现 `bgm_missing` 时，换一首项目里现有的 BGM，或请创作者重新上传。

## 回到旧修订与整理时间线

每次提交都会追加一个修订，历史不改写。

- **回到旧修订**：用户要撤销改动或回到某个旧样子时，用 `mcp__arcreel__list_revisions` 找到目标修订。用户说的是「撤销上一次」或点名了修订时，直接用 `mcp__arcreel__restore_revision` 回滚；目标不明确时，先把修订摘要列给用户选。回滚整段替换当前内容，回滚后读取一次时间线，按「一轮结束的交付」中改动总结的格式告诉用户现在是什么样。
- **改名**：用 `mcp__arcreel__rename_timeline`，只改显示名，不产生修订。
- **删除**：Agent 没有删除工具。用户要删某条时，告诉 TA 在 Web 端剪辑视图里点该时间线标签旁的菜单，选「删除」。

## 出片

出片有两种交付物：成片（`mcp__arcreel__render_final_cut`）和剪映草稿（`mcp__arcreel__export_jianying_draft`）。用户要哪种就出哪种；只说「出片」时出成片。剪映草稿只在用户要求时导出。

1. **告知问题**：以最近一次读取或提交结果里的 `issues` 为准。
   - 有 blocking 级问题：列给用户，说明出片被哪些片段挡住，以及怎么解决；这些问题解决前不提交。`applies_to` 为 `with_narration` 的问题只挡带旁白版本。需要付费的处理（如生成缺失的视频）由用户决定。
   - 有 warning 级问题：列给用户，说明出片会带着这些问题进行，然后提交。用户要求先修再出时，回到「一轮剪辑」。
2. **提交**：用对应工具提交选中的时间线，等到终态结果。旁白版本（两种交付物都有）和是否烧入字幕（只有成片）按用户要求选择，用户没提就省略、取默认：TTS 配音项目带旁白，成片烧入字幕。被拒时，把返回的问题码和涉及的片段告诉用户，并按工具支持的内容给出改法。由用户确认后，再走一轮剪辑。
3. **交付**：
   - 成片：给出下载链接与验收结果。实测音视频时长与剪辑时间线时长明显不一致时，明确指出来。
   - 剪映草稿：结果不带下载链接。告诉用户草稿已生成，请在 Web 端下载，下载时填写本机的剪映草稿目录。
