🏗️ 整体架构

前端层 (Frontend)

React + TypeScript Tailwind CSS 状态管理
⬇️ HTTP/WebSocket

API 层 (Backend)

FastAPI 任务队列 认证授权
⬇️

处理层 (Workers)

脚本生成 音频合成 视频编码
⬇️

存储层 (Storage)

PostgreSQL 文件系统 Redis 缓存
⬇️

外部服务 (External)

Ollama LLM TTS 服务 YouTube/TikTok API

📁 目录结构

目录结构
moneyprinter/
├── backend/              # 后端服务
│   ├── main.py          # FastAPI 入口
│   ├── api/             # API 路由
│   │   ├── tasks.py     # 任务管理 API
│   │   ├── videos.py    # 视频管理 API
│   │   └── upload.py    # 上传 API
│   ├── models/          # 数据模型
│   │   ├── task.py      # 任务模型
│   │   └── video.py     # 视频模型
│   ├── services/        # 业务逻辑
│   │   ├── generator.py # 视频生成服务
│   │   ├── script.py    # 脚本生成服务
│   │   ├── audio.py     # 音频处理服务
│   │   └── upload.py    # 上传服务
│   ├── workers/         # 后台任务
│   │   └── video_worker.py
│   └── utils/           # 工具函数
│       ├── llm.py       # LLM 调用封装
│       └── video.py     # 视频处理工具
├── frontend/            # 前端界面
│   ├── src/
│   │   ├── components/  # React 组件
│   │   ├── pages/       # 页面
│   │   ├── hooks/       # 自定义 Hooks
│   │   └── utils/       # 前端工具
│   └── package.json
├── tests/               # 测试文件
├── docs/                # 文档
├── .env.example         # 环境变量模板
├── docker-compose.yml   # Docker 配置
└── Dockerfile           # Docker 镜像

🔧 技术栈详解

后端技术

FastAPI

高性能异步 Python Web 框架,自动生成 API 文档

🐘

PostgreSQL

任务队列持久化存储,支持并发和事务

🔴

Redis

缓存和消息队列,提升性能

🎬

FFmpeg

视频编码、音频混流核心工具

前端技术

⚛️

React 18

现代化 UI 组件框架

📘

TypeScript

类型安全的 JavaScript 超集

🎨

Tailwind CSS

原子化 CSS 框架

📊

Zustand

轻量级状态管理

🔄 数据流程

  1. 用户请求:前端提交视频主题和参数
  2. 任务创建:后端创建任务记录,存入 PostgreSQL
  3. 脚本生成:Worker 调用 Ollama 生成视频脚本
  4. 素材采集:搜索并下载相关图片/视频素材
  5. 音频合成:TTS 生成配音,添加背景音乐
  6. 视频编码:ImageMagick + FFmpeg 合成最终视频
  7. 任务完成:更新任务状态,用户可下载或上传

🔐 安全考虑

  • API Key 保护:敏感配置存储在环境变量中
  • OAuth 认证:YouTube 上传使用标准 OAuth2 流程
  • Session 隔离:TikTok Session ID 不暴露给前端
  • 输入验证:所有用户输入经过验证和清理
  • 速率限制:防止 API 滥用