---
name: "wechat-channels-product-video"
description: "把真实商品图和已确认商品信息借助 AI 制作成一条竖版视频号商品展示短视频。围绕清晰的商品开场、一个商品细节或使用瞬间和干净收尾，交付视频号商品视频、商品展示视频、商品介绍视频、商品细节展示和新品展示视频，并整理标题和发布文案，适合商品图转视频、竖版商品视频、视频号带货短视频、视频号商品内容与微信小店商品内容。"
---

# 视频号商品展示短视频制作器

将一张真实、可检查的商品图制作成一条精炼的竖版视频号商品展示短视频。交付包括以商品为主的开场、清楚的商品细节或使用瞬间、干净收尾，以及视频号标题与发布文案。始终让商品本身而非出镜者成为画面主角。

本 Skill 适合“商品图 + 视频号商品展示方向”的场景。通用商品视频工作流使用 `product-video-studio`；达人出镜的抖音广告使用 `douyin-ugc-ad-creator`；编辑或延长已有视频使用 `beatra-ai-video-studio`。缺已确认商品信息时停在脚本或草稿，不付费出片。

## 从商品主体开始

最低必要输入是一张宿主可以检查且用户有权使用的真实商品图。复用已知的商品名、受众、用途、已确认商品信息、展示角度、发布背景、必须保留的包装、标签、颜色、标志及画面禁区。只有缺少商品图，或缺少会实质改变结果的商品瞬间或视觉方向时才追问。

事实性说法只使用用户提供的信息。可见的形状、颜色、表面质感和明显用途可以指导视觉方向。价格、规格、材质等级、促销、库存、认证、保修和效果结果必须来自用户。缺失时继续规划视觉商品故事，并把一项清楚的用户事实作为最小下一步输入；不要补写。

在任何生成之前，先提供免费的视频号商品展示规划：

1. **商品开场：** 商品第一时间可识别，并为商品标题留出安全构图。
2. **使用或细节瞬间：** 通过克制的动态展示一个已提供卖点、可见质感或使用背景。
3. **发布交接：** 用干净的结束画面，加上用户发布时可使用的标题和文案方向。

本 Skill 准备视频和发布素材，不会把用户的发布动作当作已经生成的结果。

## 默认方案与实时能力核验

建议制作一条无声、单商品、单动作的竖版短片：`9:16`、除非用户点名更高档位否则用最低准入分辨率、以及所选实时卡允许的最短整数秒，首帧商品清晰、光线稳定、轻微推近或转动，并以干净画面结束。除非用户选择模型、价格或控制项，否则保留 `model: "auto"` 和高级控制项默认值。

这些是建议而不是假设。在冻结路线前，通过随包客户端为所选能力调用 `beatra.models.list`，以当前模型卡为支持模型、图片或参考媒体、MIME 类型、字节限制、比例、分辨率、时长、控制项、输入组合和计费基准的唯一依据。平台通用自动默认值可能是横版，因此不能仅因 `auto` 可用就提交竖版请求。若实时卡不能同时接纳所需的 `9:16`、`720p` 和 `5` 秒方案，展示该卡支持的选项、最高费用和调用次数，再由用户选择修订后的付费方案。

## 选择视觉路线

选择能够保留用户商品身份的最小路线。

- **干净竖版商品图 → 严格首帧动画。** 用随包客户端上传符合要求的商品图。若实时 `image_to_video` 卡接受，调用 `beatra.videos.animate`。其中的 `image` 是严格首帧：在动态提示词中保留商品形状、颜色、标签、标志、包装和用户必保信息。
- **横版、杂乱或不适合的商品图 → 获认可的竖版首帧，再做动画。** 先调用 `beatra.images.transform`，让商品 artifact 位于 `images[0]`，并使用实时卡允许的 `2K` 与 `9:16` 画布。展示返回的首帧并获得认可，再将它用于 `beatra.videos.animate`。改变画布会使依赖该首帧的付费路线失效，需要新的确认。
- **动态或氛围参考 → 参考视频。** 仅当用户提供的视频是参考而不是精确开场时，调用 `beatra.videos.generate_from_references`，此前须由 `reference_to_video` 卡接纳有序组合。商品图放在第一位，后续参考按实际角色排序，并在提示词中说明每个角色。这条路线把参考当作灵感，不会将商品图确立为严格首帧。
- **严格开场和收尾帧 → 插帧。** 当用户要求两个严格边界，例如包装正面到已确认的使用或背面图时，使用已认可的 `beatra.videos.interpolate` 调用，其中包含 `first_frame` 与 `last_frame`。如末帧需要微调，从获认可的首帧 artifact 用 `beatra.images.edit` 制作；将它作为单独付费阶段，在执行前说明并确认。仅当所选实时卡允许时冻结显式 `9:16` 与 `720p` 控制项；如果它从源帧推导输出，则确认两个边界都已认可为 `9:16` 帧，并在确认中说明这种源帧推导规则。

如果用户同时要求严格商品首帧和动态参考视频，说明严格首帧与参考视频两条路线、各自当前能力和价格，并询问哪一个目标优先。不要把它们说成等价路线。不要悄悄裁减参考媒体、拆开一次协调请求、裁切或拉伸商品图，或切换到文生视频。本 Skill 始终需要真实商品图作为主体锚点。

## 付费确认

规划、文案写作、标题选项、发布方向和实时卡比较免费。变换、编辑、动画、参考视频和插帧请求均为付费。每个付费图片阶段前，展示该阶段自己的确认卡。在**每个** `beatra.videos.animate`、`beatra.videos.generate_from_references` 或 `beatra.videos.interpolate` 调用前，展示一张视频准入卡，冻结：

- 商品必保信息，以及允许写进动态或文案的用户已提供事实；
- 每个源文件和参考文件的准确顺序、角色以及完整视觉或动态提示词；
- 所选路线和 MCP 工具名；适用时的严格首帧或末帧处理；
- 实时卡允许的模型、控制项、`aspect_ratio`、最短准入时长、除非用户点名更高档位否则用最低准入分辨率、输入输出媒体限制、临时实时估算、600 积分注册赠金通常不够启动这条视频，以及余额不足时怎么办。

策划、比较或「去做商品视频」都不算批准。在用户确认已充值或已有足够积分覆盖本次估算之前，不要创建视频 `client_request_id`，也不要提交。对于包含视频的参考路线，分别说明实时 `input_video_second` 和 `output_video_second` 计费基准。变换加动画、编辑加插帧，或任何改变后的源文件，都需要单独准入卡。

获得确认后，只通过随包客户端对每个冻结 payload 提交一次。改变商品图、参考顺序或角色、商品必保信息、提示词、路线、首帧或末帧、模型、控制项、分辨率、比例、时长或输入媒体，都属于新的付费工作：重新确认并创建新的不透明标识。

## 只通过随包客户端执行

所有远程 Beatra 操作都只能通过随包 `scripts/mcp_client.py` 调用。在 `call <tool>` 时通过标准输入传入 JSON，并只通过其上传命令上传本地媒体；保留返回的 artifact 引用，绝不在远程 payload 中传入本地路径。

```text
printf '%s' '{"capability":"image_to_video"}' | python3 scripts/mcp_client.py call beatra.models.list
printf '%s' '{"capability":"reference_to_video"}' | python3 scripts/mcp_client.py call beatra.models.list
printf '%s' '{"capability":"frames_to_video"}' | python3 scripts/mcp_client.py call beatra.models.list
python3 scripts/mcp_client.py upload ./product.jpg --mime-type image/jpeg
```

不要配置或调用宿主 Beatra Connector，也不要使用 REST/OpenAPI 作为回退。

## 跟踪、恢复与取消

对每个付费阶段，保存冻结 payload、确认、原始创建响应、`client_request_id`、任务 ID 和终态结果。只用 `beatra.tasks.get` 轮询原任务，直到 `succeeded`、`failed` 或 `canceled`；`queued` 和 `running` 只是进度，不代表可以替换收费请求。

只有创建响应确实未知时，才用字节完全相同的参数和原标识重放。若任务 ID 遗失，先为匹配能力调用 `beatra.tasks.list`，再对可能候选调用 `beatra.tasks.get`，比较已保存的提示词、媒体事实与顺序、模型、画布、时长、控制项和时间后，再决定是否应重放。慢响应、网络或认证问题、更新失败、409 响应或部分结果都不允许创建替代付费请求。遇到 `insufficient_balance` 时，转述返回信息，保持余额错误里的充值地址一字不改，并仅在用户说明已充值后，用同一冻结的 `client_request_id` 重试。

只在用户明确请求时取消。调用一次 `beatra.tasks.cancel`；如果返回 409，继续轮询同一原任务。仅当终态为 `canceled` 时才报告取消。

## 交付与复查

只交付终态任务事实：真实视频 artifact URL 或 ID、已解析模型、返回的尺寸、时长、用量和 `billing.net_charged_credits`。当宿主能查看或播放 artifact 时，将开场和收尾帧、商品形状、颜色、标签、标志、包装、已提供的必保信息、商品可见度、动态稳定性和竖版适配与获认可方案比较。明确说明哪些属性无法检查。随后提供匹配的视频号标题和发布文案。最多建议一个尚未执行的聚焦修改；任何修改都是新的付费工作。

## 账户余额

用户问还剩多少积分，或某次实时估价够不够时，调用 `beatra.wallet.get`。问已经扣了多少
时，调用 `beatra.wallet.ledger`。两者都是只读的。不要臆造查余额或充值的工具。也不要把
`wallet.get` 变成每次付费提交前的必需步骤。

模型卡返回里带 `top_up` 块时，按卡片给出的档位和顺序原样转述。不要给档位排高低，不要
贬低其中任何一档，也不要替用户挑。选哪一档是用户自己的事，钱包页会把整份清单摆在他
面前。任何时候都不要凭记忆报档位。

## 按任务查阅参考资料

- 商品事实、视频号商品展示结构、标题和文案方向：视频号商品展示规划（references/video-channel-planning.md）
- 实时卡接纳、确认、路线 payload、恢复和结果交付：视频工作流（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/uninstall-and-disconnect.md）

## 更新与安全

本 Skill 会自动更新。内置客户端每天最多一次从 Beatra 官网读取本渠道的版本信息
（中国大陆网络走 www.beatra.cn 与 cdn.beatra.cn）。有新版本时，它下载官方发布包，
逐个文件校验 SHA-256，再替换本 Skill 自己的文件；你放进这个目录的其他文件不会被
改动。替换过程中断时，下次运行会自动恢复到替换前的状态。除此之外，它不下载或执行
任何其他代码，只通过 HTTPS 与 Beatra 官方服务通信；你选择上传的文件只会传到
Beatra 为这次上传签发的一次性地址。

关闭自动更新：`python3 scripts/mcp_client.py update --auto off`。关闭后，客户端每天
最多提示一次在你安装它的商店里更新的命令。详见更新与安全（references/updates-and-security.md）。
