Install
openclaw skills install douyin-video-skills抖音视频搜索、筛选、链接获取、文案提取与修正工具。支持在抖音网页中登录后搜索自定义关键词,按筛选参数从搜索结果中选择合适视频;点开候选视频后先校验当前弹层标题与目标搜索结果标题是否一致,若不一致则自动关闭弹层并继续尝试后续候选,再提取视频语音文案并输出原始稿、修正版、修正说明。适用场景包括抖音二次创作前的素材采集、竞品研究、视频文案提取与清洗。
openclaw skills install douyin-video-skills从抖音网页中搜索自定义关键词,筛选并选定目标视频,校验当前视频是否正确,再提取视频语音文案,并对抽取结果进行修正和落盘。
modal_id 组装稳定视频链接,必要时再尝试分享按钮pip install requests ffmpeg-python
brew install ffmpegapt install ffmpeg需要可用的 playwright-cli 以及它的 skills。
npm install -g @playwright/cli@latest
playwright-cli install --skills
playwright-cli --version
推荐使用有头模式、持久化登录态,并显式指定 profile 目录:
playwright-cli -s=douyinflow open https://www.douyin.com/ --headed --persistent --profile ~/.playwright/douyinflow
文案提取功能使用硅基流动 API,需要设置环境变量:
export API_KEY="your-siliconflow-api-key"
对 OpenClaw / Gateway 环境,建议写入:
~/.openclaw/.env
获取 API 密钥: https://cloud.siliconflow.cn/
python3 skills/douyin-video-skills/scripts/run_pipeline.py \
--keyword "青少年无人机" \
--pick-index 1 \
--must-include 青少年 \
--must-include 无人机 \
--content-type-hint 培训 \
--content-type-hint 科普 \
--account-hint 教育 \
--profile ~/.playwright/douyinflow \
--human-delay-min-ms 800 \
--human-delay-max-ms 2500 \
--captcha-max-waits 3 \
--title-match-mode default \
--title-min-similarity 0.82 \
--max-title-retry 5 \
--headed \
--persistent
--keyword 自定义搜索词(必填)
--pick-index 选择第几个符合条件的结果(默认 1)
--must-include 标题必须包含的词,可多次传入
--exclude-word 需要排除的词,可多次传入
--content-type-hint 内容类型提示,如 培训 / 科普 / 推荐,可多次传入
--account-hint 账号类型提示,如 教育 / 俱乐部 / 教练,可多次传入
--min-likes 最低点赞量
--duration-min-sec 最短时长(秒)
--duration-max-sec 最长时长(秒)
--profile playwright-cli 持久化浏览器 profile 目录(默认 ~/.playwright/douyinflow)
--human-delay-min-ms 人类化操作最短等待时间(毫秒)
--human-delay-max-ms 人类化操作最长等待时间(毫秒)
--captcha-max-waits 验证码暂停等待次数(默认 3)
--title-match-mode 标题匹配模式:strict / default / loose
--title-min-similarity 标题最小相似度阈值(默认 0.82)
--max-title-retry 标题校验失败后最多尝试多少个候选(默认 5)
--headed 浏览器前台运行
--persistent 使用持久化登录态
--output-dir 输出目录(默认 output)
~/.playwright/douyinflow 生成登录态文件,后续可复用)playwright-cli -s=douyinflow open https://www.douyin.com/ --headed --persistent --profile ~/.playwright/douyinflow
推荐让总控脚本自动完成,不要直接手写跳转搜索 URL。这样更接近真人操作,更利于减少验证码。
python3 skills/douyin-video-skills/scripts/title_match_check.py \
--expected "目标搜索结果标题" \
--actual "当前弹层标题" \
--mode default \
--min-similarity 0.82
默认不是死板的逐字完全相等,而是按“归一化标题 + 包含关系 + 相似度阈值”综合判断。
若仍不匹配,不继续当前视频提取;应自动关闭弹层并尝试下一个候选。
python3 skills/douyin-video-skills/scripts/douyin_downloader.py \
--link "https://www.iesdouyin.com/share/video/<videoId>" \
--action extract \
--output ./output
python3 skills/douyin-video-skills/scripts/transcript_cleanup.py \
--title "视频标题" \
--raw ./output/<videoId>/transcript.md \
--outdir ./output/<videoId>
{
"keyword": "青少年无人机",
"pickIndex": 1,
"mustInclude": ["青少年", "无人机"],
"excludeWords": ["直播", "纯广告", "录播回放"],
"minLikes": 0,
"durationMinSec": 15,
"durationMaxSec": 120,
"contentTypeHints": ["培训", "科普", "推荐"],
"accountHints": ["教育", "俱乐部", "教练"]
}
更详细的筛选思路参考:
references/filter-rules.md发布文案参考:
references/publish-copy.md完整执行后,每个视频建议保存到独立文件夹:
output/
└── <videoId>/
├── meta.json
├── source-link.txt
├── transcript.md
├── transcript-raw.md
├── transcript-clean.md
└── transcript-fixes.md
meta.json: 标题、关键词、视频ID、筛选参数、提取时间source-link.txt: 最终用于提取的链接transcript.md: 提取器原始产物transcript-raw.md: 原始转写稿transcript-clean.md: 修正版文案transcript-fixes.md: 修正说明与待确认项modal_idmodal_id 组装稳定视频链接:https://www.iesdouyin.com/share/video/<videoId>transcript.mdtranscript-raw.md、transcript-clean.md、transcript-fixes.md建议优先使用以下方式减少验证码:
当前脚本已支持:
--human-delay-min-ms / --human-delay-max-ms这是抖音网页常见问题。必须增加校验:
若仍不一致,不要在错误视频上继续提取。应执行:关闭弹层 → 回到结果列表 → 尝试下一个候选标题 → 重新校验,直到找到正确视频。
PC 端分享按钮可能:
因此本 skill 默认:
modal_idmodal_id 组装稳定视频链接API_KEY 是否已设置ASR 常见问题包括:
因此提取后必须执行修正步骤。