返回 MoneyPrinterTurbo
README-en.md
根目录 / README-en.md
1 <div align="center">
2 <h1 align="center">MoneyPrinterTurbo 💸</h1>
3
4 <p align="center">
5 <a href="https://github.com/harry0703/MoneyPrinterTurbo/stargazers"><img src="https://img.shields.io/github/stars/harry0703/MoneyPrinterTurbo.svg?style=for-the-badge" alt="Stargazers"></a>
6 <a href="https://github.com/harry0703/MoneyPrinterTurbo/issues"><img src="https://img.shields.io/github/issues/harry0703/MoneyPrinterTurbo.svg?style=for-the-badge" alt="Issues"></a>
7 <a href="https://github.com/harry0703/MoneyPrinterTurbo/network/members"><img src="https://img.shields.io/github/forks/harry0703/MoneyPrinterTurbo.svg?style=for-the-badge" alt="Forks"></a>
8 <a href="https://github.com/harry0703/MoneyPrinterTurbo/blob/main/LICENSE"><img src="https://img.shields.io/github/license/harry0703/MoneyPrinterTurbo.svg?style=for-the-badge" alt="License"></a>
9 </p>
10
11 <h3>English | <a href="README.md">简体中文</a> | <a href="README-ar.md">العربية</a></h3>
12
13 <div align="center">
14 <a href="https://trendshift.io/repositories/8731" target="_blank"><img src="https://trendshift.io/api/badge/repositories/8731" alt="harry0703%2FMoneyPrinterTurbo | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
15 </div>
16
17 Simply provide a <b>topic</b> or <b>keyword</b> for a video, and it will automatically generate the video copy, video
18 materials, video subtitles, and video background music before synthesizing a high-definition short video.
19
20 ### WebUI
21
22 ![](docs/webui-en.jpg)
23
24 ### API Interface
25
26 ![](docs/api.jpg)
27
28 </div>
29
30 ## Special Thanks 🙏
31
32 <table align="center">
33 <tr>
34 <td align="center" width="160">
35 <a href="https://aihubmix.com/?aff=CEve"><strong>AIHubMix</strong></a>
36 </td>
37 <td align="left">
38 <sub>Thanks to <a href="https://aihubmix.com/?aff=CEve">AIHubMix</a> for sponsoring this project. AIHubMix deeply adapts to OpenAI, Claude, Gemini, DeepSeek, Zhipu, Qwen, and other leading models, providing one-stop access to GPT-5.5, deepseek-v4-flash, and 700+ models including free options with production-grade stability.</sub>
39 </td>
40 </tr>
41
42 <tr>
43 <td align="center" width="160">
44 <a href="https://www.byteplus.com/en/product/modelark?utm_campaign=hw&utm_content=MoneyPrinterTurbo&utm_medium=devrel_tool_web&utm_source=OWO&utm_term=MoneyPrinterTurbo"><img src="docs/sponsors/byteplus-logo.svg" alt="BytePlus" height="25"></a><br>
45 <a href="https://www.byteplus.com/en/product/modelark?utm_campaign=hw&utm_content=MoneyPrinterTurbo&utm_medium=devrel_tool_web&utm_source=OWO&utm_term=MoneyPrinterTurbo"><strong>BytePlus ModelArk</strong></a>
46 </td>
47 <td align="left">
48 <sub>Thanks to Dola Seed for sponsoring this project! <a href="https://www.byteplus.com/en/product/modelark?utm_campaign=hw&utm_content=MoneyPrinterTurbo&utm_medium=devrel_tool_web&utm_source=OWO&utm_term=MoneyPrinterTurbo">Dola Seed 2.0</a> is a full-modal general large model independently developed by ByteDance for the global market. Built on a unified multimodal architecture, it supports joint understanding and generation of text, images, audio, and video. It natively enables agent collaboration, with strong reasoning, long-task execution, tool integration, and coding capabilities. Register via this link to get 500,000 tokens of free inference quota per model.</sub>
49 </td>
50 </tr>
51 <tr>
52 <td align="center" width="160">
53 <a href="https://www.ccsub.net/register?ref=VCVDAWWY"><img src="docs/sponsors/ccsub-logo.png" alt="CCSub" height="36"></a><br>
54 <a href="https://www.ccsub.net/register?ref=VCVDAWWY"><strong>CCSub</strong></a>
55 </td>
56 <td align="left">
57 <sub>Thanks to <a href="https://www.ccsub.net/register?ref=VCVDAWWY">CCSub</a> for sponsoring this project! CCSub is a stable, affordable AI API relay platform — your drop-in replacement for a Claude.ai subscription. One API key gives you access to Claude Opus 4.8, Sonnet, Haiku, GPT-5, and Gemini at roughly 30% of direct API cost, with no VPN required from anywhere in the world. Compatible with Claude Code, Codex, Cursor, Cline, Continue, Windsurf, and all major AI coding tools. Register at <a href="https://www.ccsub.net/register?ref=VCVDAWWY">www.ccsub.net</a> and get $5 free credit on sign-up.</sub>
58 </td>
59 </tr>
60 <tr>
61 <td align="center" width="160">
62 <a href="https://www.compshare.cn/coding-plan?ytag=GPU_YY-git_MoneyPrinterTu"><img src="docs/sponsors/compshare-logo.png" alt="Compshare" height="34"></a><br>
63 <a href="https://www.compshare.cn/coding-plan?ytag=GPU_YY-git_MoneyPrinterTu"><strong>Compshare</strong></a>
64 </td>
65 <td align="left">
66 <sub>Thanks to <a href="https://www.compshare.cn/coding-plan?ytag=GPU_YY-git_MoneyPrinterTu">Compshare</a> for sponsoring this project! Compshare is an AI cloud platform under UCloud that provides one-stop API access to mainstream Chinese and international models with a single key. Its CodingPlan package focuses on cost-effective Chinese models such as GLM5.2 and Deepseek-v4, while also offering stable official relay channels for overseas models across different development scenarios. It is compatible with Claude Code, Codex, and other mainstream AI coding tools and general API calls, with enterprise-grade high concurrency, 24/7 technical support, and self-service invoicing. <a href="https://www.compshare.cn/coding-plan?ytag=GPU_YY-git_MoneyPrinterTu">Register now</a> to receive up to ¥10 in free trial credits.</sub>
67 </td>
68 </tr>
69 <tr>
70 <td align="center" width="160">
71 <a href="https://reccloud.com"><img src="docs/sponsors/reccloud-logo.svg" alt="RecCloud" height="36"></a><br>
72 <a href="https://reccloud.com"><strong>RecCloud</strong></a>
73 </td>
74 <td align="left">
75 <sub>Due to the <strong>deployment</strong> and <strong>usage</strong> of this project, there is a certain threshold for some beginner users. We would like to express our special thanks to <a href="https://reccloud.com">RecCloud (AI-Powered Multimedia Service Platform)</a> for providing a free <code>AI Video Generator</code> service based on this project. It allows for online use without deployment, which is very convenient.</sub>
76 </td>
77 </tr>
78 <tr>
79 <td align="center" width="160">
80 <a href="https://picwish.com"><img src="docs/sponsors/picwish-logo.svg" alt="Picwish" height="36"></a><br>
81 <a href="https://picwish.com"><strong>Picwish</strong></a>
82 </td>
83 <td align="left">
84 <sub>Thanks to <a href="https://picwish.com">Picwish</a> for supporting and sponsoring this project, enabling continuous updates and maintenance. Picwish focuses on the <strong>image processing field</strong>, providing a rich set of <strong>image processing tools</strong> that extremely simplify complex operations, truly making image processing easier.</sub>
85 </td>
86 </tr>
87 </table>
88
89 ## Features 🎯
90
91 - [x] Complete **MVC architecture**, **clearly structured** code, easy to maintain, supports both `API`
92 and `Web interface`
93 - [x] Supports **AI-generated** video copy, as well as **customized copy**
94 - [x] Supports various **high-definition video** sizes
95 - [x] Portrait 9:16, `1080x1920`
96 - [x] Landscape 16:9, `1920x1080`
97 - [x] Supports **batch video generation**, allowing the creation of multiple videos at once, then selecting the most
98 satisfactory one
99 - [x] Supports setting the **duration of video clips**, facilitating adjustments to material switching frequency
100 - [x] Supports video copy in both **Chinese** and **English**
101 - [x] Supports **multiple voice** synthesis, with **real-time preview** of effects
102 - [x] Supports **subtitle generation**, with adjustable `font`, `position`, `color`, `size`, and also
103 supports `subtitle outlining`
104 - [x] Supports **background music**, either random or specified music files, with adjustable `background music volume`
105 - [x] Video material sources are **high-definition** and **royalty-free**, and you can also use your own **local materials**
106 - [x] Supports multiple stock video providers: **Pexels**, **Pixabay**, and **Coverr**
107 - [x] Optional **TwelveLabs** video AI integration: use **Marengo** embeddings to semantically rank B-roll search terms against your subject, and **Pegasus** to QA/describe clips ([TwelveLabs API key](https://twelvelabs.io))
108 - [x] Supports integration with various models such as **OpenAI**, **AIHubMix**, **AIML API**, **EvoLink**, **Moonshot**, **Azure**, **gpt4free**, **one-api**, **Qwen**, **Google Gemini**, **Ollama**, **DeepSeek**, **MiniMax**, **ERNIE**, **Pollinations**, **ModelScope** and more
109
110 ## Video Demos 📺
111
112 ### Portrait 9:16
113
114 <table>
115 <thead>
116 <tr>
117 <th align="center"><g-emoji class="g-emoji" alias="arrow_forward">▶️</g-emoji> How to Add Fun to Your Life </th>
118 <th align="center"><g-emoji class="g-emoji" alias="arrow_forward">▶️</g-emoji> What is the Meaning of Life</th>
119 </tr>
120 </thead>
121 <tbody>
122 <tr>
123 <td align="center"><video src="https://github.com/harry0703/MoneyPrinterTurbo/assets/4928832/a84d33d5-27a2-4aba-8fd0-9fb2bd91c6a6"></video></td>
124 <td align="center"><video src="https://github.com/harry0703/MoneyPrinterTurbo/assets/4928832/112c9564-d52b-4472-99ad-970b75f66476"></video></td>
125 </tr>
126 </tbody>
127 </table>
128
129 ### Landscape 16:9
130
131 <table>
132 <thead>
133 <tr>
134 <th align="center"><g-emoji class="g-emoji" alias="arrow_forward">▶️</g-emoji> What is the Meaning of Life</th>
135 <th align="center"><g-emoji class="g-emoji" alias="arrow_forward">▶️</g-emoji> Why Exercise</th>
136 </tr>
137 </thead>
138 <tbody>
139 <tr>
140 <td align="center"><video src="https://github.com/harry0703/MoneyPrinterTurbo/assets/4928832/346ebb15-c55f-47a9-a653-114f08bb8073"></video></td>
141 <td align="center"><video src="https://github.com/harry0703/MoneyPrinterTurbo/assets/4928832/271f2fae-8283-44a0-8aa0-0ed8f9a6fa87"></video></td>
142 </tr>
143 </tbody>
144 </table>
145
146 ## System Requirements 📦
147
148 - Recommended platforms: Windows 10+, macOS 11+, or a mainstream Linux distribution
149 - A GPU is not required, but it is recommended if you want faster local transcription, faster video processing, or smoother batch generation
150
151 | Item | Minimum | Recommended | Optimal |
152 | ---- | ------------ | ------------ | ---------- |
153 | CPU | 4 cores | 6 to 8 cores | 8+ cores |
154 | RAM | 4 GB | 8 GB | 16+ GB |
155 | GPU | Not required | 4+ GB VRAM | 8+ GB VRAM |
156
157 - If you mainly rely on cloud LLMs, cloud TTS, and online material sources, CPU and RAM matter more than GPU
158 - If you use `faster-whisper`, batch generation, or heavier local processing, a GPU will improve throughput noticeably
159
160 ## Quick Start 🚀
161
162 ### Recommended Paths
163
164 - Windows users: use the one-click package first for the fastest local trial
165 - MacOS / Linux users: use `uv sync --frozen` for the primary local setup path
166 - If you want a more isolated runtime: use Docker deployment
167
168 ### Run in Google Colab
169
170 Want to try MoneyPrinterTurbo without setting up a local environment? Run it directly in Google Colab!
171
172 [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/harry0703/MoneyPrinterTurbo/blob/main/docs/MoneyPrinterTurbo.ipynb)
173
174 ### Windows
175
176 Download the latest Windows one-click package from GitHub Releases, then extract it directly.
177
178 - GitHub Release: https://github.com/harry0703/MoneyPrinterTurbo/releases/latest
179
180 After downloading, it is recommended to **double-click** `update.bat` first to update to the **latest code**, then double-click `start.bat` to launch
181
182 After launching, the browser will open automatically (if it opens blank, it is recommended to use **Chrome** or **Edge**)
183
184 ### Other Systems
185
186 One-click startup packages have not been created yet. See the **Installation & Deployment** section below. It is recommended to use **docker** for deployment, which is more convenient.
187
188 ## Installation & Deployment 📥
189
190 ### Prerequisites
191
192 #### ① Clone the Project
193
194 ```shell
195 git clone https://github.com/harry0703/MoneyPrinterTurbo.git
196 ```
197
198 #### ② Modify the Configuration File
199
200 - Copy the `config.example.toml` file and rename it to `config.toml`
201 - Follow the instructions in the `config.toml` file to configure `pexels_api_keys` and `llm_provider`, and according to
202 the llm_provider's service provider, set up the corresponding API Key
203 - To use the recommended multi-model provider, you can set `llm_provider` to `aihubmix` and enter the corresponding API key.
204
205 ### Docker Deployment 🐳
206
207 #### ① Launch the Docker Container
208
209 If you haven't installed Docker, please install it first https://www.docker.com/products/docker-desktop/
210 If you are using a Windows system, please refer to Microsoft's documentation:
211
212 1. https://learn.microsoft.com/en-us/windows/wsl/install
213 2. https://learn.microsoft.com/en-us/windows/wsl/tutorials/wsl-containers
214
215 ```shell
216 cd MoneyPrinterTurbo
217 docker compose -f docker-compose.release.yml up
218 ```
219
220 > The recommended default is `docker-compose.release.yml`, which pulls the prebuilt image from GitHub Container Registry: `ghcr.io/harry0703/moneyprinterturbo:latest`.
221 > If you need to build the image locally, you can still run `docker compose up`.
222 > Before the first start, make sure `config.toml` exists in the project root. You can copy it from `config.example.toml`.
223
224 #### ② Access the Web Interface
225
226 Open your browser and visit http://127.0.0.1:8501
227
228 #### ③ Access the API Interface
229
230 Open your browser and visit http://127.0.0.1:8080/docs or http://127.0.0.1:8080/redoc
231
232 ### Manual Deployment 📦
233
234 #### ① Create a Python Virtual Environment
235
236 It is recommended to use [uv](https://docs.astral.sh/uv/) to manage the Python environment and dependencies, with Python `3.11` as the default runtime.
237
238 ```shell
239 git clone https://github.com/harry0703/MoneyPrinterTurbo.git
240 cd MoneyPrinterTurbo
241 uv python install 3.11
242 uv sync --frozen
243 ```
244
245 If you are not using `uv` yet, you can still use `venv + pip`.
246
247 ```shell
248 python3.11 -m venv .venv
249 source .venv/bin/activate
250 pip install -r requirements.txt
251 ```
252
253 Notes:
254
255 - `pyproject.toml` is now the primary dependency manifest.
256 - `uv.lock` pins the resolved environment, so `uv sync --frozen` is recommended by default.
257 - `requirements.txt` is kept only for legacy `pip`-based installation.
258
259 #### ② Launch the Web Interface 🌐
260
261 Note that you need to execute the following commands in the `root directory` of the MoneyPrinterTurbo project
262
263 ###### Windows
264
265 ```powershell
266 .\webui.bat
267 ```
268
269 You can also run `webui.bat` in CMD.
270 `webui.bat` prefers the project `.venv` or bundled Python from the portable package. If no project Python is found but `uv` is installed, it automatically falls back to `uv run streamlit`.
271 To allow other devices on your LAN to access the WebUI, run `set MPT_WEBUI_HOST=0.0.0.0` before running `webui.bat`.
272
273 ###### MacOS or Linux
274
275 ```shell
276 uv run streamlit run ./webui/Main.py --browser.gatherUsageStats=False --server.showEmailPrompt=False
277 ```
278
279 If you have already activated the virtual environment manually, you can still run:
280
281 ```shell
282 sh webui.sh
283 ```
284
285 After launching, the browser will open automatically
286
287 #### ③ Launch the API Service 🚀
288
289 ```shell
290 uv run python main.py
291 ```
292
293 If you have already activated the virtual environment manually, you can still run:
294
295 ```shell
296 python main.py
297 ```
298
299 #### ④ Pure CLI Mode (No Browser) ⌨️
300
301 If you cannot use a browser or port forwarding, you can generate videos directly from the command line:
302
303 ```shell
304 uv run python cli.py --video-subject "The Role of Money"
305 ```
306
307 You can also provide local materials and control the stop stage:
308
309 ```shell
310 uv run python cli.py \
311 --video-subject "The Role of Money" \
312 --video-source local \
313 --video-materials "1.mp4,2.mp4" \
314 --stop-at video
315 ```
316
317 ## Voice Synthesis 🗣
318
319 A list of all supported voices can be viewed here: [Voice List](./docs/voice-list.txt)
320
321 The default TTS provider is **Edge TTS** (free, no API key required). In the WebUI it appears as **"Azure TTS V1"** — this is the same thing. To switch voices, set `voice_name` in `config.toml` or select one from the WebUI voice dropdown.
322
323 > **Note:** "Azure TTS V1" (Edge TTS, free) and "Azure TTS V2" (paid Azure Speech SDK) are two different options in the WebUI. Only V2 requires an Azure API key.
324
325 To use higher-quality **Azure TTS V2** voices, configure your Azure Speech credentials in `config.toml`:
326
327 ```toml
328 [azure]
329 speech_key = "your-azure-speech-key"
330 speech_region = "eastus"
331 ```
332
333 Azure TTS V2 voices require an [Azure Speech Services](https://portal.azure.com/) subscription. The 9 Azure voices added in v1.1.2 sound noticeably more natural than Edge TTS for most use cases.
334
335 ## Subtitle Generation 📜
336
337 Currently, there are 2 ways to generate subtitles:
338
339 - **edge**: Uses Edge TTS timestamps to align subtitles. Fast, no GPU required, works on any machine. Accuracy depends on the TTS timing signal — occasionally misaligns on complex sentences.
340 - **whisper**: Runs `faster-whisper` locally to transcribe the generated audio and produce word-level timestamps. Slower (a few seconds to ~1 minute per clip on CPU depending on model size), requires downloading a model (~250 MB for `large-v3-turbo`, ~3 GB for `large-v3`), but produces more accurate subtitles regardless of TTS provider.
341
342 You can switch between them by modifying the `subtitle_provider` in the `config.toml` configuration file
343
344 It is recommended to use `edge` mode, and switch to `whisper` mode if the quality of the subtitles generated is not
345 satisfactory.
346
347 > Note:
348 >
349 > 1. In whisper mode, you need to download a model file from HuggingFace, about 3GB in size, please ensure good internet connectivity
350 > 2. If left blank, it means no subtitles will be generated.
351
352 > Since HuggingFace is not accessible in China, you can use the following methods to download the `whisper-large-v3` model file
353
354 Download links:
355
356 - Baidu Netdisk: https://pan.baidu.com/s/11h3Q6tsDtjQKTjUu3sc5cA?pwd=xjs9
357 - Quark Netdisk: https://pan.quark.cn/s/3ee3d991d64b
358
359 After downloading the model, extract it and place the entire directory in `.\MoneyPrinterTurbo\models`,
360 The final file path should look like this: `.\MoneyPrinterTurbo\models\whisper-large-v3`
361
362 ```
363 MoneyPrinterTurbo
364 ├─models
365 │ └─whisper-large-v3
366 │ config.json
367 │ model.bin
368 │ preprocessor_config.json
369 │ tokenizer.json
370 │ vocabulary.json
371 ```
372
373 ## Background Music 🎵
374
375 Background music for videos is located in the project's `resource/songs` directory.
376
377 > The current project includes some default music from YouTube videos. If there are copyright issues, please delete
378 > them.
379
380 ## Subtitle Fonts 🅰
381
382 Fonts for rendering video subtitles are located in the project's `resource/fonts` directory, and you can also add your
383 own fonts.
384
385 ## Common Questions 🤔
386
387 ### ❓RuntimeError: No ffmpeg exe could be found
388
389 Normally, ffmpeg will be automatically downloaded and detected.
390 However, if your environment has issues preventing automatic downloads, you may encounter the following error:
391
392 ```
393 RuntimeError: No ffmpeg exe could be found.
394 Install ffmpeg on your system, or set the IMAGEIO_FFMPEG_EXE environment variable.
395 ```
396
397 In this case, you can download ffmpeg from https://www.gyan.dev/ffmpeg/builds/, unzip it, and set `ffmpeg_path` to your
398 actual installation path.
399
400 ```toml
401 [app]
402 # Please set according to your actual path, note that Windows path separators are \\
403 ffmpeg_path = "C:\\Users\\harry\\Downloads\\ffmpeg.exe"
404 ```
405
406 ### ❓ImageMagick is not installed on your computer
407
408 > **This error no longer applies to the current version.**
409 >
410 > Since the project upgraded to **MoviePy 2.x**, subtitle rendering uses **Pillow** instead of ImageMagick. You do not need to install ImageMagick. If you are seeing this error, you may be running an older version of the code — run `git pull` to update, or use `update.bat` on Windows.
411
412 ### ❓OSError: [Errno 24] Too many open files
413
414 This issue is caused by the system's limit on the number of open files. You can solve it by modifying the system's file open limit.
415
416 Check the current limit:
417
418 ```shell
419 ulimit -n
420 ```
421
422 If it's too low, you can increase it, for example:
423
424 ```shell
425 ulimit -n 10240
426 ```
427
428 ### ❓Whisper model download failed, with the following error
429
430 ```
431 LocalEntryNotFoundError: Cannot find an appropriate cached snapshot folder for the specified revision on the local disk and
432 outgoing traffic has been disabled.
433 To enable repo look-ups and downloads online, pass 'local_files_only=False' as input.
434 ```
435
436 or
437
438 ```
439 An error occurred while synchronizing the model Systran/faster-whisper-large-v3 from the Hugging Face Hub:
440 An error happened while trying to locate the files on the Hub and we cannot find the appropriate snapshot folder for the
441 specified revision on the local disk. Please check your internet connection and try again.
442 Trying to load the model directly from the local cache, if it exists.
443 ```
444
445 Solution: [Click to see how to manually download the model from netdisk](#subtitle-generation-)
446
447 ## Feedback & Suggestions 📢
448
449 - You can submit an [issue](https://github.com/harry0703/MoneyPrinterTurbo/issues) or
450 a [pull request](https://github.com/harry0703/MoneyPrinterTurbo/pulls).
451
452 ## License 📝
453
454 Click to view the [`LICENSE`](LICENSE) file
455
456 ## Star History
457
458 [![Star History Chart](https://api.star-history.com/svg?repos=harry0703/MoneyPrinterTurbo&type=Date)](https://star-history.com/#harry0703/MoneyPrinterTurbo&Date)
459
459 lines MARKDOWN