惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threat Research - Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
V
Vulnerabilities – Threatpost
GbyAI
GbyAI
P
Proofpoint News Feed
L
LINUX DO - 热门话题
P
Palo Alto Networks Blog
A
About on SuperTechFans
T
Tenable Blog
M
MIT News - Artificial intelligence
IT之家
IT之家
I
Intezer
D
DataBreaches.Net
爱范儿
爱范儿
T
Threatpost
C
CERT Recently Published Vulnerability Notes
云风的 BLOG
云风的 BLOG
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
K
Kaspersky official blog
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
Y
Y Combinator Blog
Cyberwarzone
Cyberwarzone
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Darknet – Hacking Tools, Hacker News & Cyber Security
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
Spread Privacy
Spread Privacy
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
AWS News Blog
AWS News Blog
博客园 - 聂微东
C
Check Point Blog
S
Securelist
有赞技术团队
有赞技术团队
雷峰网
雷峰网
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
MongoDB | Blog
MongoDB | Blog
D
Docker
G
GRAHAM CLULEY
T
The Exploit Database - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tailwind CSS Blog
L
Lohrmann on Cybersecurity
G
Google Developers Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LangChain Blog

博客园 - zhang-yd

今日开源[第16期]soxoj/maigret 论文解读-《Dual-Kernel Graph Community Contrastive Learning》 今日开源[第15期]agent-skills 论文解读-《Hyperbolic Continuous Structural Entropy for Hierarchical Clustering》 今日开源[第14期]google/skills 今日开源[第13期]turbovec 今日开源[第12期]LiteParse 今日开源[第11期]OmniVoice-Studio 今日开源[第10期]ds4(DwarfStar) 今日开源[第9期]graphify 今日开源[第8期]open-notebook 今日开源[第7期]spec-kit 今日开源[第6期]Production Agentic RAG Course 今日开源[第5期]Headroom 今日开源[第4期]OpenTalking 今日开源[第3期]train-llm-from-scratch 今日开源[第2期]Project N.O.M.A.D. LearningCell代码解读 论文解读-《It Takes a Graph to Know a Graph Rewiring for Homophily with a Reference Graph》 论文解读-《Mitigating Over-Squashing in Graph Neural Networks by Spectrum-Preserving Sparsification》 论文解读-《Make Heterophily Graphs Better Fit GNN A Graph Rewiring Approach》 论文解读-《Temporal Graph Rewiring with Expander Graphs 》 论文解读-《Understanding Oversquashing in GNNs through the Lens of Effective Resistance》 论文解读-《Homophily-oriented Heterogeneous Graph Rewiring》 论文-Deep appearance modeling: A survey 代码阅读笔记-nanoclaw 代码阅读笔记-OpenManus 论文解读-《An Empirical Evaluation of Rewiring Approaches in Graph Neural Networks》 论文解读-《Probabilistic Graph Rewiring via Virtual Nodes》 论文解读-《Probabilistically Rewired Message-Passing Neural Networks》 论文解读-《Joint Graph Rewiring and Feature Denoising via Spectral Resonance》 代码阅读笔记-nanobot 论文解读-《Oversquashing in GNNs through the lens of information contraction and graph expansion》 论文解读-《GNNs Getting ComFy Community and Feature Similarity Guided Rewiring》 - zhang-yd 论文解读-《PANDA Expanded Width-Aware Message Passing Beyond Rewiring》 代码阅读笔记-AiPyApp 论文解读-《Deep Graph Contrastive Representation Learning》 论文解读-《Community-Invariant Graph Contrastive Learning》 论文解读-《DiffWire Inductive Graph Rewiring via the Lovász Bound》 论文解读-《The Effectiveness of Curvature-Based Rewiring and the Role of Hyperparameters in GNNs Revisited》 论文解读-《Over-Squashing in GNNs and Causal Inference of Rewiring Strategies》 论文解读-《Uncertainty-Aware Graph Structure Learning》
今日开源[第1期]MoneyPrinterTurbo
zhang-yd · 2026-06-01 · via 博客园 - zhang-yd

MoneyPrinterTurbo 项目深度分析

分析日期:2026-06-01
项目地址:https://github.com/harry0703/MoneyPrinterTurbo
最新版本:v1.2.9(2026-05-30)
开源协议:MIT License


一、项目介绍

1.1 项目概述

MoneyPrinterTurbo 是一个基于 AI 大模型的全自动短视频生成工具。只需提供一个视频主题关键词,即可全自动完成以下工作流程:

  1. AI 自动生成视频文案(脚本)
  2. 自动搜索并下载高清无版权视频素材
  3. 自动生成视频字幕
  4. 自动合成背景音乐
  5. 最终输出一个高清短视频

项目采用完整的 MVC 架构,代码结构清晰,同时提供 Web 界面(Streamlit)和 API 接口(FastAPI)两种使用方式。

1.2 项目地址

类型 地址
GitHub 仓库 https://github.com/harry0703/MoneyPrinterTurbo
在线使用(中文) https://reccloud.cn(录咖平台,基于该项目)
在线使用(英文) https://reccloud.com
API 文档(本地) http://127.0.0.1:8080/docs(Swagger)
WebUI(本地) http://127.0.0.1:8501(Streamlit)

注:项目没有独立官网,录咖平台是基于该项目的免费在线版。

1.3 项目示意图

WebUI 界面:

WebUI 界面

API 文档界面:

API 文档

演示视频:

主题 格式 链接
《如何增加生活的乐趣》 竖屏 9:16 GitHub 仓库 docs/ 目录
《金钱的作用》 竖屏 9:16 同上
《生命的意义是什么》 竖屏/横屏 同上
《为什么要运动》 横屏 16:9 同上

外部演示:


二、项目亮点

2.1 全流程自动化

从文案生成到视频合成,真正实现"一键出片"。用户只需输入主题关键词,系统自动完成脚本编写、素材搜索下载、语音合成、字幕生成、视频拼接与合成全流程。

2.2 多尺寸支持

  • 竖屏 9:16(1080×1920)—— 适配抖音、快手、视频号、TikTok
  • 横屏 16:9(1920×1080)—— 适配 YouTube、B站

2.3 16+ 种大模型接入

支持 OpenAI、Azure、Google Gemini、DeepSeek、通义千问、Moonshot(Kimi)、Ollama(本地部署)、MiniMax、文心一言、Cloudflare Workers AI、ModelScope、LiteLLM(100+ 模型网关)、Pollinations(免费)、Grok/xAI、OneAPI、g4f 等多达 16 种 LLM 提供商,通过配置文件一键切换。

2.4 多引擎语音合成

支持 5 种 TTS 引擎:

  • Edge TTS(微软,免费,400+ 种语音)
  • Azure TTS(微软,高质量)
  • Google Gemini TTS(15 种语音)
  • 硅基流动 CosyVoice(8 种语音)
  • 小米 MiMo TTS(9 种语音)

2.5 双模式字幕生成

  • Edge 模式:快速,利用 TTS 过程中的时间戳直接生成字幕
  • Whisper 模式:高质量,使用 faster-whisper 语音识别后通过 Levenshtein 编辑距离与原始脚本对齐校正

2.6 批量生成

一次任务可生成多个视频(video_count 参数),每个视频使用不同的素材排列组合,用户可选择最满意的版本。

2.7 多种部署方式

部署方式 说明
Windows 一键启动包 下载解压后运行 start.bat
Docker docker-compose up
手动部署 uv sync + 安装 ImageMagick
Google Colab 浏览器中直接运行,免本地部署

2.8 跨平台发布

支持 Upload-Post 自动发布到 TikTok / Instagram(需配置 API Key)。

2.9 灵活配置

TOML 格式配置文件,支持:

  • 多 API Key 轮换(素材搜索)
  • 自定义字幕字体、位置、颜色、大小、描边
  • 自定义背景音乐及音量
  • 代理配置
  • Redis 状态管理(多实例部署)

2.10 流水线可中断设计

stop_at 参数支持在任意步骤停止(script/terms/audio/subtitle/materials/video),便于调试和分步调用 API。


三、项目运行环境介绍和运行条件介绍

3.1 系统要求

项目 最低配置 推荐配置 理想配置
操作系统 Windows 10 / macOS 11.0 / Ubuntu 20.04 同左 同左
Python 3.11 3.11 3.11(不支持 3.13+)
CPU 4 核 6-8 核 8 核及以上
内存 4 GB 8 GB 16 GB 及以上
GPU 非必须 4 GB 显存 8 GB 显存(Whisper 加速)
磁盘 2 GB(程序+依赖) 5 GB 10 GB+(素材缓存)

GPU 非必需。如果主要依赖云端 LLM/TTS 和在线素材,CPU 和内存比 GPU 更重要。GPU 主要加速本地 Whisper 语音识别。

3.2 必须安装的外部工具

工具 用途 安装方式
ImageMagick 字幕图片渲染(必须) 官网下载winget install ImageMagick.ImageMagick
FFmpeg 视频处理(通常自动下载) 项目启动时自动检测,也可手动安装
uv Python 包管理器(推荐) pip install uvwinget install astral-sh.uv

3.3 Python 依赖(核心)

包名 用途
moviepy (2.1.2) 视频编辑和合成
streamlit (1.45.0) Web UI 框架
edge_tts (7.2.7) 微软 Edge 语音合成
fastapi (0.115.6) API 框架
uvicorn (0.32.1) ASGI 服务器
openai (1.56.1) OpenAI API 客户端
faster-whisper (1.1.0) 语音识别/字幕生成
loguru (0.7.3) 日志管理
pydub (0.25.1) 音频处理
litellm (1.60.0) 多 LLM 提供商统一接口
redis (5.2.0) Redis 状态管理(可选)

3.4 必须的 API Key

API Key 用途 获取方式
LLM API Key 文案生成(至少选一个) OpenAI / DeepSeek / 通义千问 等
素材 API Key 视频素材搜索下载 PexelsPixabay

如果使用 Ollama 本地 LLM,则不需要 LLM API Key。如果使用本地素材,则不需要素材 API Key。

3.5 快速启动步骤

# 1. 克隆项目
git clone https://github.com/harry0703/MoneyPrinterTurbo.git
cd MoneyPrinterTurbo

# 2. 安装依赖
uv sync --frozen

# 3. 复制并编辑配置文件
cp config.example.toml config.toml
# 编辑 config.toml,填入 API Key 和 ImageMagick 路径

# 4. 启动 Web UI
# Windows:
webui.bat
# Linux/Mac:
sh webui.sh

# 或启动 API 服务
uv run python main.py

四、项目代码介绍

4.1 代码架构图

MoneyPrinterTurbo/
├── main.py                          # API 服务入口(uvicorn 启动)
├── app/                             # 核心应用代码(MVC 架构)
│   ├── asgi.py                      # FastAPI 应用实例
│   ├── router.py                    # 路由注册
│   ├── config/                      # 配置模块
│   │   └── config.py                # TOML 配置加载
│   ├── controllers/                  # 控制器层
│   │   ├── base.py                  # 基础控制器
│   │   ├── ping.py                  # 健康检查
│   │   ├── manager/                 # 状态管理器
│   │   │   ├── memory_manager.py   # 内存状态管理
│   │   │   └── redis_manager.py    # Redis 状态管理
│   │   └── v1/                      # API v1
│   │       ├── llm.py              # LLM 接口
│   │       └── video.py            # 视频生成接口
│   ├── models/                      # 数据模型层
│   │   ├── const.py                # 常量定义
│   │   ├── exception.py            # 异常定义
│   │   └── schema.py              # 数据结构/请求体
│   ├── services/                    # 服务层(核心业务逻辑)
│   │   ├── task.py                 # 任务调度(核心编排器)
│   │   ├── llm.py                  # LLM 服务(16+ 提供商)
│   │   ├── voice.py                # 语音合成(5 种 TTS 引擎)
│   │   ├── subtitle.py             # 字幕服务(Whisper + 校正)
│   │   ├── material.py             # 素材搜索下载
│   │   ├── video.py                # 视频合成(拼接/转场/叠加)
│   │   ├── state.py                # 任务状态管理
│   │   ├── upload_post.py          # 跨平台发布
│   │   └── utils/
│   │       └── video_effects.py     # 视频特效
│   └── utils/                       # 工具类
│       ├── file_security.py        # 文件安全校验
│       └── utils.py                 # 通用工具
├── webui/                           # Streamlit Web UI
├── resource/                        # 资源文件
│   ├── fonts/                       # 字幕字体
│   └── songs/                       # 背景音乐
├── docs/                            # 文档和演示
├── config.example.toml              # 配置文件模板
├── Dockerfile                       # Docker 镜像
├── docker-compose.yml               # Docker Compose
└── pyproject.toml                   # Python 项目配置

4.2 核心模块介绍

模块一:task.py — 任务调度(核心编排器)

整个视频生成流程的入口和总指挥。实现了一个 7 步流水线,按顺序协调所有子服务完成视频生成。

关键设计

  • stop_at 参数支持在任意步骤中断,便于调试和分步 API 调用
  • 每步独立容错,失败即标记 FAILED,不产生脏数据
  • 通过状态管理模块实时更新进度百分比(5% → 100%)
  • 支持一次任务生成多个视频(循环处理)

模块二:llm.py — LLM 服务

统一的 LLM 调用接口,支持 16+ 种大语言模型提供商。大多数提供商通过 OpenAI 兼容接口统一调用,特殊提供商(qwen、gemini、cloudflare、ernie)有独立逻辑。

核心函数

  • _generate_response(prompt) — 统一 LLM 调用入口
  • generate_script() — 根据主题生成视频脚本
  • generate_terms() — 根据脚本生成素材搜索关键词

模块三:voice.py — 语音合成服务

多引擎 TTS 服务,通过语音名称前缀路由到不同引擎(azure/gemini/siliconflow/mimo/默认 edge)。

核心函数

  • tts() — TTS 主入口,返回 SubMaker 对象
  • create_subtitle() — 从 TTS 时间戳生成 SRT 字幕
  • get_all_azure_voices() — 获取 400+ 种 Edge TTS 语音

模块四:subtitle.py — 字幕服务

使用 faster-whisper 进行语音识别,并通过 Levenshtein 编辑距离与原始脚本对齐校正。

核心函数

  • create() — Whisper 语音识别生成字幕(启用 VAD + word-level 时间戳)
  • correct() — 字幕校正(相似度 > 0.8 时用脚本文本替换)

模块五:material.py — 素材服务

从 Pexels / Pixabay 搜索和下载无版权视频素材,支持多 API Key 轮换和 MD5 去重。

模块六:video.py — 视频合成服务

最复杂的模块,负责素材拼接、转场效果、字幕叠加、音频混合、背景音乐添加。

核心函数

  • combine_videos() — 素材拼接(支持 5 种转场效果)
  • generate_video() — 最终合成(叠加字幕 + 混合音频)
  • concat_video_clips_with_ffmpeg() — ffmpeg 高效无损拼接

4.3 模块间调用关系

main.py (入口)
  └─→ app/router.py (路由注册)
        ├─→ controllers/v1/video.py
        │     └─→ task.start()  ◄═══ 核心编排器
        │           ├─→ llm.generate_script()      → LLM 服务
        │           ├─→ llm.generate_terms()        → LLM 服务
        │           ├─→ voice.tts()                 → 语音合成
        │           ├─→ voice.create_subtitle()     → 字幕生成(Edge)
        │           ├─→ subtitle.create()           → 字幕生成(Whisper)
        │           ├─→ subtitle.correct()          → 字幕校正
        │           ├─→ material.download_videos()  → 素材下载
        │           ├─→ video.combine_videos()      → 视频拼接
        │           ├─→ video.generate_video()       → 视频合成
        │           └─→ upload_post.cross_post()    → 跨平台发布
        │
        └─→ controllers/v1/llm.py
              └─→ llm._generate_response()  → LLM 服务

4.4 核心代码解析:视频生成完整流程

以下为 task.pystart() 函数的核心流程:

def start(task_id, params, stop_at="video"):
    # 步骤1 [5%→10%]: 生成视频脚本
    video_script = params.video_script or llm.generate_script(
        video_subject=params.video_subject,
        language=params.video_language,
        paragraph_number=params.paragraph_number,
    )

    # 步骤2 [10%→20%]: 生成搜索关键词
    video_terms = params.video_terms or llm.generate_terms(
        video_subject=params.video_subject,
        video_script=video_script,
        amount=5,
    )

    # 步骤3 [20%→30%]: 生成语音音频
    audio_file, audio_duration, sub_maker = voice.tts(
        text=video_script, voice_name=..., voice_rate=...
    )

    # 步骤4 [30%→40%]: 生成字幕
    # Edge 模式:利用 TTS 时间戳直接生成
    # Whisper 模式:语音识别 + Levenshtein 校正
    subtitle.create(audio_file=audio_file, ...)
    subtitle.correct(subtitle_file=..., video_script=video_script)

    # 步骤5 [40%→50%]: 获取视频素材
    # 本地模式:预处理用户上传素材
    # 在线模式:搜索 + 下载(累计时长 ≥ audio_duration)
    downloaded_videos = material.download_videos(
        task_id=task_id, search_terms=video_terms, ...
    )

    # 步骤6 [50%→100%]: 生成最终视频(循环 video_count 次)
    for i in range(params.video_count):
        # A: 拼接素材(切分→排列→转场→循环填充→ffmpeg合并)
        video.combine_videos(combined_video_path=..., video_paths=...)
        # B: 合成最终视频(叠加字幕 + 混合音频 + BGM)
        video.generate_video(video_path=..., audio_path=..., subtitle_path=...)

    # 步骤7(可选): 跨平台发布
    upload_post.cross_post_video(...)

关键设计亮点

  1. 流水线可中断stop_at 参数允许在任意步骤停止
  2. 每步独立容错:任何步骤失败标记 FAILED,不产生脏数据
  3. 进度可追踪:通过状态管理实时更新进度百分比
  4. 多提供商抽象:LLM、TTS、素材搜索都支持多个提供商
  5. 安全防护:BGM 路径白名单、TLS 校验、API Key 轮换
  6. 资源管理:MoviePy clip 对象显式关闭,防止内存泄漏

五、项目的应用、优点和不足

5.1 应用场景

场景 说明
社交媒体内容批量生产 快速生成抖音、快手、视频号等平台的短视频,支持批量生成
营销推广视频 快速制作产品宣传、服务介绍视频,支持中英双语
教育培训内容 教师创建教学短视频、企业培训材料视频化
知识科普 将知识性内容快速转化为视频形式
个人创作 无需视频剪辑技能,输入创意即可出片

5.2 项目优点

  1. 真正一键自动化:从文案到成片全流程自动化,无需人工干预
  2. 模型选择灵活:16+ 种 LLM、5 种 TTS 引擎,从免费到付费全覆盖
  3. 代码架构清晰:MVC 分层设计,服务层职责单一,易于扩展和维护
  4. 部署方式多样:Windows 一键包、Docker、手动部署、Google Colab
  5. 配置灵活:TOML 配置文件,支持多 API Key 轮换、代理、Redis 等
  6. API 设计优秀stop_at 参数实现流水线可中断,便于集成和调试
  7. 安全意识强:文件路径白名单、TLS 校验、API Key 轮换
  8. 活跃维护:截至 2026-05-31 已有 566 次提交、12 个 Release 版本
  9. 社区生态好:73K+ Star,中文社区教程丰富
  10. MIT 开源协议:可自由商用

5.3 项目不足

  1. 视频创意有限:素材来自 Pexels/Pixabay 的通用库存视频,与 AI 生成的文案之间缺乏语义关联,容易出现"画面与内容不匹配"的问题
  2. 无 AI 视频生成:不支持 Sora、Runway、Kling 等 AI 视频生成模型,只能拼接现有素材
  3. 转场效果简单:仅支持 fade_in、fade_out、slide_in、slide_out、shuffle 五种基础转场
  4. 字幕样式有限:虽然支持自定义字体和颜色,但缺乏动画字幕、花字等高级效果
  5. 音频处理简单:背景音乐只是简单叠加,没有智能配乐(根据内容情绪匹配音乐)
  6. Whisper 依赖 GPU:使用 Whisper 模式时,CPU 上运行较慢,需要较好的 GPU 才能快速生成字幕
  7. 素材质量不可控:在线素材的质量和相关性依赖搜索词,有时需要多次调整
  8. 无视频编辑功能:生成后无法在工具内进行二次编辑和微调
  9. 内存占用较高:MoviePy 在处理高清视频时内存占用较大,批量生成时可能需要较大内存
  10. 部分功能尚在计划中:GPT-SoVITS 配音、视频转场优化、YouTube 自动上传等功能尚未实现