README-en.md
Simply provide a <b>topic</b> or <b>keyword</b> for a video, and it will automatically generate the video copy, video materials, video subtitles, and video background music before synthesizing a high-definition short video.
<p align="center"> <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> </p>API
and Web interface1080x19201920x1080font, position, color, size, and also
supports subtitle outliningbackground music volume| Item | Minimum | Recommended | Optimal |
|---|---|---|---|
| CPU | 4 cores | 6 to 8 cores | 8+ cores |
| RAM | 4 GB | 8 GB | 16+ GB |
| GPU | Not required | 4+ GB VRAM | 8+ GB VRAM |
faster-whisper, batch generation, or heavier local processing, a GPU will improve throughput noticeablyuv sync --frozen for the primary local setup pathWant to try MoneyPrinterTurbo without setting up a local environment? Run it directly in Google Colab!
The downloadable package is still the older v1.2.6 bundled build. After downloading, run update.bat first to bring it up to the latest code.
Google Drive (v1.2.6): https://drive.google.com/file/d/1HsbzfT7XunkrCrHw5ncUjFX8XX4zAuUh/view?usp=sharing
After downloading, it is recommended to double-click update.bat first to update to the latest code, then double-click start.bat to launch
After launching, the browser will open automatically (if it opens blank, it is recommended to use Chrome or Edge)
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.
git clone https://github.com/harry0703/MoneyPrinterTurbo.git
config.example.toml file and rename it to config.tomlconfig.toml file to configure pexels_api_keys and llm_provider, and according to
the llm_provider's service provider, set up the corresponding API Keyllm_provider to aihubmix and enter the corresponding API key.If you haven't installed Docker, please install it first https://www.docker.com/products/docker-desktop/ If you are using a Windows system, please refer to Microsoft's documentation:
cd MoneyPrinterTurbo
docker-compose up
Note:The latest version of docker will automatically install docker compose in the form of a plug-in, and the start command is adjusted to
docker compose up
Open your browser and visit http://127.0.0.1:8501
Open your browser and visit http://127.0.0.1:8080/docs or http://127.0.0.1:8080/redoc
It is recommended to use uv to manage the Python environment and dependencies, with Python 3.11 as the default runtime.
git clone https://github.com/harry0703/MoneyPrinterTurbo.git
cd MoneyPrinterTurbo
uv python install 3.11
uv sync --frozen
If you are not using uv yet, you can still use venv + pip.
python3.11 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Notes:
pyproject.toml is now the primary dependency manifest.uv.lock pins the resolved environment, so uv sync --frozen is recommended by default.requirements.txt is kept only for legacy pip-based installation.Note that you need to execute the following commands in the root directory of the MoneyPrinterTurbo project
.\webui.bat
You can also run webui.bat in CMD.
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.
To allow other devices on your LAN to access the WebUI, run set MPT_WEBUI_HOST=0.0.0.0 before running webui.bat.
uv run streamlit run ./webui/Main.py --browser.gatherUsageStats=False
If you have already activated the virtual environment manually, you can still run:
sh webui.sh
After launching, the browser will open automatically
uv run python main.py
If you have already activated the virtual environment manually, you can still run:
python main.py
Due to the deployment and usage of this project, there is a certain threshold for some beginner users. We would like to express our special thanks to
RecCloud (AI-Powered Multimedia Service Platform) for providing a free AI Video Generator service based on this
project. It allows for online use without deployment, which is very convenient.
Thanks to Picwish https://picwish.com for supporting and sponsoring this project, enabling continuous updates and maintenance.
Picwish focuses on the image processing field, providing a rich set of image processing tools that extremely simplify complex operations, truly making image processing easier.
A list of all supported voices can be viewed here: Voice List
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.
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.
To use higher-quality Azure TTS V2 voices, configure your Azure Speech credentials in config.toml:
[azure]
speech_key = "your-azure-speech-key"
speech_region = "eastus"
Azure TTS V2 voices require an Azure Speech Services subscription. The 9 Azure voices added in v1.1.2 sound noticeably more natural than Edge TTS for most use cases.
Currently, there are 2 ways to generate subtitles:
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.You can switch between them by modifying the subtitle_provider in the config.toml configuration file
It is recommended to use edge mode, and switch to whisper mode if the quality of the subtitles generated is not
satisfactory.
Note:
- In whisper mode, you need to download a model file from HuggingFace, about 3GB in size, please ensure good internet connectivity
- If left blank, it means no subtitles will be generated.
Since HuggingFace is not accessible in China, you can use the following methods to download the
whisper-large-v3model file
Download links:
After downloading the model, extract it and place the entire directory in .\MoneyPrinterTurbo\models,
The final file path should look like this: .\MoneyPrinterTurbo\models\whisper-large-v3
MoneyPrinterTurbo
├─models
│ └─whisper-large-v3
│ config.json
│ model.bin
│ preprocessor_config.json
│ tokenizer.json
│ vocabulary.json
Background music for videos is located in the project's resource/songs directory.
The current project includes some default music from YouTube videos. If there are copyright issues, please delete them.
Fonts for rendering video subtitles are located in the project's resource/fonts directory, and you can also add your
own fonts.
Normally, ffmpeg will be automatically downloaded and detected. However, if your environment has issues preventing automatic downloads, you may encounter the following error:
RuntimeError: No ffmpeg exe could be found.
Install ffmpeg on your system, or set the IMAGEIO_FFMPEG_EXE environment variable.
In this case, you can download ffmpeg from https://www.gyan.dev/ffmpeg/builds/, unzip it, and set ffmpeg_path to your
actual installation path.
[app]
# Please set according to your actual path, note that Windows path separators are \\
ffmpeg_path = "C:\\Users\\harry\\Downloads\\ffmpeg.exe"
This error no longer applies to the current version.
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 pullto update, or useupdate.baton Windows.
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.
Check the current limit:
ulimit -n
If it's too low, you can increase it, for example:
ulimit -n 10240
LocalEntryNotFoundError: Cannot find an appropriate cached snapshot folder for the specified revision on the local disk and
outgoing traffic has been disabled.
To enable repo look-ups and downloads online, pass 'local_files_only=False' as input.
or
An error occurred while synchronizing the model Systran/faster-whisper-large-v3 from the Hugging Face Hub:
An error happened while trying to locate the files on the Hub and we cannot find the appropriate snapshot folder for the
specified revision on the local disk. Please check your internet connection and try again.
Trying to load the model directly from the local cache, if it exists.
Solution: Click to see how to manually download the model from netdisk
Click to view the LICENSE file