Skip to content
cccskills
FreePublished on GitHub

production-scripts

有命令行环境、旁白按段配、画面按段上时间线的片子(讲解、解说混剪、旁白片、歌词视频……)要跑脚本时用:配音、对齐字时间、把场景代码打成代码包、按段摆上时间线并处理变长变短的波纹、按稿子建字幕、剪实拍与水印叠上去或垫在底下、量画面占比。脚本是一条省事的路,不规定片子的形态;形态和它不合时用 baocut CLI 自己写。

只是加一段动效图形或配一句旁白时不用。

The English summary is being prepared. Showing the original description.

See how to install

Files included (15)

  • SKILL.md8.9 KB
  • .baocut-meta.json2.8 KB
  • references/pipeline.md21.3 KB
  • scripts/align.mjs9.5 KB
  • scripts/assemble.mjs19.7 KB
  • scripts/build.mjs10.3 KB
  • scripts/captions.mjs14.5 KB
  • scripts/clips.example.json2.6 KB
  • scripts/coverage.mjs10.0 KB
  • scripts/explainer.example.json1.7 KB
  • scripts/gaps.mjs9.1 KB
  • scripts/lib.mjs15.6 KB
  • scripts/overlay.mjs29.0 KB
  • scripts/preview.mjs4.6 KB
  • scripts/voice.mjs7.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

制作脚本

一条旁白片做到后半程,重复的活都长一个样:每段旁白合成一次、转写拿字时间、把这一段的画面打成代码包、按整帧排到时间线上、按稿子建字幕、把实拍片段剪好放上去、改一段时把后面的东西一起挪。本 skill 的 scripts/ 把这些写成了脚本,只调 baocut CLI(配音、转写、导入、修改都走它),不碰 API Key;内容相关的设定都在一份配置里,有命令行环境时拷进工程就能用。

它是工具,不是形态。 脚本假定的只有一件事:旁白按段配,每段配一个代码包,首尾相接排在一条视觉轨与一条音频轨上;代码包可以是整段的画面(动画打底,实拍叠在上面),也可以是透明的叠层(实拍铺在下面一条轨上当底,包里只画卡片、标注)。这期片子的底是什么、讲法是什么,由组合入口(用 skills_read 读 video-production)与相应的手艺页定;定下的形态和脚本不合(整片一条旁白不分段、画面是一条长录屏、你有更顺手的做法)时,照 video-production 用 BaoCut 的工具或 CLI 自己做,不为了用脚本把片子做成脚本的形状。没有命令行环境,或者段落、实拍片段与卡片都定好了只差摆上时间线时,也不用脚本:edits_assemble 按一份计划一次放好,重跑只动变了的;计划的格式用 skills_read 读 baocut-catalog-editing「一次放好制作计划」。

目录:1 计划文件 2 按顺序跑 3 改一段 4 量一遍 5 自检

1. 计划文件

脚本读的东西合起来就是这部片子的制作计划,先把它写全,再跑脚本:

文件写什么
explainer.json(也认 production.json)视频 id、CLI 命令、语言、帧率与画幅、段落顺序、旁白稿的位置、配音与转写的模型、打包规则、轨道与名字、实拍与水印的设定。字段表用 skills_read 读本 skill 的 references/pipeline.md 第 2 节
旁白稿(Markdown)## <段落 id> 标题 开一段,段内每个非空行是一句旁白,一句一个画面节拍;@、括号、>、<!-- 开头的行是备注(画面意图写在这里,不配音)
scenes/<id>.js + shared/每段的场景代码与共用的引擎、字体、图片;场景从 window.TIMING 读这一段的时长与逐句、逐字时间
clips.json(可选)实拍片段与照片:来源文件与原片起止,放在哪一段的哪一句、从哪几个字起(cue),保留原声、旁白留白(gap)、背靠背(follow)、双语字幕、单侧转场、裁边与取景(crop、focus)、放法、画中画
watermark(配置里,可选)水印图片、每次出现的位置与时刻

计划定下后,剩下的就是把它摆上时间线:assemble.mjs 摆旁白与代码包,captions.mjs 建字幕,overlay.mjs 摆实拍、来源标签、原声字幕与水印(都写在时间线上,不剪文件、不烧字)。改计划只重做受影响的段(第 3 节)。摆的这一步也可以交给 Runtime:把段落(代码包、旁白、对齐结果)、实拍片段、卡片与水印改写成 edits_assemble 的计划,一次放好,重跑只动变了的;来源标签与原声的双语字幕仍由 overlay.mjs 放。

2. 按顺序跑

  1. 把本 skill 的 scripts/ 整个拷进工程(例如 <工程>/tools/):能直接读到文件时拷目录,读不到时用 skills_read 读本 skill 的 scripts/ 下每个文件原样写进去。脚本都 import 同目录的 lib.mjs,要拷全;*.example.json 是配置样例。依赖 Node 18 以上与 baocut CLI;切段转写、留白压停顿、量原声响度要本机有 ffmpeg。
  2. 照 scripts/explainer.example.json 在工程根目录写配置(脚本从当前目录往上找它,也可以 --config <文件>),有实拍时照 scripts/clips.example.json 写 clips.json。
  3. 按顺序跑,每个脚本都能重跑,做完、没变化的段跳过:
步骤命令做什么
配音voice.mjs <id …> 或 --missing;--check 只量不配一段一次合成,记稿子原文,--missing 只配没配过或稿子改过的段。每段量中位音高,和其他段差 5% 以上就重配(--takes,缺省 3 次)留最接近的;配完报出全片离群的段
对齐align.mjs <id …>转写后用编辑距离把字时间对到稿子原文,打印语速、停顿与读错
留白与压停顿gaps.mjs [id …]有 gap 片段或给了 voice.maxPause 时:在旁白里插静音给原声让位、把过长的句间停顿压短
打包build.mjs [id …]打成代码包,时长 = 对齐出的时长 + hold,对到整帧
排时间线assemble.mjs --dry,再 assemble.mjs --live--dry 不连 Runtime 只打印;--live 把代码包放上去、先不烘焙,编辑器的实时层现画(footage.layer 为 under 时眼下画不出来,见 pipeline.md 第 3 节)
字幕captions.mjs --dry,再 captions.mjs用稿子原文加对齐时间建字幕层,专名照稿子上屏
实拍与水印overlay.mjs --dry,再 --place每个原片链接导入一次,每个镜头一个视频片段(原片区间、裁剪、取景、原声音量与淡变都是片段字段,响度按实测换成音量),转场是时间线转场;来源标签是标签轨上的文字片段,原声字幕是单独样式的双语字幕层(带说话人);footage.layer 为 under 时实拍轨挪到代码包轨下面当底
给用户看baocut web review --video <videoId>把链接给用户,请用户在系统浏览器或 BaoCut 桌面版的审片视图里看(Claude 的内置浏览器会拦实时层,那里是黑的);改了哪段照第 3 节重做,再 assemble.mjs --live
定稿烘焙assemble.mjs(不带 --live)用户说可以之后:live 的段原地换成烘焙过的包,看 bake.renderer;之后再导出

每一步的参数、配置字段、烘焙走指令还是截图、WebGL 的段、产物被清掉怎么办,以及还没建视频时的备选预览页(preview.mjs):用 skills_read 读本 skill 的 references/pipeline.md。

3. 改一段

改了稿子或画面只重做那几段:改旁白是 voice.mjs <id> → align.mjs <id> --fresh →(有留白时)gaps.mjs <id> → build.mjs <id>;只改画面是 build.mjs <id>;插一段是加进 order 与稿子后照常做这一段。然后 assemble.mjs --dry 看它打算怎么挪:帧数变了带 replace.ripple 换包,后面各轨一起挪;插入的段先 insertRange 腾位置;旁白换了先删旧的再放新的;之后 captions.mjs 重建变过的段的字幕,overlay.mjs --check 核对实拍位置。细则在 references/pipeline.md 第 4 节。

4. 量一遍

node tools/coverage.mjs(在工程里,自动读配置判断哪些代码包是透明叠层;也可以 node coverage.mjs <videoId> 不带配置,透明包用 --alpha 告诉它;--from <videos inspect --limit 1000 --json 存下的文件> 不连 Runtime;--json 出机器可读结果)。它报每一帧最上面铺满的是实拍、代码画面还是空的各占多少、画中画占多少,镜头数与中位长度、最长一个镜头、最长一段没有实拍,实拍片段数、带原声的几段、同一素材用了几次,再按分钟列一条实拍占比。它只报数不判对错:对不对看这期定的形态要的是什么(实拍打底的片子通常实拍八九成、中位镜头 3–6 秒;代码画面打底的讲解片代码画面八成以上是设计使然)。

5. 自检

  • 定稿烘焙时第一段导入后先看 bake.renderer:该走指令的包回退成 browser-pixels 时按 video-production 代码场景细则第 2.1 节改好再烘其余各段;烘全片前先算时间与磁盘。
  • 排完用 videos inspect 核对各段首尾相接、总长等于各段帧数之和;assemble.mjs --verify 补后台烘焙的结果并核对。
  • 自己调 CLI 读 JSON 时只读标准输出,任务进度在标准错误。
  • 试烘焙、试导出用的临时视频,交付前列给用户,删除要用户同意。
  • 报告里写明跑了哪些脚本、哪些段重做过、量出来的数字;没听过的旁白接缝写「没听过」。

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

baocut

Free

用 BaoCut 处理视频与音频:转录、字幕、翻译、配音、剪口播、切短视频、分章、总结写稿、从链接下载、压缩转码、导出成片,或从零做一条成片。有媒体文件、视频链接、字幕文件或 BaoCut 视频时用;只翻译纯文本、与视频无关的写作或作图、别的剪辑器与 FFmpeg 的用法、BaoCut 源码开发不用。

The English summary is being prepared. Showing the original description.

JimLiu/baocut1.2KUpdated Oct 22, 2026

baocut

Free

测试用的说明书:用 BaoCut 转录、翻译、剪辑与导出视频。

The English summary is being prepared. Showing the original description.

JimLiu/baocut1.2KUpdated Oct 22, 2026

Release BaoCut Electron desktop apps through GitHub Actions tags by default; use local/manual packaging only when explicitly requested. Also handles App version bumps, release continuation and portable signing backups; excludes craft skills and legacy standalone CLI releases.

The English summary is being prepared. Showing the original description.

JimLiu/baocut1.2KUpdated Oct 22, 2026

旁白、视频切片与文字动画混搭的成片:拿一条新闻、一件事、一段八卦、一个产品或人物的故事,从网上与用户的视频库里搜素材、切当事人的原声,配旁白剪成一条画面一直在动的片子,推文、引语、日期、数字做成压在画面上的卡片。题材不限;别的成片里要加一段这样的切片也用它。整段画面由代码画出来的讲解片走 explainer-video,剪已有的口播走 talking-head-cut。

The English summary is being prepared. Showing the original description.

JimLiu/baocut1.2KUpdated Oct 22, 2026

用户要给视频做封面、要封面大字,或要标题和封面一起出时用:读文稿提炼卖点,给几组标题与封面文案,用户挑定后按视频画幅生成封面图,放进这个视频的候选素材。每句都由视频兑现。只要标题或简介、不要封面时用起标题与写简介。需要视频的转写。

The English summary is being prepared. Showing the original description.

JimLiu/baocut1.2KUpdated Oct 22, 2026

用户问「我哪一期讲过 X」「这几部视频里谁说过 Y」「X 在我的视频里是怎么讲的」「有哪些讲 X 的视频」这类要在多部视频里找答案的问题时用:按意思检索、按视频去重、按当前版本重新定位,只凭找回来的原话回答,每条论断注明视频与时间,覆盖不全时说明。不用于总结或改写一部视频(那是总结、博客),也不改视频。

The English summary is being prepared. Showing the original description.

JimLiu/baocut1.2KUpdated Oct 22, 2026

See all skills by JimLiu

Report a problem with this skill