MoneyPrinterTurbo: a topic in, a vertical video out
One API call turns a topic into a finished vertical video. It is a template filler, not an editor.
- Topic in, finished 9:16 video out, from one API call, with no account anywhere.
- It cuts clips to fixed lengths and lays them under the voice. With my own clips, the footage had nothing to do with the words.
- I cannot speak to the "$6,000 to $10,000 a month" claims. I tested the software, not the business.
What the posts claim
Give it one topic and it writes the script, finds HD stock footage, adds voiceover, subtitles and music, and exports a finished video. It works with Claude, GPT, Gemini, DeepSeek and others. One post says "80k+ stars, MIT licence". Another says it is the pipeline behind faceless channels "earning $6,000 to $10,000 a month".
What it really is
MoneyPrinterTurbo is MIT-licensed Python: a FastAPI service, a Streamlit web UI and a CLI, with MoviePy and ffmpeg doing the editing. When I checked it had about 132,000 stars, not 80k, and was being pushed to daily.
The pipeline is: an LLM writes the script, then search terms, then footage, speech, subtitles, clips cut to the voice length, music mixed in, and an MP4. Every stage can be overridden with your own script, audio or clips.
Things to know before you use it:
- Many paid providers are wired in, some with affiliate links in the README.
- "Publish to TikTok, Instagram, YouTube Shorts" goes through upload-post.com, a paid third party that holds your social accounts. I did not use it.
- The bundled background music (29 MP3s) is "from YouTube videos". The README says to delete them if there are copyright issues. Do not use them on a monetised channel.
What I ran
Upstream's Dockerfile no longer builds (it targets Debian bullseye, and its apt step now fails) and it defaults to Chinese apt and PyPI mirrors. So I wrote my own: Python 3.11 on bookworm with official mirrors, 2.95 GB. The voice was a local Kokoro server instead of the default Edge TTS, which calls Microsoft's online service. Subtitle timing came from local Whisper (base). The script came from a free model through my homelab gateway. Footage was five synthetic six-second clips and a synthetic chord pad, standing in for Pexels footage and the bundled songs.
What happened
Topic: Why sunsets are red. One POST /api/v1/videos, then polling. Four sentences of script, Kokoro's af_heart voice, sentence-level subtitles, music at 15 per cent.
200 seconds end to end on 6 CPUs (310 seconds the first time, including the Whisper download). The output was a 34-second, 1080x1920 H.264 file of 11 MB, which I re-encoded to 720x1280 at 2.4 MB so it plays on a phone. The subtitles were readable, well placed and in sync. My eight tests for the config, request body and task-state mapping passed.
What did not work
- With your own clips the footage just cycles. Real channels need stock search (a free Pexels key) or generated visuals.
- Audio is not loudness-normalised. Mean level was -29 dB; YouTube wants about -14 LUFS, so you need a
loudnormpass. - Files the container writes were not readable from WSL (0600 on a Windows mount), so my run script copies them out.
- The output looks like every other faceless short: stock clips, centred captions, a voice. Fine for volume, weak on originality.
Verdict
Useful as an assembly line, not as a channel in a box. The REST API is good for automation: task ids, progress, a folder per task with the script, audio, subtitles and video. Feed it your own script, your own voice and your own visuals and it will cut, caption, mix and export many variants. Real footage needs a free Pexels or Pixabay account; posting needs a Google Cloud project for YouTube, or the paid upload-post.com plan.
Draft status: one topic, synthetic footage. If you think I got something wrong, tell me and I will correct the post and say so at the top.