使用手冊

開源短影音工廠 / AI Video Automation

輸入主題,輸出可發布短影音的自動化管線。

MoneyPrinterTurbo 繁體中文實戰手冊:安裝部署、WebUI、FastAPI、LLM/TTS/字幕/素材管線、Docker、uv、風險與進階路徑。

MoneyPrinterTurbo 是一套 Python 短影音自動化系統:輸入主題或關鍵字,交給 LLM 產生文案與搜尋詞,再下載或接入本地素材,產生 TTS、字幕、背景音樂,最後合成直式、橫式或方形影片。它同時提供 WebUI 與 FastAPI,適合做內容工廠原型、自動化剪輯後台,或私有部署的短影音生產線。

harry0703/MoneyPrinterTurbo
星標
73.4K
分支
10.5K
授權
—
資料截至
閱讀時間
6 分
更新日期
開啟原始報告
GitHub Stars
70.6k
Project Version
1.2.8
Video Aspects
3
Open Source License
MIT

01系統概覽

以 FastAPI 為核心的短影音工作流伺服器。

MoneyPrinterTurbo 把短影音製作拆成一條可自動化的管線:產生腳本、產生搜尋詞、找素材、產生旁白、產生字幕、拼接素材、套字幕與背景音樂、輸出成片。這些步驟在 `app/services/task.py` 裡被明確排成任務流程,也能透過 API 分段停在 script、terms、audio、subtitle、materials 或完整 video。

README 直接把 Web 介面、API 介面、Windows 一鍵包、Docker、Google Colab、本地 `uv` 部署都列出來,適用對象涵蓋內容團隊、YouTube Shorts/TikTok 操盤手、社群小編,以及想把短影音生產嵌進自家後台的工程團隊。

從 repo 結構看,這是一個標準化後端專案:`FastAPI` 負責 API,`Streamlit` 負責 WebUI,`MoviePy` 與 ffmpeg 負責影像合成,`edge-tts` 與多種 TTS/provider 設定負責聲音,`faster-whisper` 可做字幕替代方案。專案定位為可自架、可改造的內容生成引擎,非 SaaS 成品。

  1. Topic

  2. Script

  3. Terms

  4. Voice

  5. Subtitle

  6. Materials

  7. Final MP4

02安裝與啟動

四種部署路線對應不同環境。

官方 README 對新手的建議很清楚:Windows 優先用一鍵啟動包,macOS / Linux 優先用 `uv sync --frozen`,想隔離環境就用 Docker。`pyproject.toml` 指定 Python 版本為 >=3.11 且 <3.13,專案版本是 1.2.8,主依賴包含 FastAPI、Streamlit、MoviePy、OpenAI SDK、faster-whisper、LiteLLM、edge-tts、Redis 與多個雲端模型 SDK。

bash
git clone https://github.com/harry0703/MoneyPrinterTurbo.git
cd MoneyPrinterTurbo
uv python install 3.11
uv sync --frozen

# WebUI
uv run streamlit run ./webui/Main.py --browser.gatherUsageStats=False

# API server
uv run python main.py
bash
git clone https://github.com/harry0703/MoneyPrinterTurbo.git
cd MoneyPrinterTurbo
docker compose up

# docker-compose.yml 會啟動兩個服務
WebUI: http://127.0.0.1:8501
API:   http://127.0.0.1:8080/docs

03能力地圖

九個模組,各負責管線的一個環節。

LLM Script

主題變文案

若沒有自訂 `video_script`,任務會呼叫 LLM 依 `video_subject`、語言與段落數產生腳本;也能只停在 `/script` 類型的輸出階段。

Search Terms

文案變素材關鍵字

非本地素材模式下,系統會從影片主題與腳本推導搜尋詞,再交給素材服務下載影片片段。

Materials

Pexels、Pixabay 或本地素材

`config.example.toml` 預設 `video_source = "pexels"`,也支援 Pixabay 與本地素材。API 允許上傳 mp4、mov、avi、flv、mkv、jpg、jpeg、png。

Voice

TTS 旁白

可用 edge-tts、Azure Speech、MiniMax/MiMo/OpenAI 相關設定與自訂音訊檔。若給 `custom_audio_file`,任務會跳過 TTS,直接用使用者提供的聲音。

Subtitle

字幕與 Whisper 備援

`subtitle_provider` 支援 `edge` 或 `whisper`。README 建議先用速度較快的 edge,品質不穩時再切 whisper;whisper 模型可能需要額外下載大約 3GB 的模型檔。

Render

MoviePy + ffmpeg 合成

`app/services/video.py` 會裁切、縮放、串接素材,套入字幕、背景音樂與轉場,輸出 `final-1.mp4` 這類任務結果。

API

可嵌入後台

FastAPI 提供 `/videos`、`/subtitle`、`/audio`、`/tasks/{task_id}`、BGM 與本地素材上傳/查詢等端點,產物可透過 `/tasks/...`、`/stream/...`、`/download/...` 存取。

Queue

記憶體或 Redis 任務管理

`enable_redis` 可切換 RedisTaskManager;設定裡也有最大並發任務數與最大排隊任務數,避免匿名請求無限堆積。

Cross Post

Upload-Post 整合

設定檔列出 TikTok/Instagram cross-post 選項。任務完成後若服務已設定且開啟自動上傳,會嘗試把成片送到外部發布服務。

04實戰調校

依場景選取最小可行配置。

MoneyPrinterTurbo 的設定面很廣,因為它同時接 LLM、素材站、TTS、字幕、ffmpeg、ImageMagick、WebUI、API 與任務佇列。不要一開始就改全部。實務上可以用下面這張表切出最小可行配置。

場景優先配置原因
只想快速看效果WebUI、Pexels API key、OpenAI-compatible LLM、edge 字幕避開 Docker、Redis、whisper 模型與本地素材管理,最少變數。
在公司內部後台整合FastAPI、Redis 任務管理、`endpoint`、CORS、素材上傳限制後台整合需要可查詢任務、可下載結果、可控佇列,單機 WebUI 不足以滿足這些需求。
大量批次生產`max_concurrent_tasks`、`max_queued_tasks`、BGM/素材快取、GPU 或高核心 CPU瓶頸會出現在下載素材、TTS、字幕、影片合成與檔案 IO。
重視字幕品質`subtitle_provider = "whisper"`、本地 whisper-large-v3、足夠記憶體/GPUREADME 說 edge 快但品質可能不穩,whisper 慢但更可靠。
中國網路環境DeepSeek/Moonshot/Qwen/ModelScope、代理設定、HuggingFace 模型離線下載README 與設定檔都明確提到中國使用者的模型與網路替代路徑。

05API 實例

透過 FastAPI 端點直接呼叫影片生成後端。

Docker 或本地 `main.py` 啟動後,API 文件在 `http://127.0.0.1:8080/docs\`。\`app/controllers/v1/video.py\` 顯示 `/videos` 會建立背景任務,回傳 `task_id`;接著用 `/tasks/{task_id}` 查詢狀態與影片 URL。下面是根據 `app/models/schema.py` 參數整理出的最小請求骨架。

bash
curl -X POST http://127.0.0.1:8080/api/v1/videos \
  -H "Content-Type: application/json" \
  -d '{
    "video_subject": "AI 如何改變小型企業行銷",
    "video_aspect": "9:16",
    "video_language": "zh-TW",
    "voice_name": "zh-CN-XiaoxiaoNeural-Female",
    "voice_rate": 1.0,
    "bgm_type": "random",
    "bgm_volume": 0.2,
    "subtitle_enabled": true,
    "font_size": 60,
    "video_count": 1,
    "video_source": "pexels"
  }'
bash
curl http://127.0.0.1:8080/api/v1/tasks/<task_id>

# response 會包含 state、progress、videos、combined_videos 等欄位。
# 影片靜態檔會由 /tasks 掛載,也能走 /stream 或 /download 端點。

06先看清楚這些

部署前應確認的風險與限制。

07進階路徑

從原型到生產環境的進階路徑。

1. 從 WebUI 驗證內容模板

先用 WebUI 測不同主題、語言、聲音、字幕樣式、背景音樂與素材來源,找出你品牌可接受的基準品質。不要一開始就寫後台整合,先確認成片風格能用。

2. 把 API 包成內部任務系統

接到內部 CMS 或內容排程工具時,建議使用 `/videos` 建任務,輪詢 `/tasks/{task_id}`,把 `script.json`、`final-1.mp4`、`combined-1.mp4` 等產物回寫到審稿流程。

3. 建立素材白名單

如果你不想依賴 Pexels/Pixabay 搜尋品質,可以改用本地素材。`video.py` 已經有本地素材目錄與檔案安全限制,適合整理成品牌素材庫。

4. 針對商業場景硬化部署

公開服務至少需要認證、CORS 白名單、Redis、任務配額、日誌留存、輸出檔清理、LLM/TTS key 保護與錯誤告警。MoneyPrinterTurbo 給你引擎,不會替你完成營運防線。

5. 客製 LLM 提示與字幕風格

差異化來自腳本結構、素材選詞、旁白語氣、字幕節奏與品牌視覺,而非單純能否產生影片。建議 fork 後將品牌內容方法論寫入 LLM 提示、TTS 設定與 WebUI 預設值。