蚩尤之剑 v2.0 · 通用自媒体视频工厂
> 对标账号 → 风格分析 → 全自动出片。 不限赛道,一条命令,30 秒出片。
用户输入 风格工厂 引擎输出
───────── ─────────── ──────────
"复刻半佛仙人" → 财经复盘风格 → moviepy 竖版 MP4
"做科技快讯" → 科技快讯风格 → + 可选剪映草稿
"我的读书号" → 交互式自定义 → 5 种转场 · 逐词字幕
⚡ 30 秒体验
# 一条命令即可出片(内置演示素材,无需准备任何数据)
python scripts/make_news_video.py \
--news references/demo_news.json \
--manifest references/demo_manifest.json \
--profile cross-border-daily \
--out demo.mp4 --date "8月4号" --thumbnail
🎨 5 套预置风格
| 风格 | 对标账号 | 配色 | 配音 | 适合 |
|---|---|---|---|---|
cross-border-daily |
跨境早知道 | 深蓝+暖橙 | 云希 | 跨境/外贸/政策 |
tech-news |
量子位、36氪 | 暗黑+青绿 | 晓晓 | AI/科技/数码 |
finance-review |
半佛仙人 | 红黑金融 | 云健 | 股市/财经/基金 |
movie-review |
毒舌电影 | 暗紫+金色 | 晓伊 | 影视/剧集/书评 |
knowledge-card |
无穷小亮 | 白底+蓝字 | 晓涵 | 知识/科普/教育 |
📦 安装
| 平台 | ffmpeg 安装 | 验证 |
|---|---|---|
| Windows | scoop install ffmpeg |
ffmpeg -version |
| macOS | brew install ffmpeg |
ffmpeg -version |
| Linux | sudo apt install ffmpeg |
ffmpeg -version |
python -m venv venv && source venv/bin/activate # Win: venv\Scripts\activate
pip install -r scripts/requirements.txt
🚀 三步出片
# 步骤 1:分析对标账号(自动匹配风格)
python scripts/account_analyzer.py --account "半佛仙人"
# 步骤 2:下载图片 + 视频素材
python scripts/news_media_downloader.py news.json --media-type image
# 视频需要 API Key (免费): --media-type both --pexels-key YOUR_KEY
# 步骤 3:一键合成
python scripts/make_news_video.py \
--news news.json --manifest assets/media/manifest.json \
--profile finance-review --out output.mp4 --date "8月4号" \
--bgm bgm.mp3 --ducking --thumbnail
🎬 核心能力
| 能力 | 说明 | 参数 |
|---|---|---|
| 逐词高亮字幕 | 随语音逐词从灰→白,<hl> 关键词橙色 |
--no-animate 关闭 |
| 5 种转场 | crossfade / slide / fade-black / blur-dissolve / zoom | --transition-type |
| 文字特效 | 描边 / 阴影 / 渐变背景 | style_profile 配置 |
| 语音闪避 | 有人声时 BGM 自动降音 | --ducking |
| 节拍同步 | BGM 节奏驱动镜头切换 | --beat-sync |
| 晕影特效 | 四角暗角聚焦画面 | --vignette |
| 视频素材 | Pexels/Pixabay 免费视频下载 | --media-type both |
| 硬件加速 | NVENC / QSV / AMF | --hw-accel h264_nvenc |
📥 输入格式
news_list.json — 每条新闻一个对象:
{
"title": "欧盟取消150欧以下小包免税",
"image_keyword": "EU customs trade policy 2026",
"video_keyword": "European Union trade news",
"date": "2026-08",
"source": "欧盟理事会",
"script": "欧盟<hl>取消150欧以下小包免税</hl>,每件收3欧关税。"
}
| 字段 | 必填 | 说明 |
|---|---|---|
title |
✅ | 标题,≤ 30 字 |
image_keyword |
✅ | 英文搜图关键词 |
video_keyword |
否 | 英文搜视频关键词 |
script |
否 | 口播稿,支持 <hl> 高亮 |
🔧 完整参数
make_news_video.py
--news, --manifest, --out, --date, --bgm
--profile tech-news 🆕 风格配置
--template fast-cut 🆕 JSON 模板
--transition-type slide 🆕 转场类型
--voice, --resolution, --bgm-volume
--ducking, --beat-sync, --vignette, --thumbnail
--no-animate, --no-transition, --no-kinetic
--hw-accel, --dry-run, --jianying
📂 文件结构
skill-chiyou-zhi-jian/
├── SKILL.md ← 你在这里
├── scripts/
│ ├── make_news_video.py 核心引擎
│ ├── news_media_downloader.py 图片+视频下载
│ ├── news_image_downloader.py 向后兼容入口
│ ├── account_analyzer.py 🆕 账号风格分析
│ └── jianying_exporter.py 🆕 剪映草稿导出
├── style_profiles/ 🆕 5 套风格 JSON
├── templates/ 🆕 3 套板式模板
├── fonts/ 🆕 字体管理
└── references/
├── DETAILS.md 详细文档(实现原理/进阶)
├── EXAMPLES.md 7 个实战场景
├── demo_news.json 内置演示数据
├── demo_manifest.json内置演示素材清单
└── demo_media/ 5 张内置占位图
❗ 排障速查
| 现象 | 原因 | 解决 |
|---|---|---|
ModuleNotFoundError: moviepy |
未安装依赖 | pip install -r scripts/requirements.txt |
ffmpeg not found |
未安装 ffmpeg | 见上方平台安装表 |
No module named 'PIL' |
Pillow 未安装 | pip install Pillow>=10.0.0 |
PermissionError 写音频 |
杀毒软件拦截 | 添加 assets/ 目录到白名单 |
| 字幕中文乱码 | 无中文字体 | 改 FONT_PATH 为系统字体路径 |
| edge-tts 首段失败 | 网络波动 | 脚本内置 12 次重试,等待即可 |
| 视频画质模糊 | 图片分辨率低 | image_keyword 用英文,--per 6 |
| scipy 导入失败 | 版本过低 | pip install scipy>=1.10.0 |
| 成片无声音 | 音频合成失败 | 检查 --audio-dir 下的 mp3 文件 |
| Windows 路径空格 | 路径含空格 | 用引号包裹路径或移到无空格路径 |
🎯 期望管理
| 指标 | 数值 |
|---|---|
| 输出格式 | MP4 (H.264 + AAC) |
| 默认分辨率 | 720×1280 (9:16) |
| 5 条新闻时长 | ~60-90 秒 |
| 渲染时间 (720p/CPU) | ~30-60 秒 |
| 文件大小 (60s) | ~8-15 MB |
| 内存占用 | ~500MB-1.2GB |
| 视频素材 (Pexels) | 5000 次/月免费 |
📚 更多
- 详细实现原理 → references/DETAILS.md
- 7 个实战示例 → references/EXAMPLES.md
- 日更 SOP → references/execution-manual.md
- 输入示例 → references/news_list.example.json