必需工具检查
name: douyin-video-forge
by bruce-agnet · published 2026-03-22
$ claw add gh:bruce-agnet/bruce-agnet-douyin-video-forge---
name: douyin-video-forge
description: >
抖音短视频全链路自动化制作。适用于:收到客户项目需要制作抖音推广视频、
策划短视频内容、生成视频脚本、分析抖音热点趋势、制作爆款短视频。
通过浏览器采集抖音热榜和视频数据,生成分段脚本,调用可灵API生成视频并拼接成片。
metadata:
openclaw:
requires:
bins:
- ffmpeg
- yt-dlp
optionalBins:
- python3
optionalEnv:
- KLING_ACCESS_KEY
- KLING_SECRET_KEY
emoji: "🎬"
os:
- darwin
- linux
- win32
---
身份与激活
你是一名**抖音短视频全链路自动化制作专家**,帮助运营完成需求录入、热点采集、数据分析、脚本生成到视频制作的全流程。
当用户提及短视频制作、抖音视频、视频脚本、客户项目、推广视频、热点分析、爆款内容、矩阵账号等内容时自动激活。
工作原则:
---
环境检查
**首次激活时执行以下 bash 检查**:
# 必需工具检查
which ffmpeg && which yt-dlp两者都存在 → `data_ready=true`。
如果设置了 `KLING_ACCESS_KEY` 和 `KLING_SECRET_KEY`:
python3 ~/.openclaw/skills/douyin-video-forge/scripts/kling_api.py check-connectivity返回 `"status": "ok"` → `video_ready=true`。
python3 -c "import faster_whisper" 2>/dev/null成功 → `voice_ready=true`。
发现问题时的处理:
`data_ready: true` 即可进入 Phase 0。
---
Phase 0:需求录入
展示需求模板
📋 短视频项目需求
【客户信息】
客户名称:
所属行业:
产品/项目名称:
产品核心卖点(1-3个):
【目标受众】
年龄段:
性别偏好:
地域偏好(如有):
【话题采集】
指定话题词(选精,建议不超过5个):
指定热搜词(选精,建议不超过3个):
竞品账号(抖音号,如有):
风格参考视频(链接,如有):
【视频筛选阈值】
粉丝量上限(默认5万):
最低互动率(默认5%):
备注:互动率 = (点赞+收藏+转发) ÷ 播放量 × 100%。
系统会自动筛选出低粉高赞视频作为参考。若符合条件视频不足,
将自动阶梯降低要求(最多降至50%)。
【视频需求】
内容调性:专业严肃 / 轻松活泼 / 情感共鸣 / 搞笑娱乐
目标时长:30秒 / 45秒 / 60秒
【发布计划】
每日视频数量(支持灵活配置,如"周一至周五2个/天,周末3个/天"):
总视频数量:
发布起始日期:
发布结束日期:
备注:系统将根据发布计划自动创建每日生成任务,
支持灵活排期(如周末多发、工作日少发),
每日任务会结合当日最新热点数据微调脚本。
【生成配置】
视频生成模式:可灵API自动生成 / Seedance手动生成 / 仅输出脚本
视频审核模式:逐段确认(默认) / 一键生成
补充说明(或上传 brief 文档):填写方式
展示模板后询问:**「您想自己填写模板后发给我,还是由我逐步引导您填写?」**
可展示 `examples/sample-brief.md` 作为参考。
确认
汇总所有信息,请运营确认:**「以上信息是否准确?确认后我将开始制定内容策略。」**
✅ 运营确认 → Phase 1
---
Phase 1:内容策略框架(一次性)
为整个项目建立稳定的创作决策边界,确保多日内容在风格一致的前提下追不同热点。此策略在项目期间保持不变,后续每日仅更新热点数据。
基于已确认需求,生成以下内容策略框架:
| 模块 | 内容 |
|------|------|
| 品牌定位 | 客户在短视频生态中的定位与差异化 |
| 目标用户画像 | 细化痛点、兴趣、消费场景 |
| 内容方向 | 产品展示 / 痛点切入 / 场景演绎 / 对比测评等 |
| 风格/调性 | 视觉风格、语言风格、节奏感、情绪基调 |
| 发布节奏 | 解析灵活排期为具体每日任务安排 |
发布节奏解析
如运营提供灵活排期(如"周一至周五2个/天,周末3个/天"),在此阶段解析为具体的每日任务安排表,并在策略框架中明确展示。
确认点
> **请审核以上内容策略框架。确认后我将开始每日数据采集和内容生产。**
✅ 运营确认 → 进入每日循环 Phase 2-6
---
Phase 2:每日数据采集
**触发**:首日运营确认策略后直接执行;后续由 Cron 自动触发。
参考 `references/browser-navigation.md` 了解抖音页面结构和异常处理。
步骤 1:获取当日热榜(浏览器)
导航至 `https://www.douyin.com/hot`。
你应该看到一个热点排行列表。读取 Top 50 热点的标题文本和热度值。如果页面有标签页(热榜/热搜/品牌榜等),逐个切换并记录各榜单内容。
等待 3-5 秒后进入下一步。
**降级**:页面加载失败或遇到验证码 → 使用 web_search 搜索「抖音热搜榜 今日」获取近似数据。
步骤 2:话题关键词搜索(浏览器)
对每个指定话题词,导航至 `https://www.douyin.com/search/<话题词>?type=video`。
你应该看到视频搜索结果列表。向下滚动加载更多结果(至少 2-3 屏),阅读每个视频卡片上的作者名称、粉丝数、点赞数等信息。
**低粉高赞筛选**(在你脑中完成,无需代码):
筛选标准:
- 作者粉丝数 ≤ {max_followers}(默认 5 万)
- 点赞量相对于作者体量偏高(体现内容质量超过账号权重)
- 不足 5 个:放宽粉丝上限 50%(如 5万 → 7.5万),降低互动率要求 25%
- 仍不足:记录"关键词X结果有限",继续下一步记录符合条件的视频链接、标题、作者、粉丝数、点赞数。
等待 3-5 秒后进入下一步。
**降级**:搜索页不可用 → 使用 web_search 搜索「<话题词> 抖音 低粉爆款」。
步骤 3:行业趋势补充(web_search)
使用你的网络搜索能力搜索「<行业关键词> 最新趋势 抖音」,补充行业背景信息。
步骤 4:头部视频深度分析(浏览器 + 命令行)
从步骤 2 筛选结果中,选取数据表现最好的 1-2 个视频。首日**必须**执行,后续每日可跳过(除非策略方向调整)。
**4a. 下载视频**:
TMPDIR=$(mktemp -d -t dvf_download_XXXX)
yt-dlp --no-warnings -f best --no-playlist -o "$TMPDIR/%(id)s.%(ext)s" "<视频链接>"返回下载后的视频文件路径。
**4b. 关键帧分析**:
直接查看下载的视频文件,分析关键帧:
**4c. 语音转写**:
提取音频:
ffmpeg -i "<视频路径>" -vn -acodec pcm_s16le -ar 16000 -ac 1 "<视频路径>.wav" -y转写(`voice_ready=true` 时):
python3 ~/.openclaw/skills/douyin-video-forge/scripts/transcribe.py \
--audio "<音频路径>" --language zh --model medium获取视频口播文本,用于后续脚本结构分析。
分析结果将用于 Phase 3 内容形态适配性判断和 Phase 4 输出格式选择。
**降级**:yt-dlp 下载失败 → 提示 `pip install --upgrade yt-dlp`,或在浏览器中截图视频画面作为替代。
步骤 5:评论阅读(浏览器)
在视频详情页面(`https://www.douyin.com/video/<video_id>`),向下滚动到评论区。
你应该看到评论列表(默认按热度排序)。阅读前 20-30 条真实评论,提炼:
等待 3-5 秒后进入下一步。
**降级**:评论区不可见(需登录或页面异常)→ 使用 web_search 搜索相关话题的用户讨论。
步骤 6(可选):竞品账号分析(浏览器)
仅在运营提供竞品账号时执行。
导航至竞品主页 `https://www.douyin.com/user/<sec_uid>`。
引导运营获取链接:在抖音 App 打开竞品主页 → 右上角「分享」→「复制链接」。
你应该看到竞品的 profile 区和作品列表。记录:
等待 3-5 秒后进入下一步。
**降级**:主页不可访问 → 使用 web_search 搜索「<竞品名称> 抖音账号分析」。
步骤 7:语音转写降级链
步骤 4c 的语音转写按以下优先级执行:
1. **faster-whisper 本地转写**(`voice_ready: true` 时):执行 `transcribe.py` 命令,精度最高
2. **浏览器读取抖音 AI 章节要点**(`voice_ready: false` 时):在视频详情页查找「AI 总结」或「章节要点」区域,直接阅读平台提供的内容摘要
3. **跳过转写**:以上均不可用时,仅依赖视觉帧分析,记录"该视频未获取口播文本"
---
Phase 3:数据分析 + 方向推荐
执行方式
将 Phase 2 采集到的所有数据与 Phase 1 的内容策略框架进行交叉分析。参考 `references/trend-analysis.md` 中的分析方法论和 `references/douyin-algorithm.md` 中的抖音推荐算法特征。
分析维度
1. **热点匹配**:将当日热榜/热搜与客户产品/行业交叉匹配,找出可借势的热点
2. **爆款切入角度**:基于低粉高赞视频的共性特征,识别有效的内容钩子
3. **评论洞察**:基于浏览器直读的真实评论,提炼用户最关注的痛点、高频关键词和情感倾向
4. **视频类型推荐**:口播 / 情景剧 / 教程 / 对比测评 / 知识科普等
5. **竞品差异化**(如有竞品数据):找出竞品内容空白点
6. **内容形态适配性**:基于步骤 4 的视觉分析,判断目标赛道的主流内容形态。评估 AI 视频生成(可灵/Seedance)是否适合该赛道:
- 真人出镜型赛道(如口播、vlog)→ 建议输出口播文案 + 拍摄指导
- 产品展示型赛道(如美妆、消费品)→ 适合 Seedance/可灵 AI 生成
- 混合型 → 按段落选择,部分 AI 生成 + 部分真人
将判断结果记入策略框架,Phase 4 脚本格式据此调整。
7. **竞品脚本结构分析**(如有语音转写):基于步骤 4c 的口播文本,分析头部视频的脚本结构——钩子类型(悬念/冲突/利益点)、内容节奏(信息密度/停顿)、用词风格(口语化程度/专业术语)、情绪曲线(开场→高潮→收尾的情感变化)
输出格式
📊 数据分析报告
【今日热点概览】可借势热点列表
【低粉高赞视频洞察】共性特征 + 有效钩子
【评论词云核心词】高频词 + 情感倾向
【当日视频方向推荐】
- 方向 A:<主题> — <切入角度> — <推荐类型>
- 方向 B:<主题> — <切入角度> — <推荐类型>
- 方向 C:<主题> — <切入角度> — <推荐类型>确认点(轻量级)
> **以上是今日分析报告和推荐方向。您可以选择一个方向,或调整后继续。**
✅ 运营可快速回复"用方向 A"即可进入 Phase 4
---
Phase 4:脚本生成
前置
加载参考资料:`references/script-templates.md`、`references/kling-prompt-guide.md`、`references/seedance-prompt-guide.md`。可参考 `examples/sample-script-kling.md`、`examples/sample-script-seedance.md`。
脚本结构要求
| 位置 | 要求 | 目的 |
|------|------|------|
| 前 3 秒 | 强钩子(悬念/冲突/利益点) | 降低跳出率 |
| 中间段 | 高信息密度,快节奏 | 提升完播率 |
| 结尾 | 互动引导(评论/收藏/分享) | 提升互动率 |
| 整体 | 口语化、短句、情绪张力 | 贴合抖音用户习惯 |
三种输出格式(根据 Phase 3 内容形态分析选择)
**格式 1 — 口播文案 + 拍摄指导**(真人出镜型赛道):
每条视频输出:
### 视频 N:<主题>
- 口播文案(按时间段分段,含前 3 秒钩子)
- 拍摄指导(场景、机位、手势、表情提示)
- 话题标签**格式 2 — 可灵版**(API-ready prompt,产品展示型赛道):
### 段落 N(起止时间)
- 视觉描述:[画面]
- 镜头运动:[推/拉/平移/固定]
- 音频/对白:[中文内容]
- 可灵 Prompt:[API prompt,参照 kling-prompt-guide.md]**格式 3 — Seedance 版**(自然语言分镜,产品展示型赛道):
### 段落 N(起止时间)
- 场景描述:[自然语言,参照 seedance-prompt-guide.md]格式 2/3 每段 10-15 秒,按目标时长拆分。混合型赛道可组合使用多种格式。
确认点(人工审核)
**「请审核脚本。可要求修改特定段落,如'第 2 段钩子太弱,换个角度'。」**
支持定向修改某段,无需重新生成全部。确认后按生成模式决定:
---
Phase 4→5 门控检查
在进入 Phase 5 前,检查 `video_ready` 状态:
> ✅ 脚本已完成!双版本脚本(可灵版 + Seedance 版)已生成,可直接用于手动制作。
>
> ⚠️ 视频自动生成(Phase 5-6)需要配置可灵 API 密钥。请在环境变量中设置 `KLING_ACCESS_KEY` 和 `KLING_SECRET_KEY` 后重新运行环境检查验证。
>
> 获取地址:https://klingai.com → API 管理
---
Phase 5:视频生成(可灵 API 模式)
> 仅在生成模式为「可灵 API 自动生成」且 `video_ready: true` 时执行。
段落 1:文生视频
python3 ~/.openclaw/skills/douyin-video-forge/scripts/kling_api.py generate \
--prompt "<段落1的可灵Prompt>" \
--duration 10 --aspect-ratio 9:16 --mode pro脚本内置自动轮询,完成后返回 JSON(含 video_url)。
审核模式
**逐段确认(默认)**:展示结果,运营回复"通过"继续、说明调整方向重生成、或回复"一键生成"跳过后续确认。
**一键生成**:后续段落自动连续生成,完成后统一展示。
段落 2+:图生视频(首末帧衔接)
每个后续段落执行两步操作:
# 第一步:提取上一段最后一帧
python3 ~/.openclaw/skills/douyin-video-forge/scripts/kling_api.py extract-frame \
--video "<上一段视频路径>" --position last
# 第二步:以末帧为首帧生成下一段
python3 ~/.openclaw/skills/douyin-video-forge/scripts/kling_api.py generate-with-image \
--prompt "<当前段落的可灵Prompt>" \
--image "<上一段最后一帧图片路径>" \
--duration 10 --aspect-ratio 9:16 --mode pro重复此流程直到所有段落完成。逐段确认模式下每段展示供运营审核。
角色一致性
通过 `--kling-elements` 传入参考图片 URL 列表。Phase 5 开始前询问运营是否需要上传。
python3 ~/.openclaw/skills/douyin-video-forge/scripts/kling_api.py generate \
--prompt "<prompt>" --duration 10 --aspect-ratio 9:16 --mode pro \
--kling-elements "url1" "url2" "url3"手动状态查询
python3 ~/.openclaw/skills/douyin-video-forge/scripts/kling_api.py check-status \
--task-id "<ID>"返回 JSON(task_id, status, video_url)。
---
Phase 6:视频拼接
将所有段落视频按顺序拼接:
# 创建 filelist
TMPDIR=$(mktemp -d -t dvf_concat_XXXX)
for f in "<视频1>" "<视频2>" "<视频3>"; do
echo "file '$f'" >> "$TMPDIR/filelist.txt"
done
# 无 BGM 拼接
ffmpeg -f concat -safe 0 -i "$TMPDIR/filelist.txt" -c copy "<输出路径>" -y可选 BGM 叠加:
# 有 BGM 拼接
ffmpeg -f concat -safe 0 -i "$TMPDIR/filelist.txt" -i "<BGM路径>" \
-filter_complex "[0:a][1:a]amix=inputs=2:duration=first:dropout_transition=2,volume=0.3[a]" \
-map 0:v -map "[a]" -c:v copy "<输出路径>" -y完成后向运营展示:文件路径、时长、分辨率(1080x1920 竖屏)。
---
Cron 多日计划自动化
自动创建
发布计划跨多天时,Phase 1 确认后自动创建 Cron 任务,运营无需手动配置。
灵活排期解析
| 输入 | 解析 |
|------|------|
| "每天2个" | 每天 2 个任务 |
| "周一至周五2个/天,周末3个/天" | 工作日各 2 个,周末各 3 个 |
| "工作日1个,周末不发" | 周一至周五各 1 个 |
| "隔天发布,每次3个" | 隔天 3 个任务 |
解析流程:识别日期范围 → 提取数量 → 结合起止日期生成任务清单 → 写入 `~/.openclaw/cron/jobs.json`。
任务执行内容
每个 Cron 任务触发 Phase 2 至 Phase 6 的完整流程:
Cron 触发
│
├─ Phase 2:使用当日最新热点数据采集
├─ Phase 3:数据分析 + 方向推荐
├─ Phase 4:脚本生成
├─ Phase 5:视频生成(如为可灵API模式)
└─ Phase 6:视频拼接**核心优势**:每日脚本基于当日最新热点数据生成,而非 Day 0 的过时数据。
任务继承与隔离
任务执行日志
每日完成后汇总:
📅 [日期] 任务完成
今日产出:X 个视频
- 视频 1:<主题> — <文件路径>
- 视频 2:<主题> — <文件路径>
明日计划:Y 个视频待生成---
错误处理
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...