一、项目概述
MoneyPrinterTurbo 是一个基于 AI 的自动化短视频生成工具,用户只需提供一个视频主题或关键词,系统即可全自动完成:
- 视频文案 AI 自动生成
- 视频素材抓取(无版权高清素材)
- 视频字幕生成与渲染
- 背景音乐匹配
- 高清短视频合成
项目采用完整的 MVC 架构,代码清晰易于维护,同时支持 Web 界面(Streamlit)和 API 接口(FastAPI)两种使用方式。
核心特性:
- 支持竖屏 9:16 (1080x1920) 和横屏 16:9 (1920x1080) 多种视频尺寸
- 支持批量视频生成,可一次生成多个视频并选择最满意的一个
- 支持中文和英文视频文案
- 支持多种语音合成服务,可实时试听效果
- 支持字幕自定义(字体、位置、颜色、大小、描边)
- 支持背景音乐配置(随机或指定文件,可调节音量)
- 支持多种 LLM 服务商:OpenAI、Moonshot、Azure、通义千问、Google Gemini、Ollama、DeepSeek、文心一言等
二、技术原理
2.1 系统架构
项目采用清晰的 MVC 架构:
MoneyPrinterTurbo/
├── app/
│ ├── asgi.py # FastAPI ASGI 入口
│ ├── config.py # 配置管理
│ ├── services/ # 业务逻辑层(Model)
│ ├── api/ # API 路由(Controller)
│ └── utils/ # 工具函数
├── webui/
│ └── Main.py # Streamlit Web 界面(View)
├── main.py # API 服务启动入口
└── resource/ # 资源文件(字体、音乐)
2.2 核心技术栈与选型理由
| 技术组件 | 用途 | 选型理由 |
|---|---|---|
| moviepy 2.1.2 | 视频剪辑与合成 | 强大的 Python 视频处理库,支持剪辑、合成、字幕、音频混合 |
| Streamlit 1.45.0 | Web UI | 快速构建交互式界面,无需前端知识,适合工具型应用 |
| FastAPI 0.115.6 | API 服务 | 高性能异步框架,自动生成 OpenAPI 文档,便于集成 |
| edge-tts 7.2.7 | 语音合成 | 免费、无需 API Key、支持多种语言和声音 |
| faster-whisper 1.1.0 | 字幕生成 | 基于 OpenAI Whisper,本地运行,质量可靠 |
| litellm 1.60.0 | 多 LLM 统一接口 | 统一调用多种 LLM 服务,简化切换逻辑 |
2.3 视频生成数据流
用户输入主题/关键词
↓
[LLM 服务] 生成视频文案
↓
[视频文案] 分段处理
↓
[Pexels API] 根据关键词下载视频素材
↓
[TTS 服务] 合成配音
↓
[Whisper/Edge] 生成字幕
↓
[MoviePy] 合成最终视频(素材 + 配音 + 字幕 + BGM)
↓
输出高清短视频
2.4 关键代码分析
配置管理(app/config.py):
项目使用 TOML 格式的配置文件 config.toml,通过 pyyaml 类似的解析方式加载配置:
# 配置项示例
[app]
imagemagick_path = ""
ffmpeg_path = ""
[llm]
provider = "deepseek" # openai, moonshot, azure, deepseek, etc.
api_key = "your-api-key"
model = "deepseek-chat"
[pexels]
api_keys = ["your-pexels-api-key"]
[subtitle]
provider = "edge" # edge, whisper
视频合成核心逻辑:
使用 moviepy 进行视频合成,关键步骤:
# 1. 加载视频素材
clip = VideoFileClip(material_path)
# 2. 添加字幕
subtitle_clip = TextClip(
text=subtitle_text,
font=font_path,
fontsize=font_size,
color=font_color,
stroke_color=stroke_color,
stroke_width=stroke_width
)
# 3. 合成配音
audio_clip = AudioFileClip(voice_path)
final_clip = clip.with_audio(audio_clip)
# 4. 添加背景音乐
bgm_clip = AudioFileClip(bgm_path).with_volume_scaled(bgm_volume)
final_audio = CompositeAudioClip([audio_clip, bgm_clip])
final_clip = final_clip.with_audio(final_audio)
三、安装与快速开始
3.1 环境要求
| 项目 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 4 核 | 6-8 核 |
| RAM | 4 GB | 8 GB |
| GPU | 非必须 | 4 GB 显存及以上 |
| 系统 | Windows 10 / macOS 11 / Linux | - |
注意: 若使用本地 Whisper 转录,GPU 会显著提升速度。仅使用云端 LLM/TTS/素材,则 CPU 和内存更重要。
3.2 快速安装(推荐方式)
方式一:使用 uv(推荐,MacOS / Linux)
# 克隆仓库
git clone https://github.com/harry0703/MoneyPrinterTurbo.git
cd MoneyPrinterTurbo
# 安装依赖(自动创建虚拟环境)
uv python install 3.11
uv sync --frozen
# 启动 Web 界面
uv run streamlit run ./webui/Main.py --browser.gatherUsageStats=False
方式二:Windows 一键启动包
- 下载百度网盘或 Google Drive 的一键启动包(v1.2.6)
- 解压后双击
update.bat更新到最新代码 - 双击
start.bat启动
注意:路径不要包含中文、特殊字符或空格。
方式三:Docker 部署
cd MoneyPrinterTurbo
docker-compose up
访问 http://0.0.0.0:8501 打开 Web 界面。
3.3 配置 LLM 和 Pexels API
- 将
config.example.toml复制为config.toml - 配置
llm_provider和对应的 API Key - 配置
pexels_api_keys(用于获取视频素材)
国内用户推荐: 使用 DeepSeek 或 Moonshot 作为 LLM 提供商,国内可直接访问,注册即送额度。
3.4 最简运行示例
启动 Web 界面后:
- 打开浏览器访问 http://localhost:8501
- 在左侧输入框输入视频主题,例如:“如何增加生活的乐趣”
- 选择视频尺寸(竖屏 9:16 或横屏 16:9)
- 点击"开始生成"
- 等待系统自动生成视频文案、素材、字幕和配音
- 预览并下载生成的视频
四、使用方法与实战
4.1 基础用法
通过 Web 界面:
- 输入主题或粘贴自定义文案
- 选择语音、字幕样式、视频尺寸
- 点击生成,等待合成完成
通过 API 接口:
# 启动 API 服务
uv run python main.py
# 访问 API 文档
open http://127.0.0.1:8080/docs
4.2 进阶用法
批量生成视频:
在 Web 界面中,可以设置"生成数量",系统会批量生成多个视频,用户可以逐个预览并选择最满意的一个下载。
自定义视频片段时长:
通过调整"视频片段时长",可以控制素材切换频率,较短的时长(如 3-5 秒)适合快节奏视频,较长的时长(如 8-10 秒)适合深度内容。
使用本地素材:
项目支持使用本地视频素材,只需将素材放入指定目录,并在配置中设置素材来源为"本地"。
调整字幕样式:
在 config.toml 中可以详细配置字幕的字体、位置、颜色、大小、描边等参数,也可以使用 ImageMagick 支持的任意字体。
4.3 实际项目示例
示例 1:生成竖屏短视频《生命的意义是什么》
- 主题:生命的意义是什么
- 视频尺寸:竖屏 9:16 (1080x1920)
- 语音:Azure 语音(更真实)
- 字幕:whisper(质量更可靠)
- 背景音乐:自动随机选择
生成效果:https://github.com/harry0703/MoneyPrinterTurbo/assets/4928832/112c9564-d52b-4472-99ad-970b75f66476
示例 2:生成横屏视频《为什么要运动》
- 主题:为什么要运动
- 视频尺寸:横屏 16:9 (1920x1080)
- 语音:edge-tts(速度快)
- 字幕:edge(速度快)
- 背景音乐:指定轻音乐文件
生成效果:https://github.com/harry0703/MoneyPrinterTurbo/assets/4928832/271f2fae-8283-44a0-8aa0-0ed8f9a6fa87
五、常见问题与解决方案
❓ RuntimeError: No ffmpeg exe could be found
原因: 系统未安装 ffmpeg 或路径未配置。
解决方案:
- 从 https://www.gyan.dev/ffmpeg/builds/ 下载 ffmpeg
- 解压后,在
config.toml中配置ffmpeg_path:
[app]
ffmpeg_path = "C:\\Users\\yourname\\Downloads\\ffmpeg.exe"
❓ ImageMagick 安全策略阻止操作
原因: ImageMagick 默认禁止读取临时文件。
解决方案:
编辑 ImageMagick 的配置文件 policy.xml,找到 pattern="@" 的条目,将 rights="none" 改为 rights="read|write"。
❓ OSError: [Errno 24] Too many open files
原因: 系统文件打开数限制过低。
解决方案:
# 查看当前限制
ulimit -n
# 调高限制
ulimit -n 10240
❓ Whisper 模型下载失败
原因: 国内无法访问 HuggingFace,无法自动下载 whisper-large-v3 模型。
解决方案: 从百度网盘或夸克网盘手动下载模型:
下载后解压到 MoneyPrinterTurbo/models/whisper-large-v3 目录。
❓ 生成的字幕质量不好
原因: 默认使用 edge 模式生成字幕,速度快但质量可能不稳定。
解决方案:
在 config.toml 中将 subtitle_provider 切换为 whisper:
[subtitle]
provider = "whisper"
六、总结
MoneyPrinterTurbo 是一个功能完整、架构清晰的开源 AI 视频生成工具,其核心优势在于:
- 全流程自动化:从文案生成到视频合成,无需人工干预
- 灵活的可配置性:支持多种 LLM、TTS、字幕方案,用户可根据需求自由选择
- 友好的用户界面:Web 界面和 API 接口双重支持,适合不同使用场景
- 丰富的自定义选项:视频尺寸、语音、字幕样式、背景音乐均可自定义
适用场景:
- 自媒体短视频批量生产
- 营销视频快速生成
- 教育内容视频化
- 个人创意视频制作
项目前景: 随着 LLM 和 TTS 技术的不断进步,此类自动化视频生成工具将越来越成熟,有望成为内容创作者的标配工具。
相关资源:
- GitHub 仓库:https://github.com/harry0703/MoneyPrinterTurbo
- 在线体验(录咖):https://reccloud.cn(中文版)、https://reccloud.com(英文版)
- Docker 镜像:https://hub.docker.com/ 搜索 MoneyPrinterTurbo