{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 浏览器自动化,需手机扫码登录)。bash
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 合并。bash
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。
bash
python3 {baseDir}/scripts/render_clips.py --config clips.json
→ <output_dir>/<name>.mp4:9:16、模糊填充、顶部钩子大标题、保留双语字幕。
bash
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 中转,中文渲染准确):
bash
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 多为限流信号, 一出现就停。bash
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