MoneyPrinterTurbo, Tested for Real: We Generated a Short Video With It — Fully Free, Fully Local

MoneyPrinterTurbo is the open-source tool behind a wave of “AI prints money” posts: give it a topic and it writes a script, finds footage, adds a voiceover and subtitles, and renders a short video. The posts skip the part where you find out what it actually takes. So we installed it on our own small Linux machine, wired it to a fully free, fully local stack — no paid API, no cloud account — and generated a real video. Here is exactly what worked, what broke, and what it cost (spoiler: $0, plus a few honest caveats).

1. What MoneyPrinterTurbo is — and what the hype leaves out

MoneyPrinterTurbo is a free, open-source (MIT licence) Python program from the GitHub repo harry0703/MoneyPrinterTurbo. Its pipeline has six stages: an LLM writes a script from your topic, another LLM call produces search terms, a text-to-speech engine records the voiceover, subtitles are generated and timed, stock materials are downloaded (or your own clips are used), and MoviePy/FFmpeg renders the final video — portrait 9:16 by default. It runs as a web UI, an API, or a command-line tool; we used the CLI.

What the viral posts leave out: the tool is only the assembly line. The script model, the voice and the footage all come from somewhere — and each of those “somewheres” has its own requirements. Cloud LLMs need paid API keys. The stock libraries need an account key (free, but you have to register). The default voice is free, but it is a Microsoft online service. None of that makes the tool bad — it makes the “type a topic, receive money” story incomplete. We wanted to know whether the whole chain could run with zero paid services, so that is the version we tested.

2. How to install it — the exact steps we ran

Requirements (from the project README): Python 3.11 or newer and FFmpeg. Our test ran on November 14, 2026, on a small cloud Linux machine (about 1.5 CPU cores, 6 GB of RAM) with Python 3.12.3 and FFmpeg 8.1.2. The code we tested is commit ce289ff — the tree just past release v1.3.10. (The README also offers a PyPI package named mpt; we tested the source install below.)

Step 1 — Clone and install the dependencies. On our slow connection the clone took about 5 minutes and the pip install about 6.

git clone https://github.com/harry0703/MoneyPrinterTurbo.git
cd MoneyPrinterTurbo
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Step 2 — Install Ollama and pull a small local model (this replaces the paid cloud LLM). The official Linux package is a .tar.zst archive of about 1.5 GB; the model below is another 986 MB.

# install Ollama from https://ollama.com/download, then:
ollama serve &
ollama pull qwen2.5:1.5b

Step 3 — Create the config and point it at the local model. The first run copies config.example.toml to config.toml; we set three values in the [app] section. Writing the base URL explicitly matters — inside a container, MoneyPrinterTurbo otherwise guesses the host gateway address, and on our machine that guess produced an invalid IPv6 URL and the error Invalid port: ':1]'.

llm_provider = "ollama"
ollama_base_url = "http://127.0.0.1:11434/v1"
ollama_model_name = "qwen2.5:1.5b"

Step 4 — Choose a voice and footage. The default voice (en-US-AriaNeural-Female, Microsoft Edge TTS) is free and needs no key — on a normal home connection it simply works; read the test section for why it failed in our sandbox and what we used instead. For footage you have two honest options:

Step 5 — Generate. This is the exact command of our successful run (the Kokoro voice is our local substitute for Edge TTS — details in the next section):

python cli.py --video-subject "3 simple tips to take better product photos with your phone" \
  --video-language en --voice-name "kokoro:af_heart" --video-aspect 9:16 \
  --video-source local --video-materials "./clip01.mp4,./clip02.mp4,./clip03.mp4,./clip04.mp4,./clip05.mp4"

3. Our hands-on test: three runs, one real video

Target: one English, vertical 9:16 short on a neutral small-business topic — “3 simple tips to take better product photos with your phone” — produced end to end with no paid service anywhere in the chain. We ran the pipeline three times, changing one thing at a time, and kept the logs.

Version testedpost-v1.3.10 · ce289ff
Script modelQwen2.5 1.5B (local)
VoiceKokoro-82M (local)
Full run time2 min 36 s
Output1080×1920 · 13.2 s · 3.0 MB
Total cost$0

Run A — the default free voice fails in our sandbox (not the tool's fault)

Script generation worked immediately: Qwen2.5 1.5B, running locally via Ollama, produced a three-part script with headings, plus search terms. The run then stopped at the voice stage. The default Edge TTS voice talks to Microsoft's speech service over a WebSocket, and our sandbox's intercepting egress proxy breaks that handshake — we reproduced it three ways (direct connection, explicit proxy, repaired certificate bundle) and the WebSocket upgrade failed every time. On a normal home or office connection there is no such proxy and Edge TTS needs no key and no setup — this failure is our test environment, not the tool. We note it because anyone testing inside a restricted corporate or cloud network can hit the same wall.

The local voice substitute — Kokoro

MoneyPrinterTurbo has a built-in Kokoro provider that expects a small local TTS server (OpenAI-compatible, port 8880). We served the open-source Kokoro-82M model (Apache-2.0) with a ~50-line FastAPI wrapper around kokoro-onnx and selected it with --voice-name "kokoro:af_heart". It is fast — a 36-word sentence came back as 6 seconds of speech in about 7 seconds on our weak CPU — and fully offline. With it, the audio and subtitle stages both completed: the generated subtitle.srt timings line up with the narration.

Run B — stock footage without an API key stops, exactly as it should

With the voice fixed, we ran the default Pexels source with no API key configured. Script, terms, audio and subtitles all passed; the materials stage then stopped and the log said it plainly:

##### pexels_api_keys is not set #####
task failed, stage: materials, error: failed to download video materials from pexels

So the “no key needed” version of the stock-footage story is false: Pexels, Pixabay and Coverr all require a free account key. Registering is free and takes a few minutes in a browser — but it is a step, and any tutorial that skips it is skipping the part where your first run fails.

Run C — the full pipeline, end to end

For the successful run we used the built-in local-materials path: five 6-second portrait clips we made from our own product photos (a slow zoom with FFmpeg), fed in with --video-source local. The whole run — script, voice, subtitles, materials, render — finished in 2 minutes 36 seconds, about 48 seconds of it the final render. The result is a real file, not a mock-up:

final-1.mp4 — 1080×1920 (9:16), 13.23 seconds, 3,128,132 bytes, video + audio streams

We extracted frames at 2, 7 and 12 seconds to check: the footage plays, the narration is audible speech (Kokoro af_heart), and the subtitles are burned in at the bottom, matching the spoken lines word for word. The script the 1.5B model wrote for this run was:

1. Get the camera phone ready and position yourself for a good shot.
2. Use the app's built-in settings to adjust the lighting and focus.
3. Try different angles and positions to make your product stand out.

Which brings us to the honest part of this review.

What we checkedResult
Install from source (clone + pip)Passed. About 11 minutes total on a slow connection; no paid anything.
Script + search terms from a local LLM (Ollama, Qwen2.5 1.5B)Passed. No API key, no cloud. Quality is basic — see the limits section.
Default Edge TTS voiceBlocked by our sandbox's proxy (WebSocket handshake). Free and keyless on a normal connection; not testable from this machine.
Local Kokoro voice + subtitlesPassed. Natural-sounding speech, correctly timed subtitle file, fully offline.
Stock footage (Pexels) with no API keyFailed, informatively. The tool stops and tells you the key is missing. A free key is required.
Full render from local materialsPassed. 2 min 36 s end to end; 1080×1920, 13.2 s, ~3.0 MB, subtitles burned in and frame-checked.

Our verdict: the pipeline is real, and it genuinely can run at $0 — local model for the script, local or Edge voice, your own footage or a free stock key. What it produces is a competent assembly, not a hit video: with a small local model the script is generic, and the footage is stock or stills either way. The tool removes the editing labour. It does not remove the need for a good idea, and it guarantees nothing about views or revenue.

4. The limits, stated plainly

5. Safety — read this before you install anything

6. FAQ

Is MoneyPrinterTurbo really free?

The program itself is free and open source (MIT). Whether your setup is free depends on your choices: a local LLM (Ollama), the Edge voice or a local Kokoro voice, and either your own footage or a free stock API key keep the total at $0 — that's the exact stack we tested. Cloud LLMs and the AI-video material sources inside the tool are paid extras, not requirements.

Do I need an API key?

For stock footage, yes — a free one from Pexels, Pixabay or Coverr, placed in config.toml. Without it the materials stage stops with “pexels_api_keys is not set”. For the script, no key is needed if you run a local model through Ollama; for the voice, the default Edge TTS needs no key, and the local Kokoro route needs none either.

Why did my run fail at the materials stage?

Almost certainly the missing stock key above — it's the most common first-run failure and the tool prints the reason in the log. Either add a free key or switch to --video-source local with your own clips.

Why did script generation fail with “Invalid port: ':1]'”?

We hit this twice, for two different reasons: Python's HTTP library choking on IPv6 entries in the no_proxy environment variable (fix: run with a clean NO_PROXY=localhost,127.0.0.1), and the container auto-guess for the Ollama address (fix: set ollama_base_url = "http://127.0.0.1:11434/v1" explicitly in config.toml). On a regular home PC install, you will most likely see neither.

Can I use my own script instead of the AI's?

Yes — --video-script "your full text" skips LLM script generation. Given how basic a small local model's writing is (see the verbatim script in our test), this is the option we'd pick for anything public.

Will it make money?

We can't promise that, and you should distrust anyone who does. The tool reliably turns a topic into a watchable short; views, followers and revenue depend on the platform, the niche and the content itself, and monetisation has its own eligibility rules. Treat it as a free production tool, not an income stream.

Want a site built with tools like this?

MoneyPrinterTurbo is the kind of free, open tool we test before we recommend anything — run it ourselves, keep the logs, publish the failures too. See our website service, or browse our free tools — QR codes, invoices, colour tools and more, all running locally in your browser. Questions about this test: info@cluoprints.com.

Want it printed?

We can put your design on T-shirts, hoodies, mugs, posters and more — printed to order in Quebec, no minimums, with a free preview before you pay.

Contact us for a free quote