热点选题
热点只有还在动的时候才值钱。这条路线一次走完,从热点到一条可以直接发布的内容:角度、选定其中一个、封面、正文和话题标签——需要的话,再加一条短视频。
你会拿到什么
默认的只做封面,交付四样:
- 封面文案
- 按文案渲染出来的封面图
- 正文
- 话题标签
这本身就已经是一条可以直接发布的内容。加上短视频,再多三样:
- 逐段分镜方案,画面上的文字和口播的台词分开写
- 每一段分镜画面各一张静态图,通常三张
- 一条口播竖屏成片,由开场画面动起来
除非你要别的画幅,否则一律 9:16 竖屏。短视频默认 12 秒,最长 15 秒,成片时长以口播为准。图片和视频的实际格式由渲染结果决定,交付时会把格式一并写明。
有哪几种跑法
两种跑法,外加一个可以放在两者之前的可选步骤。
- 只做封面。 默认。你把热点带来,拿回封面文案与封面图、正文和话题标签。
- 封面加短视频。 上面这些全都有,再加分镜方案、分镜静态图和口播竖屏成片。角度定下来时提一次。
两种跑法都可以先做一次热点查询——可选,单独计价——适合你想让它替你找话题,或者把你报的话题拿去跟大家实际在发的内容对一对。
适用范围与相邻路线
这条路线是:一个热点、一组角度、选定的那一个,以及一条做完的内容。它适用于手上已经有热点、有一个事件节点或有一个日历节点,并且需要尽快发出去的情况。
手上没有热点时,别的工作流更合适。常青的产品种草,归种草视频工作流;要复刻的参考片,归拆片重做工作流;给已有内容配封面,归封面工作流。
输入与默认值
两个硬性输入:热点,以及用来发布的账号。
热点由用户给出——他点名的一个、粘过来的一份清单、一张热榜截图,或者一个对他有意义的日历日期。任何一种都够用,而且都不花钱。
用户想看看现在什么在热,或者想把自己报的话题拿去对一对大家实际在发什么时,它可以读抖音、TikTok 与 X 的公开热榜,也可以按用户报出的话题去搜抖音、TikTok、X 和小红书上正在发的内容。小红书没有可以浏览的榜——小红书的查询必须先有一个话题。每一次查询都是付费的、可选的,并且在其他任何事情之前单独确认,见查一查什么在热(references/trend-lookup.md)。Instagram、YouTube 和视频号则完全没有热榜;要发到那几个平台的内容,热点仍然来自用户或上面那几个平台,并且要如实说明。没有查询时,就基于用户带来的东西工作,而不是去描述一个你并没有见过的热点。
账号指的是发布方的行业、品牌或人设。没有它,角度就无处可接,产出只会是泛泛的热点评论。
对话里已经说过的平台、受众和投放目标,直接复用。默认 9:16 竖屏画幅、给出三个角度、产出一条内容,并按只做封面的方式运行。角度定下来时提一次短视频;用户要短视频时,默认 12 秒,口播音色按短视频社交内容匹配。成片时长必须落在所选实时模型卡支持的范围内,并且只有开场画面会被动画成片,其余分镜画面按静态图交付。每一个默认值都在确认里说明,而不是拿去问用户。
速度是这里的约束,它决定了其他一切。第一轮回复就给出角度,而不是先问一轮问题。
标准流程
第 1 到 3 步不花钱。唯一可能排在它们前面的付费调用是那次可选的热点查询,而且只有用户主动要求、并确认过它自己的价格之后才会发生。除此之外,用户选定角度并批准方案之前,不产生任何费用。
**在第 1 步之前,只有用户主动要求时才做:**读一份热榜,或者搜一搜大家关于这个话题正在发什么,见查一查什么在热(references/trend-lookup.md)。用户自己带来了热点时就跳过——那才是这条路线通常的样子,角度一样好。
- 读懂热点,找出角度。 给出三个把热点和账号连起来的角度,每个都把连接讲清楚,见找到切入角度(references/angle-finding.md)。带风险的角度必须标出来,并说明风险是什么。
- 用户选定其中一个。 或者要求换一批——换是免费的。
- 搭出内容方案并取得批准。 封面文案、正文和话题标签——包含短视频时,还有它的分镜,画面上出现的文字和口播出来的话分开写,见搭出这条内容(references/post-plan.md)。
- 读取实时的
text_to_image卡片,用beatra.models.list——并且只有在包含短视频时,才另外读取text_to_speech和image_to_video卡片,以及从beatra.voices.list里选一个音色。 - 确认生产,然后等待。 按热点内容工作流(references/workflow.md)搭出生产确认卡——里面要有封面、当前跑的是哪一种、9:16 画幅以及之后再改要付出的代价、包含短视频时选定的那个可用音色、当前的费用预估,以及每一次计划中的付费调用各自对应的一个稳定请求 ID——没读过那一节,这张卡就不算完整。并且说明:就此打住也可以,角度和方案都还是他们的。用户确认这张卡之前,不要调用任何付费工具。
- 用
beatra.images.generate渲染封面。包含短视频时,用同样的方式生成它的分镜画面,并用beatra.speech.synthesize合成口播,然后读取实际返回的时长、尺寸和 MIME 类型。 - 把真实素材展示出来——只要宿主能访问到,并报告真实时长。
- 视频单独确认一次——只有包含短视频时才有这一步。按热点内容工作流(references/workflow.md)搭出视频确认卡;暂定的实时预估价和充值该怎么说,都写在那一节;没读过那一节,这张卡就不算完整。在这之前的任何东西都不构成对视频的授权:方案不算,一句「做成片吧」不算,已经批准过的封面、分镜画面和口播也不算。在用户确认已充值、或确认余额足够这次预估之前,不要创建视频的
client_request_id,也不要提交。确认之后,用批准过的开场画面、这段口播、一个明确选定的模型,以及以音频为准的时长,调用一次beatra.videos.animate。 - 用
beatra.tasks.get轮询每个任务直到终态,把所有东西一起交付,并复核你真正能看到的部分。
只做封面的运行方式,跳过第 8 步以及第 4 到 7 步里与短视频有关的工作,只有一个批准关口;它仍然要在第 9 步轮询并交付。展示费用预估时,说明当前跑的是哪一种。
视频模型要明确选定,而不是留给 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' '{"query":"hot search","platform":"douyin","capability_family":"trends"}' | 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/trend-lookup.md)。只报告任务真正返回的事实。
封面文案是生成出来的画面内容。把渲染出来的文字对照批准过的文案读一遍,没有清晰渲染出来时就直接说明,而不是把一张没检查过的封面说成是对的。哪些媒体细节无法检查,也要说明。
恢复
每一个任务 ID 立刻记录下来,并且只轮询那一个任务。queued 和 running 意味着继续等待。创建请求的响应丢失时,只用同一个标识重新提交逐字节一致的冻结载荷;任务 ID 丢失时,按该能力列出任务,把候选和自己的台账逐一比对之后,再做任何重试。热点查询列在 social_data_fetch 这个能力下;由于它不返回解析后的模型和尺寸,比对候选时要用记录下来的 operation_key、参数和 schema_hash。重做封面时,短视频产物原样复用。遇到 insufficient_balance 时,原样转达返回的消息,把余额错误里的充值地址保持逐字不变,并且只有在用户说自己已经充值之后,才用同一个冻结的 client_request_id 重试。
账户余额
用户问还剩多少积分,或某次实时估价够不够时,调用 beatra.wallet.get。问已经扣了多少
时,调用 beatra.wallet.ledger。两者都是只读的。不要臆造查余额或充值的工具。也不要把
wallet.get 变成每次付费提交前的必需步骤。
模型卡返回里带 top_up 块时,按卡片给出的档位和顺序原样转述。不要给档位排高低,不要
贬低其中任何一档,也不要替用户挑。选哪一档是用户自己的事,钱包页会把整份清单摆在他
面前。任何时候都不要凭记忆报档位。
按任务查阅参考
分三层。首次运行读第一层;动手做内容、以及每一次付费确认之前读第二层;出了问题或要恢复时读第三层。
入门:首次使用
- 首次运行,或还不清楚几道付费确认怎么衔接时,读完整跑一遍(references/worked-example.md)——一次真实的完整运行,附上它实际产出的封面文案、正文和话题标签;短视频那部分是「如果当时加了会怎样」的示范,用来在掏钱之前看清形状
- 首次安装或授权过期:安装与认证(references/installation-and-auth.md)
- 首次使用时的注册,从不计费:安装注册(references/installation-registration.md)
进阶:搭出这条内容
- 把热点变成角度、判断契合度,以及风险研判:找到切入角度(references/angle-finding.md)
- 读热榜、搜话题、每次查询要花多少,以及查到的结果如何标注来源:查一查什么在热(references/trend-lookup.md)
- 封面文案、正文、话题标签、发布前的免费合规筛查,以及短视频的分镜:搭出这条内容(references/post-plan.md)
- 确切载荷、每次确认冻结了什么、轮询、重做某一个阶段、恢复与取消,以及查询账户余额:热点内容工作流(references/workflow.md)
高级:排查与恢复
- 封面文字出错、角度显得千篇一律、热榜查得太少、成片时长对不上,或者用户问这条能不能发时:常见问题与反模式(references/faq.md)
- 任务轮询、产物与结果字段:任务与结果(references/tasks-and-results.md)
- 余额、校验与结构化错误:计费、错误与恢复(references/billing-errors-and-recovery.md)
- 连不上 Beatra 时:随包 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)。
微信扫一扫