Install
openclaw skills install video-viral-pipeline把一条外语长视频一键做成中文字幕成片,并自动切成多条"独立成爆款"的 9:16 竖屏短片(带钩子标题+gpt-image 封面),可选一键发布到微信视频号 / 抖音 / 小红书 / 公众号四个平台。当用户说"翻译视频并切片""做爆款切片""视频号一条龙""发抖音小红书""把这个 YouTube 链接做成短视频矩阵"时使用。
openclaw skills install video-viral-pipeline{baseDir} = 本 SKILL.md 所在目录,执行脚本时替换为绝对路径。
输入一个视频链接(YouTube / 本地文件)→ 输出:
跑 bash {baseDir}/scripts/setup.sh 安装。核心要求:
yt-dlp(下载)ffmpeg-full(必须带 libass/freetype;macOS 上 Homebrew 常规 ffmpeg 是精简版烧不了字幕,要 brew install ffmpeg-full,脚本会自动探测 /usr/local/opt/ffmpeg-full/bin/ffmpeg)python3.12 venv(~/.vvp-whisper;Python 3.14 无 wheel)。转写脚本若当前 python3 没引擎需 re-exec 到该 venv。social-auto-upload(patchright 浏览器自动化,需手机扫码登录)。yt-dlp --cookies-from-browser chrome -f "bv*[height<=1080]+ba/b[height<=1080]" \
--merge-output-format mp4 -o "<tmp>/源.%(ext)s" "<URL>"
--cookies-from-browser chrome。--download-sections "*0-180";整片就别用。-map 0:v:0 -map 1:a:0 -c copy 合并。ffmpeg-full -i 源.mp4 -vn -acodec libmp3lame -q:a 2 源.mp3
<whisper-venv>/bin/python transcribe_srt.py 源.mp3 --output 源.srt --engine faster --language en
得到带精确时间戳的英文 SRT。
ass= 滤镜烧录;音频强制 -c:a aac(别 copy,Opus 在部分平台传不了)。从整片 SRT 里挑 N 个能独立成爆款的片段。判据:
长视频建议派并行 agent:每个 agent 给一个主题+大致时间窗,读 SRT 返回精确起止时间码 + ≤15 字中文钩子标题。
把结果写成 clips.json(见 {baseDir}/examples/clips.example.json):每条含 start/end/hook/cover_title/cover_frac/name。
python3 {baseDir}/scripts/render_clips.py --config clips.json
→ <output_dir>/<name>.mp4:9:16、模糊填充、顶部钩子大标题、保留双语字幕。
python3 {baseDir}/scripts/render_covers.py --config clips.json # 出封面图到 封面/
python3 {baseDir}/scripts/prepend_covers.py --config clips.json # 把封面拼成 1.5s 片头
clean_video),cover_frac 控制取帧点——确保取到主角正脸(切到他人镜头就调 frac)。ffmpeg 封面只能做到约 85%;真正头部的封面用 AI 生图。本 skill 内置 scripts/gen_covers_ai.py(gpt-image-2,经 Ofox 中转,中文渲染准确):
unset http_proxy https_proxy all_proxy # ⚠️ 必须直连,走代理大图会 SSL EOF
OFOX_API_KEY=... python3 {baseDir}/scripts/gen_covers_ai.py --config covers.json
"style":"cyber"(深色霓虹+发光终端+光带分割,点击力最强)/ "soft"(奶油薄荷圆角卡片+扁平图标,小红书原生)。covers.json 每条配 eyebrow/title/highlight/subtitle/terminal,见 examples/covers.example.json。3x4/ 生成 3:4 版(黑底补边不裁字)适配小红书。视频号/抖音/小红书都经 social-auto-upload(浏览器自动化,无官方 API)。每个平台首次各需扫码登录一次(examples/get_<平台>_cookie.py 生成二维码 png → 对应 App 扫;二维码几分钟失效,准备好再生成)。一律先发 1 条试水,确认无异常再小批量。
| 平台 | 脚本 | 稳定度 / 要点 |
|---|---|---|
| 视频号 | scripts/publish_shipinhao.py | 最稳。用「直接发表」(is_draft=False);草稿路径选择器在新版助手下超时。publish.json 每条 title/short_title(6-16字)/tags/thumbnail。 |
| 抖音 | scripts/publish_douyin.py | 可用,自动加封面/原创声明。登录扫码偶尔磨叽。item 有 thumbnail 则用作竖封面。 |
| 小红书 | scripts/publish_xiaohongshu.py | 风控最严。标题≤20字;小批量+大间隔(≥90s)+先试1条;会自动勾原创声明(搬运慎用);偶发 Locator timeout 多为限流信号,一出现就停。 |
cd <social-auto-upload>
PYTHONPATH=. .venv/bin/python {baseDir}/scripts/publish_douyin.py --config publish.json --idx 1
publish.json 每条配 file/title/tags/desc/thumbnail(thumbnail 指向 gpt-image 封面,建议小红书用 3:4)。
公众号(图文,非视频):用 xiaohu-wechat-format 技能排版深度文 + 2.35:1 封面 + publish.py 推草稿(需 app_id/secret + IP 白名单 + 已认证服务号/订阅号;个人未认证号无接口权限)。
unset http_proxy https_proxy all_proxy 后再调 Ofox;走本地代理大图常 SSL EOF / Connection refused(脚本已加重试)。模型名是 gpt-image-2(gpt-image-1 在 Ofox 上 404)。ass=/subtitles= 滤镜报错。~/.cache/xh-models/。clips.json — 切片+封面配置,结构见 examples/clips.example.jsonpublish.json — 视频号发布配置,结构见 examples/publish.example.json