





















MoneyPrinterTurbo 是一个基于 AI 的自动化短视频生成工具,用户只需提供一个视频主题或关键词,系统即可全自动完成:
项目采用完整的 MVC 架构,代码清晰易于维护,同时支持 Web 界面(Streamlit)和 API 接口(FastAPI)两种使用方式。
核心特性:
项目采用清晰的 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/ # 资源文件(字体、音乐)
| 技术组件 | 用途 | 选型理由 |
|---|---|---|
| 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 服务,简化切换逻辑 |
用户输入主题/关键词
↓
[LLM 服务] 生成视频文案
↓
[视频文案] 分段处理
↓
[Pexels API] 根据关键词下载视频素材
↓
[TTS 服务] 合成配音
↓
[Whisper/Edge] 生成字幕
↓
[MoviePy] 合成最终视频(素材 + 配音 + 字幕 + BGM)
↓
输出高清短视频
配置管理(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)
| 项目 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 4 核 | 6-8 核 |
| RAM | 4 GB | 8 GB |
| GPU | 非必须 | 4 GB 显存及以上 |
| 系统 | Windows 10 / macOS 11 / Linux | - |
注意: 若使用本地 Whisper 转录,GPU 会显著提升速度。仅使用云端 LLM/TTS/素材,则 CPU 和内存更重要。
方式一:使用 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 一键启动包
update.bat 更新到最新代码start.bat 启动注意:路径不要包含中文、特殊字符或空格。
方式三:Docker 部署
cd MoneyPrinterTurbo
docker-compose up
访问 http://0.0.0.0:8501 打开 Web 界面。
config.example.toml 复制为 config.tomlllm_provider 和对应的 API Keypexels_api_keys(用于获取视频素材)国内用户推荐: 使用 DeepSeek 或 Moonshot 作为 LLM 提供商,国内可直接访问,注册即送额度。
启动 Web 界面后:
通过 Web 界面:
通过 API 接口:
# 启动 API 服务
uv run python main.py
# 访问 API 文档
open http://127.0.0.1:8080/docs
批量生成视频:
在 Web 界面中,可以设置"生成数量",系统会批量生成多个视频,用户可以逐个预览并选择最满意的一个下载。
自定义视频片段时长:
通过调整"视频片段时长",可以控制素材切换频率,较短的时长(如 3-5 秒)适合快节奏视频,较长的时长(如 8-10 秒)适合深度内容。
使用本地素材:
项目支持使用本地视频素材,只需将素材放入指定目录,并在配置中设置素材来源为"本地"。
调整字幕样式:
在 config.toml 中可以详细配置字幕的字体、位置、颜色、大小、描边等参数,也可以使用 ImageMagick 支持的任意字体。
示例 1:生成竖屏短视频《生命的意义是什么》
生成效果:https://github.com/harry0703/MoneyPrinterTurbo/assets/4928832/112c9564-d52b-4472-99ad-970b75f66476
示例 2:生成横屏视频《为什么要运动》
生成效果:https://github.com/harry0703/MoneyPrinterTurbo/assets/4928832/271f2fae-8283-44a0-8aa0-0ed8f9a6fa87
原因: 系统未安装 ffmpeg 或路径未配置。
解决方案:
config.toml 中配置 ffmpeg_path:[app]
ffmpeg_path = "C:\\Users\\yourname\\Downloads\\ffmpeg.exe"
原因: ImageMagick 默认禁止读取临时文件。
解决方案:
编辑 ImageMagick 的配置文件 policy.xml,找到 pattern="@" 的条目,将 rights="none" 改为 rights="read|write"。
原因: 系统文件打开数限制过低。
解决方案:
# 查看当前限制
ulimit -n
# 调高限制
ulimit -n 10240
原因: 国内无法访问 HuggingFace,无法自动下载 whisper-large-v3 模型。
解决方案: 从百度网盘或夸克网盘手动下载模型:
下载后解压到 MoneyPrinterTurbo/models/whisper-large-v3 目录。
原因: 默认使用 edge 模式生成字幕,速度快但质量可能不稳定。
解决方案:
在 config.toml 中将 subtitle_provider 切换为 whisper:
[subtitle]
provider = "whisper"
MoneyPrinterTurbo 是一个功能完整、架构清晰的开源 AI 视频生成工具,其核心优势在于:
适用场景:
项目前景: 随着 LLM 和 TTS 技术的不断进步,此类自动化视频生成工具将越来越成熟,有望成为内容创作者的标配工具。
相关资源:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。