Loading...
Loading...
Compare original and translation side by side
需要 edit-list.json(账本)、transcript.json(逐词稿)
产出 subtitles.jsonRequires edit-list.json (edit list), transcript.json (word-by-word transcript)
Produces subtitles.json剪口播 说了算「留哪些话、在什么时候」 ← 时间的唯一真相
字幕 说了算「屏幕上显示什么字」 ← 显示的唯一真相Voiceover editing decides "which lines to keep and when" ← The only source of truth for timings
Subtitles decides "what text appears on screen" ← The only source of truth for display<插件根>runtime.kind=desktop-managedlaunchd/windows-task<plugin root>runtime.kind=desktop-managedlaunchd/windows-tasknode "<插件根>/scripts/ensure-running.cjs" --json
node "<插件根>/scripts/videocut-cli.cjs" inspect "<项目目录>" --json| 断言 | 不成立时 |
|---|---|
| 说清楚缺账本,让用户先喊剪口播。不要自己去剪。 |
| 项目没准备好,停止。不要自己造一份。 |
source_cut.mp4node "<plugin root>/scripts/ensure-running.cjs" --json
node "<plugin root>/scripts/videocut-cli.cjs" inspect "<project directory>" --json| Assertion | Action if not met |
|---|---|
| Clearly inform the user that the edit list is missing, and ask them to start voiceover editing first. Do not perform editing yourself. |
| The project is not ready; stop. Do not create a transcript yourself. |
source_cut.mp4词在源片的第几秒 转录里就有
哪几段留着 账本里就有
词在成片的第几秒 两者一算就出来transcript retranscribeundefinedWord's timing in source video Available in transcript
Retained segments Available in edit list
Word's timing in final video Calculated from the above twotranscript retranscribeundefined
```text
词典 永远这么写 不看上下文,直接改,列出改了哪几处
文稿 上下文对得上才这么写 逐处要证据,对不上的报「不敢定」,不猜references/ai-term-dictionary.mdtranscript aligncorrections[{wordId, text}]node "<插件根>/scripts/videocut-cli.cjs" transcript correct "<项目目录>" --file "<修正文件>" --jsonsubtitles.updatedneedsAttention
```text
Dictionary Always uses fixed spellings Ignores context, applies changes directly, and lists all modifications
Script Only applies spellings when context matches Requires evidence for each change; reports "unable to confirm" for mismatches, does not guessreferences/ai-term-dictionary.mdtranscript aligncorrections[{wordId, text}]node "<plugin root>/scripts/videocut-cli.cjs" transcript correct "<project directory>" --file "<correction file>" --jsonsubtitles.updatedneedsAttentionnode "<插件根>/scripts/videocut-cli.cjs" subtitle build "<项目目录>" --json① 这里删掉过话 删掉的两边在时间轴上挨着,意思上毫无关系。
删掉的是「静音」不算 —— 把句子中间的停顿剪掉,不能把句子劈开。
② 任何标点 火山给的,句号和逗号都算 —— **和剪口播分段是同一个粒度**,
两边断在同一处。标点比任何时间证据都强:说话人可以两句连着
说不喘气,也可以在一句中间停顿。
③ 段落边界 + 停顿 **只在这个词没有标点时才用**。它是「没标点时靠段落猜句子结束了」,
有标点就该由②和逗号那条管 —— 它们会考虑屏够不够长,③ 不会。
(在带标点的边界上也触发③,真实项目从 40 屏变 43 屏,切出更多碎屏)
④ 观众听到长停顿 句子内部要断,得有更长的静音才够格。stale 被剪辑改动的屏 —— 精确到第几屏、丢了哪几个字
tooFast 字太多、时间不够读
transcriptMoved 转录已经不是当初那一份了node "<plugin root>/scripts/videocut-cli.cjs" subtitle build "<project directory>" --json① Removed content The remaining segments are adjacent on the timeline but semantically unrelated.
Removing "silence" does not count — cutting a pause in the middle of a sentence should not split the sentence.
② Any punctuation Provided by Volcano, includes periods and commas — **same granularity as voiceover editing segmentation**,
breaks at the same positions. Punctuation takes priority over all timing evidence: speakers may speak two sentences without pausing, or pause in the middle of a sentence.
③ Paragraph boundaries + pauses **Only used if the word has no punctuation**. This is for "guessing sentence endings by paragraphs when there's no punctuation";
if there is punctuation, rules ② and comma-based segmentation apply — they consider screen length, while rule ③ does not.
(Triggering rule ③ on punctuation boundaries increased screen count from 40 to 43 in real projects, creating more fragmented screens)
④ Long pauses heard by viewers To split within a sentence, a longer silence is required.stale Screens affected by editing — specifies exact screen numbers and lost words
tooFast Too many words, insufficient time to read
transcriptMoved The transcript has been modified since last use--replace--replace用户想改几个字 不要 build。让他在 Studio 里直接改,或者告诉你改哪几屏。
用户要推倒重来 确认过了再加 --replace。--replace--replaceUser wants to modify a few words Do not run build. Ask them to edit directly in Studio, or specify which screens to modify.
User wants to start over Confirm before adding --replace.node "<插件根>/scripts/videocut-cli.cjs" open "<项目目录>" --jsonnode "<plugin root>/scripts/videocut-cli.cjs" open "<project directory>" --jsonsubtitles.jsonsubtitles.jsonsubtitles.jsonsubtitles.jsonsubtitles_exist--replacerevision_conflict| 正确写法 | 常见误识别 |transcript correctruntime_unhealthysubtitles_exist--replacerevision_conflict| Correct spelling | Common misrecognitions |transcript correctruntime_unhealthy