MoneyPrinterTurbo:从关键词到成片,AI 短视频生成一站式教程
【免费下载链接】MoneyPrinterTurbo利用 AI 大模型和自动化工作流,根据主题或关键词一键生成高清短视频。Generate HD short videos from a topic or keyword with an automated AI workflow.项目地址: https://gitcode.com/GitHub_Trending/mo/MoneyPrinterTurbo
MoneyPrinterTurbo是一款AI 短视频生成工具:输入一个主题,它自动写文案、找无版权素材、配音、加字幕并合成成片,专给自媒体日更党、不想自己剪辑的运营人省时间。
它是什么:一个关键词进、成片出的自动化工厂
适合谁用?做口播类短视频、需要每天稳定产出却没时间剪片的博主。整个项目是MVC 架构(前端界面、业务逻辑、数据存取各管一摊的写法),MIT 协议,给你两个入口,点鼠标和写代码二选一:
- Web 入口:Streamlit 页面,参数全部可视化,适合手动操作;
- API 入口:FastAPI 服务,带在线调试文档,方便把视频生成嵌进自己的脚本。
两个入口跑的是同一套内部流程,产物一致。
部署:从克隆到出页面的四步
开工前先备齐下面三样东西:
- Pexels API Key:素材来源,在 Pexels 官网免费申请,支持填多个 Key 轮换来避开限流;
- 大模型 Key:国内网络环境推荐DeepSeek或Moonshot,直连不用代理,注册即送额度;
- Python 环境:建议 3.11,用 conda 隔离。
# 克隆仓库,建 3.11 隔离环境并装依赖 git clone https://gitcode.com/GitHub_Trending/mo/MoneyPrinterTurbo cd MoneyPrinterTurbo cp config.example.toml config.toml conda create -n mpt python=3.11 && conda activate mpt pip install -r requirements.txt sh webui.sh # Windows 用户双击 webui.batconfig.toml里真正必须改的只有素材 Key、大模型选择和模型 Key 三处:
[app] pexels_api_keys = ["你的PexelsKey"] # 素材来源,多个Key用逗号隔开 llm_provider = "deepseek" # 国内直连的大模型 deepseek_api_key = "你的APIKey"跑通后两个入口的地址如下,MoneyPrinterTurbo 部署到这里就结束:
| 入口 | 启动方式 | 访问地址 |
|---|---|---|
| Web 界面 | sh webui.sh | http://localhost:8501 |
| REST API | python main.py | http://localhost:8080/docs |
另外两个隐藏依赖:ffmpeg 会自动下载,ImageMagick 需自行安装(Linux 一般自带,Windows 可能要手动配路径)。国内环境图省事可直接docker-compose up,Python 环境和 ImageMagick 都不用碰。
内部逻辑:原料→半成品→成品 三道工序
把整条流程想象成做菜:原料是主题词,半成品是文案和素材,成品是最终 mp4。三道工序各自独立,任何一道的产物都落在storage/tasks/<task_id>/里,方便单独取用。
工序一 语言关:先把话说对
任务编排模块 先让大模型按主题写出口播文案,紧接着从文案里反抽出 5 个英文搜索词,拿这些词去素材库找画面。成片好不好看,一半取决于这 5 个词抽得准不准——词偏了,画面就文不对题。不想听天由命的话,可以直接手动指定video_terms跳过这一步。
工序二 素材关:给视频配嗓子、配画面
字幕有两条路,选哪条取决于你在乎速度还是准确率:
| 模式 | 速度 | 质量 | 配置成本 |
|---|---|---|---|
| edge(默认) | 快 | 偶尔不稳,失败会自动降级到 whisper | 零配置,直接用 |
| whisper | 慢 | 识别更可靠 | 首次要下载约 3GB 的 large-v3 模型,CPU/GPU 都能跑 |
语音合成默认走免费的Edge TTS,语音服务 直接拿它的词边界时间戳生成字幕,不额外吃配置。画面侧,素材服务 按搜索词去Pexels或Pixabay查视频,按目标分辨率(比如 9:16 对应 1080x1920)过滤,多个 Key 轮流使用;下载过的素材缓存在storage/cache_videos,再做同主题视频基本不用重复拉取。
工序三 合成关:剪片、贴字、混音
最后一步交给MoviePy:所有素材按video_clip_duration(默认 5 秒)切成小段再拼接,顺序支持随机和固定两种;批量生成时每条片用的随机顺序不同,等于一次产出几个候选版本让你挑。淡入淡出、滑动这类转场在 转场工具 里实现。音轨上,旁白默认音量 1.0,背景音乐默认 0.2,音乐取自resource/songs目录,随机或指定都行,最后字幕烧进画面,输出final-<序号>.mp4。
出第一条成片:两条路各走一遍
走 Web 界面,四步搞定:
- "视频主题"填入主题词,文案区留空,让它自动写;
- 尺寸选9:16 竖屏,语音挑
zh-CN-XiaoxiaoNeural-Female,先点试听; - 字幕保持开启(edge 模式),背景音乐保持随机,片段时长保持 5 秒;
- 点生成,等两到五分钟,成片就在
storage/tasks/<task_id>/final-1.mp4。
走 API,提交任务拿task_id,再轮询任务状态取结果:
# 提交生成任务,一次出 2 条不同素材顺序的版本 curl -X POST http://localhost:8080/api/v1/videos \ -H "Content-Type: application/json" \ -d '{"video_subject":"金钱的作用","video_aspect":"9:16","video_count":2,"subtitle_enabled":true}'# 任务完成后查询状态,videos 字段就是可直接播放的成片地址 curl http://localhost:8080/api/v1/tasks/<task_id>所有接口都能在在线文档页直接点开试:
出错先看这张表
四个高频报错,对着查:
| 报错 | 常见原因 | 处理办法 |
|---|---|---|
AttributeError: 'str' object has no attribute 'choices' | 大模型调用失败,SDK 把错误字符串当响应返回,多是网络问题 | 换DeepSeek/Moonshot直连,或给 OpenAI 配openai_base_url代理 |
RuntimeError: No ffmpeg exe could be found | ffmpeg 自动下载失败,通常网络受限 | 手动下载 ffmpeg,在[app]里设ffmpeg_path指向实际路径 |
ImageMagick 报安全策略阻止操作@/tmp/... | Linux 发行版policy.xml默认禁止读写@临时文件 | 把pattern="@"那条的rights="none"改成rights="read\|write" |
OSError: [Errno 24] Too many open files | 合成时并发打开的文件数超系统上限 | ulimit -n 10240调高文件描述符上限后重跑 |
排不出来时优先怀疑两头:Key 是否真的生效、依赖是否真的装上。
进阶:改流水线与轻量用法
API 侧的任务状态默认存在内存里,重启即丢,只适合单实例;要多实例共享或跑高并发,把config.toml的enable_redis设为 true,状态会切到 Redis,并发上限由max_concurrent_tasks(默认 5)控制。还有个好用的小设计:流水线支持stop_at参数,可以停在文案、搜索词、音频、字幕、素材任意一环——API 里"只生成音频""只生成字幕"这些轻量接口就是这么实现的,只想要文案或配音的话,能省掉最耗时的素材下载。README 的后期计划还列着GPT-SoVITS配音、更多素材来源、转场效果优化、自动上传 YouTube 等方向,盯着仓库更新就行。
先把第一条 9:16 成片跑通,确认整条流程没问题,再去玩批量出片和自定义参数,节奏会顺很多。
【免费下载链接】MoneyPrinterTurbo利用 AI 大模型和自动化工作流,根据主题或关键词一键生成高清短视频。Generate HD short videos from a topic or keyword with an automated AI workflow.项目地址: https://gitcode.com/GitHub_Trending/mo/MoneyPrinterTurbo
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考