跳到主内容
快讯直播
AI智模界
教程

MoneyPrinterTurbo 安装教程:本地跑通短视频流水线

适用场景

这套方案适合三类人:想批量做口播类短视频但不想按条付费的运营和内容创作者;手上已经有大模型 API Key、希望把"写文案 → 配音 → 配画面 → 出成片"整条链路放在自己机器上跑的 AI 从业者;以及想把这条流水线接进内部系统、做二次开发的工程同学。

它解决的问题很具体:给一个主题,自动生成一段文案,用 TTS 合成旁白,从素材站拉取匹配的横屏/竖屏视频片段,烧上字幕,最后合成为一个可以直接发布的 mp4。整个流程本地执行,成片在你自己硬盘上,中途每一步都能替换成自己的模型或素材源。

环境与前置条件

  • 操作系统:Windows 10/11、macOS、主流 Linux 发行版均可。Windows 上需要注意的坑多一些,下文会单独说明。
  • Python:官方 README 会写当前要求的版本(一般是 3.10/3.11 这一个区间),以官方文档当前版本为准。不要图省事用系统自带的老版本 Python,也不要盲目上最新的 Python 大版本,依赖兼容性更容易出问题。
  • 包管理:推荐 conda 或 venv 做环境隔离,避免污染全局环境。
  • ffmpeg:硬性依赖,必须能被命令行直接调用。
  • ImageMagick:Windows 上跑 moviepy 渲染字幕经常需要,建议一并装好。
  • 磁盘:预留 10 GB 以上。素材会缓存到项目目录里,跑几十条之后占用会明显增长。
  • 内存:8 GB 起步,16 GB 更稳。视频合成阶段是内存和 CPU 密集操作。
  • 显卡:非必需。默认链路(云端大模型 + Edge TTS)纯 CPU 就能跑。只有当你想用本地 LLM 或本地语音模型时,才需要关注显存,具体需求以所选模型的官方说明为准。
  • 网络:需要能访问大模型接口、TTS 接口和素材站 API。如果网络环境需要代理,提前准备好代理地址,项目配置里通常有对应的代理项。
  • 需要提前准备的密钥:一个大模型 API Key;一个素材站 API Key(Pexels 一类,免费额度即可起步);TTS 如果不用免费的 Edge TTS,还需要 Azure 语音等服务的 Key。

分步骤部署

第 1 步:确认 Python 环境

先确认版本和路径,很多后续报错都源于"装到了另一个 Python 上"。

```bash

python --version

which python # Windows 用: where python

```

确认版本落在官方要求区间后,创建独立环境:

```bash

conda create -n mpt python=3.11 -y

conda activate mpt

```

后面的所有命令都要在这个环境里执行。命令行提示符前面出现 (mpt) 就算成功。

第 2 步:获取项目代码

从项目官方页面复制仓库地址,克隆到本地:

```bash

git clone <官方仓库地址> MoneyPrinterTurbo

cd MoneyPrinterTurbo

ls

```

看到 requirements.txtconfig.example.tomlwebui.py 这类文件,说明代码拿对了。不同版本根目录下的入口脚本名可能略有差异,以官方文档为准。

第 3 步:安装 Python 依赖

```bash

python -m pip install --upgrade pip

pip install -r requirements.txt

```

这一步在装 moviepy、streamlit、edge-tts 等一堆库,耗时取决于网速。成功的标志是最后几行没有 ERROR,并且出现 Successfully installed ...

如果下载慢,可以临时指定国内镜像源(镜像地址以镜像站官方页面为准):

```bash

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

```

第 4 步:安装 ffmpeg 与 ImageMagick

按平台选一条:

```bash

macOS

brew install ffmpeg imagemagick

Ubuntu / Debian

sudo apt update && sudo apt install -y ffmpeg imagemagick

用 conda 统一装(三个平台都适用)

conda install -c conda-forge ffmpeg imagemagick -y

```

Windows 用户如果用安装包装 ImageMagick,安装向导里有一个 Install legacy utilities (e.g. convert) 选项,务必勾上,否则 moviepy 会找不到 convert 命令。ffmpeg 解压后要把 bin 目录加进系统 PATH,加完要重开一个终端才生效。

验证:

```bash

ffmpeg -version

convert --version # Windows 上可能是 magick --version

```

能打印出版本信息即可。

第 5 步:生成配置文件

```bash

cp config.example.toml config.toml # Windows: copy config.example.toml config.toml

```

config.toml 是真正生效的配置,config.example.toml 是模板。不要直接改模板文件,因为将来更新代码时模板会被覆盖。

第 6 步:配置大模型

最省事的方式是先启动 WebUI,在设置页里可视化填写 Key 和模型名,保存后会自动写回 config.toml。想直接改文件也可以,配置项大致长这样(字段名以当前版本的 config.example.toml 注释为准):

```toml

llm_provider = "openai" # 兼容 OpenAI 协议的厂商一般都能选这一类

openai_api_key = "sk-你的key"

openai_base_url = "https://你的服务商接口地址/v1"

openai_model_name = "你的模型名"

```

三个要点:base_url 有的厂商要带 /v1、有的不要,填错就是 404;模型名必须和厂商文档里完全一致;如果用 Azure、通义、Gemini、Ollama 等,选对应的 provider 而不是硬套 OpenAI 字段。

填完先做一次连通性测试,把问题挡在生成视频之前:

```bash

curl -sS https://你的接口地址/v1/models \

-H "Authorization: Bearer 你的key" | head

```

能返回一串 JSON 模型列表,说明网络和 Key 都没问题。

第 7 步:配置 TTS

预算为零的话用 Edge TTS,不用申请 Key,中文音色例如:

  • zh-CN-XiaoxiaoNeural(女声)
  • zh-CN-YunxiNeural(男声)
  • zh-CN-YunjianNeural(男声,偏解说感)

单独测一下 edge-tts 能不能出声:

```bash

python -c "import edge_tts, asyncio; asyncio.run(edge_tts.Communicate('这是一段测试语音','zh-CN-XiaoxiaoNeural').save('t.mp3'))"

```

目录里出现 t.mp3 并且能播放,就说明 TTS 链路通了。如果要用 Azure 语音,则改配 azure_speech_key / azure_speech_region 一类的字段。

第 8 步:配置素材来源

在素材站官网申请一个免费 API Key(地址以官方页面为准),填进 config.toml 对应的 key 字段,多个 key 一般用英文逗号分隔、轮询使用。如果 API 走不通,也可以改用项目支持的本地素材上传方式,具体能力以当前版本为准。

第 9 步:启动 WebUI

```bash

streamlit run webui.py

```

终端出现 You can now view your Streamlit app in your browserhttp://localhost:8501 即启动成功。浏览器打开这个地址就能看到界面。局域网内其他机器要访问,加参数:

```bash

streamlit run webui.py --server.address 0.0.0.0 --server.port 8501

```

项目同时提供命令行入口(不同版本可能是 main.pycli.py),可以用 python main.py --help 查看可用参数,方便做自动化批处理。

验证部署是否成功

按顺序做三层验证,从轻到重:

```bash

1. 依赖是否齐全

python -c "import moviepy, edge_tts, streamlit; print('deps ok')"

2. 外部工具是否就位

ffmpeg -version | head -n 1

```

两条都正常输出后,在 WebUI 里跑一条"最小可用"任务,参数尽量保守:

  • 视频时长:15~30 秒
  • 文案:100 字左右
  • 分辨率:先用默认或较低档
  • 语音:Edge TTS

点击生成后,界面上会出现任务进度。跑完在输出目录(通常是 storage/tasks/<任务 id>/ 下面,以当前版本为准)能看到一个最终的 mp4 文件,能正常播放、有画面有配音有字幕,就算整条流水线跑通了。

常见报错与解决

1. ModuleNotFoundError: No module named 'moviepy'(或 streamlit / edge_tts)

→ 原因:依赖装到了别的 Python 解释器上,或者 conda 环境没激活。

→ 解决:

```bash

conda activate mpt

python -m pip install -r requirements.txt

python -c "import moviepy; print(moviepy.__file__)"

```

输出的路径应该在你当前 conda 环境目录里。

2. ImageMagick is not installed on your computer.convert: command not found

→ 原因:moviepy 渲染文字需要 ImageMagick,系统里没有,或者装的是没有 convert 的新版本。

→ 解决:安装后在 config.toml 里把 imagemagick_path 指向实际安装目录(Windows 下目录名以你的安装结果为准):

```bash

sudo apt install -y imagemagick # macOS 用 brew install imagemagick

convert --version

```

```toml

imagemagick_path = "C:\\Program Files\\ImageMagick"

```

3. ffmpeg: command not found / FileNotFoundError: ffmpeg

→ 原因:没装 ffmpeg,或者装了但不在 PATH 里。

→ 解决:

```bash

conda install -c conda-forge ffmpeg -y

ffmpeg -version

```

Windows 加完 PATH 后要重开终端

4. 生成文案时报 401 Unauthorized / invalid api key / 模型不存在

→ 原因:Key 错、base_url 少了或多写了 /v1、模型名拼错、账户余额或额度不足。

→ 解决:用 curl 单独打一次接口,把报错定位在模型侧而不是项目侧:

```bash

curl -sS https://你的接口地址/v1/chat/completions \

-H "Authorization: Bearer 你的key" \

-H "Content-Type: application/json" \

-d '{"model":"你的模型名","messages":[{"role":"user","content":"ping"}]}'

```

5. Edge TTS 报 No audio was received 或连接超时

→ 原因:edge-tts 依赖在线语音服务,网络不通或代理没生效。

→ 解决:先用第 7 步那行 python -c 单独测;确认网络后,给项目配置代理项,或者改用 Azure 语音等带 Key 的引擎。

6. 素材下载数量为 0,或提示素材站 API 报错

→ 原因:API Key 未填、超额、被限流,或网络无法访问素材站。

→ 解决:换一个可用 Key;配置代理;或改用本地素材文件上传,绕开外部接口。

7. 字幕显示成方框或者乱码

→ 原因:系统缺少中文字体,或项目中指定的字体名与实际字体文件不匹配。

→ 解决:把中文字体文件(思源黑体一类)放进项目的字体目录,并在配置里把字幕字体名改成该字体的实际名称,重启 WebUI 后再生成。

8. Port 8501 is already in use

→ 原因:端口被占用,可能是上一次的进程没退干净。

→ 解决:

```bash

streamlit run webui.py --server.port 8502

```

后续维护

配置备份config.toml 里存着你的所有密钥,单独备份一份到安全位置,权限设为仅本人可读。这个文件绝对不要提交进 git 仓库,git status 时确认它在忽略列表里。

升级:更新前先备份 config.toml,然后:

```bash

git pull

pip install -r requirements.txt

```

依赖列表和新配置项都可能变化,升级后对着官方 README 和更新记录核一遍配置字段有没有改名的。如果 git pull 冲突,不要强行覆盖自己的 config.toml

日志与长期运行:前台跑容易随终端关闭而中断,建议用 tmux 或 systemd 托管,并把输出重定向到文件:

```bash

streamlit run webui.py >> mpt.log 2>&1 &

tail -f mpt.log

```

排错时主要看这几类信息:大模型返回的原始报错、素材下载数量、ffmpeg 的合成报错、以及生成目录里是否留下了中间产物(音频、字幕、切片视频),哪一步的产物缺失,问题就出在哪一步。

磁盘与配额:定期清理 storage 下的历史任务和缓存素材,du -sh storage 看一眼占用。如果用的是付费 API,留意余额和限流,最好在配置里放多个 Key 做轮询。

安全:不要把 8501 端口直接暴露到公网。需要远程访问时,走反向代理并加上鉴权。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。