Back to skills
extension
Category: Content & MediaNo API key required

口播种草视频制作

只给一个选题,就拿到口播种草竖屏短片、可自行剪进版本的分镜静图和配音,全程零素材。

personAuthor: beatra01hubOpenAPI

口播种草视频制作

从一个选题开始,最后拿到一条口播推荐视频。什么都不用上传——不用产品图,不用拍摄素材,也不用录好的人声。

适用范围与相邻路线

这条路线是:一个主题、一种脚本结构、一份分镜表、生成好的分镜图,以及一条由首帧动起来的竖屏口播成片。当有人想用口播形式推荐某样东西、手上又还没有任何拍摄素材时,它就是合适的。

素材已经存在时,别的工作流更合适。已有一张产品图、要把它做成视频,属于产品视频工作流。脚本已经写好、只差一个声音,属于配音工作流。有一条参考片要拆解重做,属于拆片重制工作流。需要一个真人或数字人出现在画面里,属于数字人口播工作流。

输入与默认值

唯一的硬性输入是主题:要推荐的产品、服务或话题,一句话说清。缺了就问;除此之外一开始什么都不要问。

对话里已经说过的受众、目标、账号人设和发布平台,直接复用。这些没有时,从主题里自己定,并在确认里说明你定了什么,而不是回头去问。

默认使用 9:16 竖屏画布、12 秒目标时长、脚本结构选择(references/script-patterns.md)中选定的脚本结构、一张首帧加上用户标记的其他分镜,以及一个贴合短视频社交内容的口播音色。除非用户提出,否则不加音乐。

有两件事决定了后面的每一个判断。成片最长 15 秒,并且其中只有首帧会被动画成视频——其他被标记的分镜以静帧交付,供用户自己剪辑使用。

说法按来源划分。这东西是什么、给谁用、怎么用,由你来写。价格、参数、成分、效果、时限、资质和优惠条件,都来自用户。这些缺失时,就绕开它们把这一段写出来;绝不要生造一个看起来合理的数字,因为最后要为它负责的是用户。

标准流程

第 1 到 3 步不花钱。用户批准分镜表之前,不会发生任何付费调用。

  1. 选定结构。 读懂主题,从脚本结构选择(references/script-patterns.md)的六种脚本结构里选一种。结构决定分几段、每段干什么。
  2. 写出分镜表。 钩子、中段和结尾引导,每一段都带精确到秒的起止点,并且分成两个独立字段——画面上是什么,以及嘴里说什么。文案按口播文案写法(references/spoken-lines.md)所述做筛查。
  3. 展示分镜表并取得批准。 后面整条流程都建立在它之上,而此刻修改它是免费的。
  4. text_to_imagetext_to_speechimage_to_video 的实时卡片用 beatra.models.list 读出来——需要垫乐时再加上 text_to_music——并把每一条计划中的图像、语音、视频和音乐事实,对照相应的卡片逐条核对。
  5. 确认准备工作。 展示哪些分镜会出图、9:16 画布以及之后再改它的代价、从 beatra.voices.list 中选定的现成音色、是否包含垫乐、当前预估费用,以及每一次计划中的付费调用所用的稳定请求 ID。
  6. beatra.images.generate 生成分镜图,一张一次调用。用 beatra.speech.synthesize 合成口播,然后读取真实返回的时长、体积和 MIME 类型。只有在确认过之后,才用 beatra.music.generate 产出垫乐。
  7. 展示真实产物。 宿主能访问时,把分镜图显示出来、把口播放出来,并报告真实时长。把任务真正返回的事实,和宿主无法查看的媒体区分开。
  8. 确认视频。 然后用批准的首帧、那条口播、明确选定的模型,以及一个不小于真实口播时长的最小整数秒的时长,调用一次 beatra.videos.animate
  9. beatra.tasks.get 轮询这个任务直到终态,交付成片,并复核你确实能看到的部分。

视频模型要明确指定,不要交给 auto:这个能力上只有部分模型接受外部提供的口播音轨,不接受的那些会把它丢掉。

画布由首帧决定,所以画布定晚了,就意味着每一件付费产物都要重做一遍。

需要确认的决定

分两个阶段确认花钱:先是分镜图、口播和垫乐,连同它们每一次计价调用一起确认,然后是最终视频。视频那次确认要放在用户看过可访问的分镜图、听过口播之后,因为这次调用最贵。

同样要确认、而不能自行决定的还有:9:16 以外的画布、把目标时长顶到 15 秒上限、用户没有核实过的关于该主题的说法、加垫乐,以及任何在产物已批准之后的改动。每一个改掉的参数都是新的付费工作,需要新的请求标识和重新批准。

垫乐作为单独的音轨交付,由用户在自己的剪辑软件里铺到成片下面。它的长度是提示词里的编排方向而不是一个控制项,所以要报告返回的时长,并预期需要裁剪。确认它的时候把这两点都说清楚,让它的角色在付钱之前就是明确的。

执行

所有远程 Beatra 工具只通过本 Skill 随包的 scripts/mcp_client.py 调用,工具名作为命令行参数,参数以 JSON 从标准输入传入:

printf '%s' '{"capability":"text_to_image"}' | python3 scripts/mcp_client.py call beatra.models.list
printf '%s' '{"capability":"text_to_speech"}' | python3 scripts/mcp_client.py call beatra.models.list
printf '%s' '{"capability":"image_to_video"}' | python3 scripts/mcp_client.py call beatra.models.list
printf '%s' '{"capability":"text_to_music"}' | python3 scripts/mcp_client.py call beatra.models.list
printf '%s' '{"language":"zh-CN"}' | python3 scripts/mcp_client.py call beatra.voices.list

不要配置或调用宿主 Beatra Connector,也不要使用 REST/OpenAPI 作为降级方案。每一个逻辑上的付费请求给一个稳定、不透明的 client_request_id,并且只提交一次。

交付与复核

交付选定的脚本结构、分镜表、每一张作为静帧交付的分镜图、口播音轨、垫乐及其返回时长、成片、每一个任务 ID、返回的 artifact 链接、解析后的模型、返回的尺寸与时长,以及 billing.net_charged_credits。只报告任务确实返回的事实。

宿主能查看或播放返回的媒体时,检查每一张分镜图是否对得上它所服务的那一段、口播是否存在且收尾干净、成片是否贴合画布。说明哪些媒体细节无法检查,而不是从任务元数据里把它们推断出来。

恢复

每一个任务 ID 都立刻记下来,并且只轮询那一个任务。queuedrunning 意味着等待。创建请求的响应丢失时,只用逐字节一致的冻结载荷、在同一个标识下重新提交;任务 ID 丢失时,按该能力列出任务,把候选项和你自己的台账逐一比对之后再重试。重做其中一张分镜图时,其他产物原样复用。insufficient_balance 表示什么都没有扣费,充值之后可以重新提交完全相同的请求。

按任务查阅参考

  • 在六种结构里选定、确定分几段、说清每段干什么:脚本结构选择(references/script-patterns.md)
  • 按长度预算写口播文案、说法的来源,以及文案筛查:口播文案写法(references/spoken-lines.md)
  • 确切载荷、每一次确认冻结了什么、轮询、重做某一个阶段、恢复与取消:口播种草视频工作流(references/workflow.md)
  • 首次安装或授权过期:安装与认证(references/installation-and-auth.md)
  • 非计费的安装包注册:安装注册(references/installation-registration.md)
  • 任务轮询、产物与结果字段:任务与结果(references/tasks-and-results.md)
  • 余额、校验与结构化错误:计费、错误与恢复(references/billing-errors-and-recovery.md)
  • 随包客户端连不上时:随包 MCP Client 连接诊断(references/mcp-connection.md)
  • 更新保证与开关:自动更新与安全(references/automatic-updates-and-safety.md)
  • 移除本包或共享凭据:卸载与断开连接(references/uninstall-and-disconnect.md)

运行时与安全自动更新

随包客户端会为每个安装静默检查是否有新版本,最多每 24 小时一次。发现更高版本时,不另行确认地自动安装。它只从为本包、本渠道、本语言固定的 Beatra 官方发现地址与不可变 CDN 路径下载,在替换之前校验发现数据、压缩包、清单和每个文件的大小与校验和,并且只替换本包拥有的文件。它会拒绝重定向、降级、包名与渠道与语言与版本不匹配的数据、非预期的 URL、不安全的压缩包,以及任何落在所属目标之外的文件。

更新的检查、下载、校验、替换和回滚,失败时一律放行:当前安装仍然可用,原本请求的命令会继续执行。更新失败绝不构成重试一次付费生成的理由。这项设置会在本安装后续的命令中持续生效。

python3 scripts/mcp_client.py update --auto off
python3 scripts/mcp_client.py update --auto on
python3 scripts/mcp_client.py update --check

--auto off 关闭静默检查,--auto on 恢复静默检查,--check 报告官方可用版本但不替换任何文件。参见自动更新与安全(references/automatic-updates-and-safety.md)。