Movie Narrator — 一句话,生成一部电影解说视频
输入电影名 + 解说风格,全自动生成:文案 → 旁白 → 字幕 → 画面合成。从零到成片,一行命令搞定。
项目简介
Movie Narrator 是一个开源工具,解决的核心痛点很简单:
「我想做电影解说,但我不会写文案、不会配音、不会剪视频。」
用 TRAE 从零搭建,一条命令完成全流程:
pip install movie-narrator
mn create --movie "飞驰人生" --style "热血搞笑" --duration 60
就这么简单。中间不需要任何手动操作。
它能做什么?
输入一个电影名,自动完成 8 步流水线:
| 步骤 | 功能 | 说明 |
|---|---|---|
| 1. 调研 | LLM 剧情调研 | 自动搜索电影剧情,生成解说素材 |
| 2. 文案 | LLM 脚本生成 | 按风格(热血搞笑 / 历史悬疑 / 温情催泪)撰写分镜解说 |
| 3. 场景 | PySceneDetect 检测 | 自动切分电影画面为场景片段 |
| 4. 匹配 | Embedding 语义匹配 | 解说片段 ↔ 场景画面智能咬合,速度因子 clamp 防忽快忽慢 |
| 5. 旁白 | TTS 语音合成 | 默认 Edge-TTS(免费),支持 OpenAI / 小米 MiMo |
| 6. 字幕 | SRT 生成 + 多语言翻译 | --subtitle-lang en 一键翻译,支持原版 / 翻译 / 三语叠加 |
| 7. BGM | 背景音乐混音 | 自动混入,增益可调 |
| 8. 渲染 | MoviePy + FFmpeg | 合成最终视频,支持 16:9 / 9:16 竖屏 |
每一步都可以通过 YAML 配置独立开关。不需要的步骤直接跳过。
技术亮点
场景-解说智能匹配
用 embedding 余弦相似度匹配解说文案和电影画面,再用速度因子 clamp(0.5x ~ 3.0x)限制变速幅度。效果:解说说到「主角飙车」时,画面正好切到飙车场景,节奏自然不突兀。
多 TTS 引擎抽象层
统一 TTSProvider 协议,三个后端可切换:
- Edge-TTS(默认,免费,微软在线语音)
- OpenAI TTS(tts-1,6 种音色)
- 小米 MiMo(3 种模型:命名音色 / 声音克隆 / 声音设计)
切换只需改一个环境变量:MN_TTS_PROVIDER=mimo
三层配置架构
这是我觉得设计得最干净的地方:
| 层级 | 文件 | 管什么 | 数量 |
|---|---|---|---|
| env | .env |
LLM + TTS 凭证、端点、模型 | 21 个 |
| yaml | job.yaml |
所有流水线行为参数 | 32 个 |
| CLI | 命令行 | 运行时一次性参数 | 18 个 |
三层不交叉。改 BGM 增益去 yaml,改 API Key 去 env,临时跳过片段导出走 CLI --no-clips。每个示例文件都是单一真相源。
多语言字幕
LLM 翻译 + 分块重试 + 软降级。翻译失败不崩溃,原版兜底 + 警告。支持三种叠加模式:原版 / 翻译 / 双语。
项目数据
| 维度 | 数据 |
|---|---|
| 代码量 | 5000+ 行 Python |
| 测试 | 270+ 用例,CI 全绿(Python 3.10 / 3.11 / 3.12 / 3.13) |
| PyPI | 已发布,pip install movie-narrator |
| 协议 | AGPL-3.0 开源 |
| 版本 | v0.4.8(已打 tag) |
不只是 CLI — 还有 Web UI
mn web
浏览器打开 Gradio 界面,表单操作,支持视频/BGM 上传、实时进度、协作式取消、产物下载。不习惯命令行的用户也能用。
用 TRAE 做了什么?
这个项目从架构设计到实现,全程在 TRAE 中完成:
- 架构设计:用 TRAE 规划了 8 步流水线、三层配置边界、TTS 抽象层
- 代码实现:5000+ 行代码,包括 LLM 调用、TTS 合成、场景检测、视频渲染
- 测试 & CI:270+ 测试用例,GitHub Actions CI 矩阵(4 个 Python 版本)
- 文档:中英双语 README + ARCHITECTURE + ROADMAP + CHANGELOG
- 发布:PyPI 自动发布流水线,git tag 触发
TRAE 让我能专注在「做什么」而不是「怎么搭环境」上,从想法到发布全程在同一个工具里完成。
链接
- 参赛帖(投票地址): 【生活娱乐】Movie Narrator — 一句话生成电影解说视频
- GitHub: GitHub - zcbacxc/movie-narrator: 🎬 Generate narrated movie recap videos from a single prompt. · GitHub
- 演示视频: https://www.bilibili.com/video/BV1NZN86CEuD/
- 安装:
pip install movie-narrator
求投票!
如果你觉得「一句话生成电影解说视频」这个想法有意思,请到参赛帖给我投一票!
投票地址: 【生活娱乐】Movie Narrator — 一句话生成电影解说视频
也欢迎提问、提建议、分享你想解说的电影。每一个反馈都会让 Movie Narrator 更好。
谢谢你的支持! ![]()