Skip to main content
No. MoneyPrinterTurbo runs entirely on CPU. The minimum recommended spec is 4 CPU cores and 4 GB of RAM.A GPU is optional and only helps if you use the whisper subtitle engine with device = "cuda" in config.toml. For the edge subtitle engine and all other features, a GPU provides no benefit.
OpenAI with gpt-4o-mini is the recommended starting point — it’s fast, affordable, and well-tested with this project.For free alternatives:
  • Ollama — run any open-source model locally, no API key needed
  • g4f (gpt4free) — free, no API key, but reliability can vary
  • Pollinations — free public access, no API key required
Set llm_provider in config.toml to switch providers. See LLM Providers for full setup instructions.
Register at https://www.pexels.com/api/. The Pexels API is free for most use cases.You can add multiple keys to avoid rate limits:
config.toml
[app]
pexels_api_keys = ["key-one", "key-two"]
Pixabay also offers a free API at https://pixabay.com/api/docs/.
Yes. Set video_source = "local" and place your video files in the local materials storage directory, or upload them via the API:
curl -X POST http://localhost:8080/api/v1/video_materials \
  -F "file=@/path/to/my-clip.mp4"
Supported formats: mp4, mov, avi, flv, mkv, jpg, jpeg, png.
Yes. Provide video_script in your API request or paste it directly into the Web UI script field. When video_script is non-empty, the LLM generation step is skipped entirely.
{
  "video_subject": "morning exercise",
  "video_script": "Starting your day with exercise boosts energy and focus..."
}
edgewhisper
SpeedFastSlow
SetupNoneDownload ~3 GB model
Timing sourceEdge TTS timing dataAudio transcription
AccuracyGoodHigher
Use edge by default. Switch to whisper only if subtitle timing is noticeably off.
Yes. Set video_language in your request to the desired language code (e.g. "fr", "de", "ja"), or leave it empty for auto-detection based on your script content. The LLM will generate the script in that language, and a matching TTS voice should be selected.
Start the API server:
python main.py
Then open http://127.0.0.1:8080/docs for the interactive Swagger UI, or see the API Reference in these docs.
Set the endpoint field in config.toml to your public domain. This ensures video download URLs in API responses use the correct base URL instead of localhost:
config.toml
[app]
endpoint = "https://yourdomain.com"
All generated videos are output as .mp4 files. Input materials can be mp4, mov, avi, flv, mkv, jpg, jpeg, or png.

Build docs developers (and LLMs) love