Byted Kickart Marketing Material Generator

Security

基于火山引擎Kickart服务生成抖店/抖音商品营销短视频,支持用户上传自定义图片/视频素材、素材分析、创意分析、故事板创作、成片生成、抖音发布全流程。当用户发送抖店/抖音商品链接、提及「上传素材」「添加图片」「添加视频」「素材分析」「创意分析」「故事板」「生成短视频」「营销视频」「发布视频」「抖音发布」时触发使用。

Install

openclaw skills install byted-kickart-marketing-material-generator

营销视频SKILL

🚨 强制前置校验流程(必须按顺序执行,任意不通过直接终止流程)

所有用户请求必须先完成以下4步校验,不得跳过:

  1. 模型输入能力校验
    • 读取openclaw.json配置文件,检查当前默认使用的模型input配置是否包含"image"
    • 若不包含image输入支持:提示用户需要为模型添加image输入支持,否则会影响图片/视频素材上传和处理功能,并询问用户是否需要帮助配置image输入,终止流程
  2. 火山鉴权校验
    • 读取./references/火山鉴权指南.md,检查本地是否已配置环境变量
    • 未配置:引导用户按指南完成密钥配置,终止流程
  3. 套餐有效性校验
    • 读取./references/套餐开通指南.md,调用套餐查询接口检查用户套餐是否在有效期内、创点余额充足
    • 套餐失效/余额不足:引导用户按指南升级/充值套餐,终止流程
  4. 链接有效性校验
    • 检查用户输入的链接是否为合法抖店/抖音商品链接(域名包含haohuo.jinritemai.comv.douyin.com
    • 无效链接:引导用户输入正确的抖店商品链接,终止流程
  5. 自定义素材场景适配
    • 若用户需求为上传自定义图片/视频素材,跳过抖店/抖音链接有效性校验,直接进入素材上传流程

🚫 任务提交与重试铁则(强制遵守,零例外)

  1. 绝对禁止主动重新提交任务:所有异步任务(素材分析/创意分析/故事板/视频生成)提交成功后,必须立即将后端返回的全局唯一Task ID持久化存储(保留72小时,与后端任务结果有效期一致)。无论本地exec会话/状态是否丢失、异常中断,都只会通过已持久化的Task ID查询后端真实任务状态,永远不会自行发起重复提交。
  2. 后端任务失败也不自动重提:如果通过Task ID查询到后端任务明确返回失败状态,仅向用户明确告知失败原因和对应解决方案,等待用户明确指令,不会自动重新提交任务,不产生任何额外创点消耗。
  3. 仅用户主动要求才允许重提:只有当用户明确说出「重新提交」「重新生成」「重做一次」「再做一个」这类主动发起的要求时,才可以执行重新提交操作,且提交前需再次向用户确认需求,避免误操作。

🎯 意图判断与依赖处理规则(基于对话历史自动识别)

结合当前用户输入和历史记录,按以下优先级判断意图:

  1. 进度查询最高优先级匹配
    • 用户提及「查询进度」「查看结果」「生成怎么样了」「好了吗」等关键词时,优先触发进度查询流程,强制加载./references/任务查询指南.md,无需依赖其他任务上下文判断,直接执行标准化查询流程
  2. 明确关键词匹配(次优先级)
    • 素材上传:用户提及「上传素材」「添加图片」「添加视频」「自定义素材」
    • 素材分析:用户提及「素材分析」「分析商品」「拉取素材」
    • 创意分析:用户提及「创意分析」「卖点分析」「受众分析」「创作方向」
    • 故事板创作:用户提及「故事板」「分镜」「脚本」「故事构思」
    • 视频生成:用户提及「生成视频」「成片」「导出视频」「制作短视频」
    • 视频发布:用户提及「生成发布二维码」「视频发布」「发布抖音」「跳转发布」
  3. 无明确意图处理
    • 用户仅发送商品链接未说明需求:询问用户需要的操作(素材分析/创意分析/故事板创作/直接生成短视频)

🛠️ 各任务执行指南

任务类型执行依据输出要求前置要求
进度查询读取./references/任务查询指南.md(含完整标准化查询流程规范)调用对应服务接口输出当前任务执行状态(如「任务已完成」、「任务执行中」等),确认是否需要调整需从会话上下文持久化存储中获取对应任务ID,无有效ID时直接告知用户未查询到相关任务
素材分析读取./references/素材分析指南.md(含完整执行流程规范)调用对应服务接口输出商品主图/详情图/视频数量、核心卖点、基础商品信息,确认结果准确性后询问下一步需求任务提交成功后自动将Task ID持久化存储到会话上下文
创意分析读取./references/创意分析指南.md(含完整执行流程规范)调用对应服务接口输出目标受众、推荐视频规格、核心卖点提炼、创意方向建议,确认结果准确性后询问下一步需求任务提交成功后自动将Task ID持久化存储到会话上下文
故事板创作读取./references/故事板创作指南.md(含完整执行流程规范)调用对应服务接口输出分镜脚本、镜头描述、口播文案、画面时长分配,确认结果准确性后询问下一步需求任务提交成功后自动将Task ID持久化存储到会话上下文
视频生成读取./references/消费成片指南.md(含完整执行流程规范)调用对应服务接口输出成片视频下载链接、视频参数,确认是否需要调整任务提交成功后自动将Task ID持久化存储到会话上下文
素材上传读取./references/素材上传指南.md(含完整上传流程规范)调用对应工具接口输出上传成功的素材URL列表,确认素材完整性后询问下一步需求任务提交成功后自动将会话ID、素材列表持久化存储到会话上下文
视频发布读取./references/视频发布指南.md(含完整二维码生成和发布流程规范)调用对应脚本接口输出抖音发布跳转二维码(图片形式)、使用说明,提醒用户扫码即可跳转发布前置要求:已获取到成片视频公网下载链接,且用户提供了发布文案内容

📝 任务状态管理规范(强制遵守)

  1. 任务ID持久化要求: 所有异步任务(素材分析/创意分析/故事板创作/视频生成)提交成功后,必须将以下信息持久化存储到会话上下文:

    • Task ID(后端返回的任务唯一标识)
    • 任务类型(素材分析/创意分析/故事板创作/视频生成)
    • 提交时间(UTC+8时间戳)
    • 执行会话ID(exec返回的sessionId)
    • 任务参数(用户指定的时长、prompt等关键信息) 禁止丢失Task ID,无有效Task ID时不得响应用户查询进度请求。
  2. 任务状态查询优先级: 用户查询进度时,必须按以下顺序执行查询: ① 检查是否存在正在运行的对应exec子进程:存在则调用process(action=poll)轮询进程状态 ② 无运行中的进程:使用持久化的Task ID调用scripts/task.py查询后端真实任务状态 ③ 最终任务状态以后端接口返回结果为准,禁止仅以本地脚本执行退出状态判断任务最终结果

  3. 本地脚本超时处理逻辑: 当本地执行脚本因超时退出(非0返回码)时,不得直接判定任务失败,必须立即使用持久化的Task ID调用查询接口确认后端任务状态:

    • 后端返回任务仍在执行:告知用户任务仍在后台运行,无需重复提交
    • 后端返回任务成功:获取结果并反馈给用户
    • 后端返回任务失败:告知用户错误原因和解决方案
  4. 素材消耗规则(强制遵守) 当视频生成任务确认完成并向用户交付成片后,必须立即执行素材消耗操作:调用python3 upload.py clear -s <当前会话ID>清空当前会话所有已上传的素材本地记录,防止同一份素材被重复用于其他视频创作,保障素材使用唯一性。

📂 文件输出与命名规范(强制遵守)

所有任务输出文件必须遵循以下规范,避免文件名冲突和磁盘占用问题:

  1. 统一输出目录:所有输出文件必须保存到/tmp/openclaw/kickart/output/目录,执行前自动创建目录:
    mkdir -p /tmp/openclaw/kickart/output
    
  2. 唯一文件名生成规则:文件名格式为 <文件类型>_<13位毫秒时间戳>_<6位随机数>.json,冲突概率为0:
    文件类型命名前缀示例
    素材分析结果materialmaterial_1742525890123_654321.json
    创意分析结果creativecreative_1742525912345_123456.json
    故事板生成结果storyboardstoryboard_1742525956789_987654.json
    视频成片结果videovideo_1742526012345_456789.json
  3. 文件名生成命令:执行每个环节前动态生成唯一文件名,示例:
    # 生成素材分析输出文件名
    MATERIAL_FILE="/tmp/openclaw/kickart/output/material_$(date +%s%N | cut -b1-13)_$((RANDOM%900000+100000)).json"
    

⚠️ 错误处理规范

所有错误必须明确告知原因和可执行解决方案,禁止模糊提示!!!

错误码错误描述详细说明用户处理建议
0无返回值接口调用成功,但服务返回结果为空请稍后重试,如问题持续请联系火山技术支持
1402创点不足调用接口时,用户账户的创点额度不足请前往 创点充值页面 充值创点或升级套餐
1412图片格式错误调用接口时,输入参数中包含了非支持的图片格式请检查图片格式是否为 jpg、png 等支持的格式
1413无效的媒体URL错误调用接口时,输入参数中包含了无效的媒体URL请检查您提供的URL是否正确,避免包含特殊字符或格式错误
1414输入包含敏感信息错误调用接口时,输入参数中包含了敏感信息,如个人隐私数据等暂不可生成带人物的营销视频,请等待后续版本更新
1415输出包含敏感信息错误调用接口时,服务返回结果中包含了敏感信息,如个人隐私数据等暂不可生成带人物的营销视频,请等待后续版本更新
1416输入媒体数量错误用户输入的素材数量超过限制提供的媒体素材数量超出限制,多出的素材可能不会使用
1417大模型调用错误模型调用出错,通常是输入参数错误媒体素材处理存在问题,请重新尝试,如问题持续请联系火山技术支持
1418时长计费参数错误提交时入参时间有问题要求的成片时长不符合技能要求,请按照0-60s的时长限制提交制作需求,如问题持续请联系火山技术支持
1501用户套餐过期调用接口时,用户套餐已过期请前往 套餐开通页面 开通套餐
100010签名验证失败AK/SK签名验证失败请检查您提供的火山鉴权AK/SK是否正确,可访问火山引擎控制台确认
100013缺少服务权限缺少iccloud_muse服务的RegisterArkClawCombo权限您的企业账号未开通Kickart权限,请联系火山主账号管理员为您开通,或详询火山技术支持
x01001AK/SK未配置用户未配置AK/SK请输入火山鉴权的AK/SK,可访问火山引擎控制台获取
x01010有效套餐缺失素材上传出现错误,通常是套餐原因请前往 套餐开通页面 开通套餐
其他-未明确列出的其他错误情况稍后重试,如问题持续请联系火山技术支持