You want a side hustle on TikTok, YouTube Shorts, or Instagram Reels—but you do not want to learn Premiere, show your face, or spend three hours per clip. MoneyPrinterTurbo (MIT license, 67,000+ GitHub stars as of May 2026) turns a single topic or keyword into a finished vertical or horizontal short: AI script, stock footage, voice-over, subtitles, background music, and final render—mostly unattended.
This is a faceless video factory for pure beginners: you pick the niche, the tool handles the mechanical pipeline. Streamlit Web UI on port 8501, optional REST API on 8080. China-based creators often pair DeepSeek or Moonshot LLMs. On macOS, batch mode shines on an always-awake Mac—desk Mac mini or hosted macOS—for overnight renders. For multi-agent content ops (research → CSV → draft), see our Hermes subagent delegation guide; this article focuses on video output, not text pipelines.
How MoneyPrinterTurbo works internally
MoneyPrinterTurbo uses a clear MVC layout (per upstream README). Data flows in one direction:
Topic / keyword
→ LLM script (config.toml llm_provider + API keys)
→ Stock footage (Pexels API) or local clips
→ TTS voice (edge / Azure)
→ Subtitles (edge or whisper ~3GB)
→ Background music (resource/songs/)
→ ffmpeg + ImageMagick → MP4 (9:16 or 16:9)
| Stage | Default path / config key | Output |
|---|---|---|
| Script | llm_provider in config.toml | Chinese or English copy |
| Footage | pexels_api_keys | HD royalty-free clips |
| Voice | Azure / edge voices | docs/voice-list.txt catalog |
| Subtitles | subtitle_provider = edge | SRT burned into video |
| Render | ffmpeg_path, ImageMagick | 1080x1920 (9:16) or 1920x1080 |
Quotable: Upstream recommends 8 GB RAM minimum, 16 GB for smoother batch runs, and 4 GB+ GPU VRAM only for heavier local whisper—not required with cloud LLMs and edge subtitles.
Source: MoneyPrinterTurbo README.
Platform matrix: where faceless Shorts fit
| Platform | Aspect ratio | Typical length | MoneyPrinterTurbo setting |
|---|---|---|---|
| TikTok | 9:16 vertical | 15–60 s | 1080x1920, short segments |
| Instagram Reels | 9:16 vertical | 30–90 s | Same; review text overlay manually |
| YouTube Shorts | 9:16 vertical | ≤60 s | Trim in upload or shorten segment duration |
| YouTube standard | 16:9 | 3–8 min | 1920x1080, longer script in Web UI |
If you target Shorts only, do enable batch generation and pick the best of 3–5 renders. If you need talking-head credibility, do not expect this tool to replace on-camera builds—it excels at stock B-roll + voice-over faceless formats.
Step-by-step macOS runbook
Eight steps from clone to optional API automation—tested on Apple Silicon and Intel Macs you control.
- Clone the repo — Avoid Chinese characters or spaces in the install path (upstream warning).
- Install dependencies with uv — Python 3.11 is the upstream default.
- Install ImageMagick — Required for subtitle rendering on macOS (ffmpeg via Homebrew).
- Configure API keys — Copy config.example.toml → config.toml. Set pexels_api_keys (free tier at pexels.com/api).
- Launch the Web UI — Open http://127.0.0.1:8501 in Chrome or Edge if the auto tab is blank.
- Generate your first vertical short — Enter a topic (e.g. "3 habits that improve sleep"), choose 9:16, pick voice + subtitle style, click generate.
- Batch mode for matrix publishing — Generate 3–5 MP4s with varied hooks; schedule on a Mac that does not sleep (pmset -c sleep 0 on plugged-in laptops).
- Optional API automation — Start uv run python main.py and hit http://127.0.0.1:8080/docs—wrap inside a Hermes delegate_task worker that drops topics from a spreadsheet.
git clone https://github.com/harry0703/MoneyPrinterTurbo.git
cd MoneyPrinterTurbouv python install 3.11
uv sync --frozenbrew install imagemagick ffmpeguv run streamlit run ./webui/Main.py --browser.gatherUsageStats=FalseHardware reference: Apple Mac mini specifications list 16 GB on base M4—enough for Web UI + one render; choose 24 GB with whisper locally plus browser tabs.
Troubleshooting
RuntimeError: No ffmpeg exe could be found
Symptom: Render fails immediately; stack trace mentions IMAGEIO_FFMPEG_EXE.
Fix: Install ffmpeg (brew install ffmpeg) or download a static build from gyan.dev ffmpeg builds:
[app]
ffmpeg_path = "/opt/homebrew/bin/ffmpeg
ImageMagick policy blocks temporary text files
Symptom: Error referencing pattern="@" and policy.xml.
Fix: Edit ImageMagick policy.xml (Homebrew: /opt/homebrew/etc/ImageMagick-7/policy.xml)—change the @ pattern from rights="none" to rights="read|write".
OSError: Too many open files during batch render
Symptom: Batch job dies mid-queue on macOS.
Fix: Raise the limit before launching Streamlit:
ulimit -n 10240
uv run streamlit run ./webui/Main.py --browser.gatherUsageStats=False
Whisper model download fails (China network)
Symptom: HuggingFace timeout when subtitle_provider = whisper.
Fix: Stay on edge subtitles first. If you need whisper, manually download whisper-large-v3 (~3 GB) per upstream mirrors into MoneyPrinterTurbo/models/whisper-large-v3/.
Side-hustle workflow: topic → batch → publish
A repeatable solopreneur loop for faceless channels:
- Monday — Brainstorm 10 keywords in a spreadsheet (Notion or CSV).
- Tuesday — Batch-generate 5 vertical MP4s; pick top 3 by manual preview.
- Wednesday–Friday — Upload one per day to TikTok / YouTube Shorts / Instagram Reels; reuse hooks as carousel or thread captions.
- Weekend — Review analytics; feed winning topics back into next week's batch.
Pair with automation: Hermes subagent Worker A researches trending hooks, Worker B fills the CSV, you paste topics into MoneyPrinterTurbo—or call the REST API from a cron script on an always-on Mac.
Related reading
Related reading: Hermes subagent delegation guide for research → CSV → draft pipelines that complement faceless video output—no pricing tables here.
FAQ
Is MoneyPrinterTurbo really free?
The software is MIT-licensed and free to self-host. You still pay for LLM API usage, optional Azure TTS, and Pexels (free tier has rate limits). Budget roughly $5–20/month in API credits for casual batch publishing—not zero, but far below hiring an editor.
Can I use it without showing my face?
Yes—that is the core use case. Output is stock footage + synthesized voice + burned-in subtitles. Viewers never see you; focus on niche selection and hook quality instead of lighting and B-roll shooting.
TikTok vs YouTube Shorts—which settings?
Both prefer 9:16 at 1080x1920. TikTok tolerates slightly longer clips in some markets; YouTube Shorts must stay under 60 seconds for Shorts shelf placement—shorten segment duration in the Web UI or trim in upload.
Do I need a GPU on Mac mini M4?
No for the default cloud-LLM + edge-subtitle path. GPU helps only if you switch to local whisper subtitles or run many parallel ffmpeg jobs; upstream lists 4 GB VRAM as recommended, not required.
How does this compare to online AI video generators?
Upstream thanks RecCloud for hosted no-install access. Self-hosting MoneyPrinterTurbo gives unlimited batch control, local file ownership, and API hooks—trade-off is setup time. Hosted tools win if you refuse to touch a terminal; compare https://reccloud.com if you want zero install.