爆款短视频拆解复刻
拿一条已经跑出成绩的短视频,摸清它底下的结构,再把这套结构重新搭到用户自己的题材上——最后交付分镜图、口播和一条做好的竖屏短片。
适用范围与路线选择
这条路线是:一条参考视频、一份拆解、一份重写过的分镜表,以及一条复刻出来的视频。用户指着某一条具体的视频、想要属于自己的那一版时,走这条路线。
手上没有参考视频可拆时,别的工作流更合适。只有一个原创想法、没有对标,属于分镜脚本类工作流。一张商品图要变成带货视频,属于商品视频类工作流。文案已经写好、只差一个声音,属于配音类工作流。要动的是参考视频本身的画风、而不是把它重搭一遍,属于视频转风格类工作流。
输入与默认值
两个硬性输入:参考视频——以及复刻出来是讲什么的。
参考视频可以是好几种形态,每一种都能用。宿主 Agent 能直接打开的视频文件在画面上信息最全。关键时刻的截图、粘贴过来的逐字稿或标题文案、用户自己口述的每一段发生了什么,也都足够把拆解做完。拿到什么形态就用什么形态,并且只说一次、说清楚:哪些是你自己看到的,哪些来自用户的转述。绝不描述你没有看到的画面。
最常见的形态是一个链接,本包可以直接读:抖音、TikTok、小红薯、Instagram、YouTube、X 上这条帖子的标题文案、作者和公开数据,它的评论区,以及——只有 YouTube——整段字幕逐字稿。每一项都是一次付费查询、都可选,并且都在各自运行之前单独确认,见从链接读参考视频(references/reference-lookup.md)。查询永远看不到画面:构图、运镜和剪辑节奏,仍然只能来自文件、截图或用户。
题材是用户的产品、服务、选题或账号。对话里已经交代过的直接复用,不要再问一遍。
默认竖屏 9:16 画布,复刻片长以参考视频长度为目标,并受所选实时模型卡的时长上限约束;默认只出开场画面加上用户标记的分镜,口播音色按短视频内容匹配。这些默认值在确认时逐条说明,而不是拿去提问。
有两件事决定了后面的每一个判断。成片时长必须落在所选实时模型卡支持的范围内,而且只有开场画面会被动起来——其余标记的分镜以静帧交付,供用户自己剪。这两点都在确认时说明,而不是等付完钱才发现。
实时模型卡的上限约束的是口播,不只是视频。成片至少要和念出来的口播一样长,所以整段脚本还是免费文本的时候,就要按所选模型支持的时长来编。按每秒四到五个汉字、或者两到三个英文单词估算,在分镜表拿去批准之前,先把口播字段删到能念得完。
主张按来源分开。结构、节奏和呈现手法,是你从参考视频里读出来的。用户自己题材的规格、价格、效果、资质和活动,只能来自用户。这些缺失时就绕开写,绝不编一个看着像真的数字,因为最后要为它负责的是用户。
标准流程
第 1 到 5 步不花钱。唯一可能排在它们前面的付费调用是那次可选的参考查询,而且只有用户主动要求、并确认过它自己的价格之后才会发生。除此之外,用户看过并批准分镜表之前不产生任何费用。
在第 1 步之前,只有用户给了链接并要求读它时才做:查这条帖子,以及拆解确实需要时再查它的评论区或 YouTube 字幕,见从链接读参考视频(references/reference-lookup.md)。用户已经给了文件、截图或逐字稿时就跳过——从那些做出来的拆解一样是真拆解。
- 读参考视频。 把它切成钩子、中段分镜和转化引导,标出精确到秒的起止时间点。判定它属于哪一类脚本结构,并把它真正靠什么跑起来记下来——结构上的那一手、内容本身的分量、呈现上的手艺,三者分开记。按拆解参考视频(references/teardown.md)给六个维度打分。
- 把它重写到用户的题材上。 分镜数量、每个分镜承担的功能、整体的时间形状都保留;内容逐条全部换掉。每个分镜写成两个分开的字段——画面上是什么,嘴里说的是什么——因为合成一个字段的分镜没法拍。口播字段要对着所选实时模型卡的时长上限编,编不进就删。文案按重写到你的题材上(references/remake-plan.md)所说的方式过一遍。
- 先把
text_to_image、text_to_speech和image_to_video三张实时卡片用beatra.models.list读出来,再用beatra.voices.list选一个音色。视频卡片支持的时长会约束分镜表,所以要赶在分镜表签字之前读。 - 展示拆解和分镜表,并让分镜表获批。 后面整条流程都建在这份产物上,它改多少次都免费,而且是对着刚读到的时长限制批的。口播脚本必须在这次批准之前就能放进卡片支持的最长时长,因为后面没有任何一步能让一段过长的口播变短。
- 确认准备工作。 展示哪些分镜会出图、9:16 画布以及之后再改要付出什么代价、从
beatra.voices.list里选出的可用音色、当前预估费用,以及每一次计划中的付费调用各自稳定的请求 ID。 - 用
beatra.images.generate生成分镜图,一张一次调用。用beatra.speech.synthesize合成口播,然后读取实际返回的时长、大小和 MIME 类型。 - 展示真实素材。 宿主能访问时就把分镜图显示出来、把口播放出来,并报告真实时长。把任务返回的事实和宿主无法查看的媒体区分开。
- 确认视频。 把
duration算成不小于口播真实长度的最小整秒。这个值必须在所选实时模型卡支持的范围内。如果口播长度超过卡片上限,就停下来说明——把口播字段改短再合成一次,这是整条流程里最便宜的一次调用。绝不为了压到上限而调低时长;那会把用户付过钱的成片最后几个字切掉。这个值可用之后,带上已批准的开场画面、口播、显式选定的模型和这个时长,调用一次beatra.videos.animate。 - 用
beatra.tasks.get轮询这个任务直到终态,交付成片,并复核你确实能看到的部分。
显式选定视频模型,而不是交给 auto:这个能力下只有部分模型接受传入的口播,不接受的那些会把它丢掉。
画布由开场画面定下来,所以画布定晚了,就意味着每一件付费产物都要再做一遍。
需要确认的决策
付费前先确认:凡是要跑参考查询,都先在最前面为它单独确认一次;然后是分镜图和口播这一组、连同它们每一次计价的调用;最后是视频。视频这次确认要放在用户看过能访问的分镜图、听过口播之后,因为它是整条流程里最贵的一次调用。
同样需要确认、而不是自己拍板的还有:9:16 以外的画布、与参考视频不一致的分镜数量、用户没有核实过的题材主张,以及任何产物获批之后的改动。每改一个参数都是新的付费工作,需要新的请求标识和重新批准。
用户要的是把参考视频本身的画面、音乐或出镜人复制出来、而不是复用它的结构时,说明这条路线交付的是什么——一条建在同一套结构上的原创短片——然后接着往下走。
执行方式
每一次远程 Beatra 操作都只通过随包的 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' '{"language":"zh-CN"}' | python3 scripts/mcp_client.py call beatra.voices.list
printf '%s' '{"query":"video by url","platform":"tiktok","capability_family":"content"}' | python3 scripts/mcp_client.py call beatra.social.tools.search
不要配置或调用宿主 Beatra Connector,也不要使用 REST/OpenAPI 作为回退。每一个逻辑上的付费请求给一个稳定且不透明的 client_request_id,并且只提交一次。
交付与复核
交付拆解、已批准的分镜表、作为静帧交付的每一张分镜图、口播,以及返回的视频产物。每一个生成类任务,都交付它的任务 ID、返回的 artifact 链接、解析出的模型、返回的尺寸与时长,以及 billing.net_charged_credits。参考查询的报告方式不同——返回的载荷、任务 ID、终态和 billing.net_charged_credits,没有模型、尺寸或时长可报——见从链接读参考视频(references/reference-lookup.md)。只报告任务确实返回的事实。
宿主能查看或播放返回的媒体时,检查每一张分镜图是否对得上它所属的那个分镜、口播是否存在并且结尾完整、成片是否符合画布。哪些媒体细节无法查看就直接说明,而不是从任务元数据里推断出来。
故障恢复
任务 ID 一拿到就立即记下,并且只轮询这个任务。queued 和 running 表示继续等待。创建请求的响应丢失时,只用同一个标识重放逐字节相同的冻结载荷;任务 ID 丢失时,按对应能力把任务列出来,先把候选逐个对照自己的台账,再考虑重试——参考查询除外,它没有可以据以列举任务的能力,只能靠记录下来的 operation_key、参数和 schema_hash 去比对。重做某一张分镜图时,其余产物原样复用。insufficient_balance 表示没有扣费,充值之后可以用完全相同的请求重新提交。
按任务查阅参考
- 从链接读参考视频、每次查询要花多少、查到的结果如何标注来源:从链接读参考视频(references/reference-lookup.md)
- 切分参考视频、判定脚本结构、归因表现、给六个维度打分:拆解参考视频(references/teardown.md)
- 把结构搬到新题材上、写成画面与口播分开的字段、把文案过一遍:重写到你的题材上(references/remake-plan.md)
- 确切载荷、每次确认冻结了什么、轮询、重做某一步、故障恢复与取消:复刻工作流(references/workflow.md)
- 首次安装或授权过期:安装与认证(references/installation-and-auth.md)
- 非计费的包注册:安装注册(references/installation-registration.md)
- 任务轮询、artifact 与结果字段:任务与结果(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 路径下载,在替换之前校验发现数据、压缩包、清单以及每个文件的大小与校验和,并且只替换本包拥有的文件。它会拒绝重定向、降级、包与渠道与语言环境与版本对不上的数据、意料之外的地址、不安全的压缩包,以及落在归属目录之外的任何文件。
更新的检查、下载、校验、替换和回滚失败时都不会中断:当前安装仍然可用,原本请求的命令会继续执行。更新失败绝不构成重试付费生成的理由。这个设置会在本安装后续的命令中持续生效。
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)。
微信扫一扫