一条流水线,五个阶段
MoneyPrinterTurbo 是一个用 Python 编写的开源短视频生成工具,输入一个主题或关键词,自动完成文案撰写、素材检索、配音、字幕和成片合成。项目 2024 年 3 月创建,采用 MIT 协议,目前累计 105,538 个 star、16,052 次 fork,过去一天新增 star 超过 1,200 个,贡献者 79 人。

整个生成过程在 app/services/task.py 的 _run_pipeline 中按固定顺序执行,每个阶段都有独立的进度上报和失败标记:
- preflight 预检:如果任务配置了背景音乐供应商,先校验 API Key 和提示词长度上限,避免流水线跑完 LLM、TTS 和素材下载之后才被第三方请求拒绝。这一步还会调用供应商提供的账号级前置检查。
- script 文案生成:调用配置的 LLM 生成视频脚本,进度到 10%。
- terms 关键词提炼:从脚本中提取英文检索词,供素材库搜索使用;使用本地素材时跳过。
- audio 配音:TTS 合成语音,同时产出字幕时间轴,进度到 20%。
- materials + video 素材下载与合成:按关键词拉取库存视频片段,配合 ffmpeg 完成裁切、拼接、字幕烧录和背景音乐混音。
流水线支持 stop_at 参数,可以在 script、terms、audio 三个断点提前结束,把中间产物当作独立接口用。这对只想用 AI 写脚本、自己配音的创作者是个实用设计。
四种入口,一套分层
代码按控制器、服务、模型三层组织,对外暴露四种使用方式:
- WebUI(Streamlit,端口 8501):完整配置面板
- API(FastAPI,端口 8080,自带
/docs和/redoc文档) - CLI(
cli.py --video-subject "主题"一条命令出片) - AI Agent:仓库内置一份
SKILL.md技能文档,支持读取技能文档的 Agent 读到后可以自动完成安装、配置和生成,只在缺 API Key 时向用户询问

API 文档基于 OpenAPI 3.1 规范,暴露了视频生成、字幕、音频、任务管理、BGM 上传、素材管理、脚本与检索词生成、社交发布元数据等独立端点,每个流水线阶段都可以单独调用。
WebUI 把配置分成文案、视频、音频、字幕四个模块。视频来源可选 Pexels、Pixabay、Coverr 或本地目录;拼接模式分「随机拼接」和「按文案顺序匹配画面」两种,后者通过 match_materials_to_script 配置项控制,开启后素材顺序会贴近文案结构,减少随机性。
Provider 注册表:20 多家 LLM,7 家 TTS
app/models/llm_provider.py 用一个元组注册表声明所有 LLM 供应商,每项包含默认模型、默认 Base URL、Key 申请入口和适配器类型。截取几条默认配置:
| Provider | 默认模型 | 默认 Base URL |
|---|---|---|
| Moonshot(默认) | kimi-k3 | api.moonshot.cn/v1 |
| OpenAI | gpt-5.5 | api.openai.com/v1 |
| DeepSeek | deepseek-v4-pro | api.deepseek.com |
| Google Gemini | gemini-3.1-pro-preview | 原生适配器 |
| 火山引擎方舟 | doubao-seed-2-1-turbo-260628 | ark.cn-beijing.volces.com/api/v3 |
| MiniMax | MiniMax-M3 | api.minimax.io/v1 |
| 小米 MiMo | mimo-v2.5-pro | platform.xiaomimimo.com/v1 |
注册表同时覆盖 Azure OpenAI、通义千问、xAI Grok,以及 Cloudflare AI Gateway、ModelScope、AIHubMix、LiteLLM、OneAPI、Ollama、Groq、Pollinations 等网关和本地运行环境。任何 OpenAI Chat Completions 兼容服务都能直接接入,model_name 和 base_url 留空则跟随注册表默认值。
TTS 侧默认使用免费的 Edge TTS(界面显示为 Azure TTS V1,无需 API Key),另外支持 Azure TTS V2、SiliconFlow、Google Gemini、小米 MiMo、ElevenLabs 和自托管 Chatterbox。字幕生成有两条路径:edge 模式直接复用 TTS 时间戳,速度快且不占 GPU;whisper 模式用本地 faster-whisper 转写音频,默认加载约 3 GB 的 large-v3 模型,追求时间轴精度可以换 1.6 GB 的 large-v3-turbo。
素材检索、语义排序与缓存
素材层的配置选项比表面看起来细。config.example.toml 里三个素材源的 API Key 都声明为列表,多个 Key 用逗号分隔即可自动轮换,规避单 Key 的限流;match_materials_to_script 开关控制素材与文案叙事顺序的对齐;还有一个可选的 TwelveLabs 集成,安装方式是 uv sync --extra twelvelabs,启用后用 Marengo 模型对检索词重排序(twelvelabs_rerank_terms),Pegasus 模型负责视频质量校验,本质是把「关键词匹配」升级为「语义匹配」。背景音乐除了本地 resource/songs 目录,还能接 Sonilo 按视频内容生成匹配的原创配乐。
服务层的 material_cache.py 和 cache_manager.py 负责把下载过的素材缓存下来,重复生成同主题视频时不必反复请求素材库。检索词重排序在 match_materials_to_script 开启时会被忽略,两条路径互斥,避免语义排序破坏文案对齐。
部署与硬件
本地部署要求 Python 3.11+,官方推荐用 uv 管理环境:git clone 后 uv sync --frozen,然后 sh webui.sh 起 WebUI 或 uv run python main.py 起 API。Docker 用户直接 docker compose -f docker-compose.release.yml up,拉取 GHCR 上的预构建镜像,无需本地编译。Windows 有解压即用的一键启动包,还有 Google Colab 笔记本可以零配置体验。
硬件门槛相当低:
| 项目 | 最低配置 | 推荐配置 | 理想配置 |
|---|---|---|---|
| CPU | 4 核 | 6 到 8 核 | 8 核及以上 |
| RAM | 4 GB | 8 GB | 16 GB及以上 |
| GPU | 非必须 | 4 GB 显存 | 8 GB 显存 |
如果主要依赖云端 LLM、云端 TTS 和在线素材源,CPU 与内存比 GPU 更重要;只有启用 faster-whisper 本地转写或批量生成时,GPU 才有明显收益。
生成完成后还能一键跨平台发布:注册 Upload-Post 账号并在 config.toml 里配置 upload_post_enabled = true 和平台列表(tiktok、instagram、youtube),视频合成完毕自动上传,YouTube 可见性可设 public、unlisted 或 private。代码里为这条发布链路写了完整的进程内状态机,包括崩溃后恢复中断发布任务的 recover_interrupted_cross_posts。
官方示例成片的效果
仓库提供了 18 支官方生成的示例视频,横竖屏各 9 支,时长 14 秒到 59 秒。竖屏示例「城市醒来的时刻」为中文配音 14 秒,「一粒种子的旅程」44 秒;横屏示例「A Brief History of Human Flight」达到 59 秒。这些成片可以直接在浏览器里播放验证效果。

从流水线结构可以看出这类工具的能力边界:画面全部来自 Pexels、Pixabay、Coverr 等库存视频库的检索结果,做的是「文案驱动的素材匹配与合成」,与直接生成画面的视频模型走的是两条路线。它适合资讯、科普、书单、产品介绍这类以口播和字幕为主的内容形态,4 核 4 GB 的机器就能跑,生成一条 20 秒竖屏视频的成本主要是 LLM 和 TTS 的 API 调用。对需要日更多条短视频的运营者,把主题列表写进脚本循环调用 CLI,就能组成一条无人值守的内容生产线。
版本状态
近期提交节奏密集:8 月 12 日发布 v1.3.4,同日合入 MiniMax TTS 支持,8 月 13 日改进 MiniMax 音色选择,8 月 17 日仍在更新项目资源。开源之外,作者围绕这个项目形成了商业生态:Kimi、火山引擎、CCSub、Infistar 等赞助商提供 API 服务,录咖基于它做了免部署的在线版,还有配套的磁盘清理工具 MangoDisk 作为第二个开源项目互相导流。GitHub Trending 上单日四位数的 star 增速,与这波 Agent Skill 生态的兴起直接相关。