Practical evaluation of
FujiwaraChoki/MoneyPrinterV2. Evaluation date: 2026-03-24 Evaluator: parkzz
- Current Status:
Concluded - Current Overall Verdict:
🔴 Not recommended - One-line conclusion: MoneyPrinterV2 can be coerced into generating an MP4, but the upstream quickstart is broken, the pipeline requires multiple undocumented workarounds, and the resulting short is low-quality enough that this evaluation concludes the project as a failure.
- Most important evidence: install log, C2 end-to-end result, generated MP4, C2 metadata, C1 failure note
- Not for: anyone looking for a usable "make money online" automation system, a clean README-to-results experience, or publishable Shorts output.
| Item | Value |
|---|---|
| Original repo | FujiwaraChoki/MoneyPrinterV2 |
| Eval repo | zinan92/eval__MoneyPrinterV2 |
| Original positioning | "An Application that automates the process of making money online." |
| Category | Open-source AI content automation / social automation |
| License | AGPL-3.0 |
| Tested commit | 7337133 |
| ID | Claim | Level | Status | Evidence |
|---|---|---|---|---|
| C1 | Install and start the main app by following the README | core | PARTIAL |
install.log, C1-startup.log, C1-startup-after-pins.log, C1-startup-with-local-config.log, failure note |
| C2 | YouTube Shorts Automater generates short-form videos | core | FAIL |
C2 result, generated MP4, metadata, prerequisites assessment |
| C3 | Twitter Bot can generate and schedule posts | core | SKIP |
evaluation intentionally stopped after C2 failure |
| C4 | Affiliate Marketing works across Amazon and Twitter | core | SKIP |
evaluation intentionally stopped after C2 failure |
| C5 | Local businesses and cold outreach workflow is usable | core | SKIP |
evaluation intentionally stopped after C2 failure |
| C6 | Documentation is sufficient for a new user to complete minimum validation | core | FAIL |
environment.md, install.log, C2 prerequisites assessment |
| C7 | Outputs are usable, not just generated | core | FAIL |
generated MP4, C2 result |
| C8 | "Automates the process of making money online" | marketing | FAIL |
derived from C2/C6/C7 failure and early termination of the eval |
| Item | Value |
|---|---|
| OS | macOS 26.2 (Darwin arm64) |
| Runtime | Python 3.12.12 in .venv |
| Default system Python | 3.13.7 |
| Dependencies checked | go present, ImageMagick installed, Ollama CLI installed |
| Local Ollama server | initially unreachable during preflight, later configured for C2 |
| Paid services used so far | Gemini image generation API |
| Setup status | virtualenv created, requirements installed, startup reaches menu only after eval-side compatibility pins, local config workaround, and additional C2 setup |
python3.12is available locally, matching the README's stated version requirement.config.example.jsoncan be copied directly toconfig.json.- dependency installation completes successfully after allowing networked package resolution.
- after pinning
selenium==4.10.0andmoviepy==1.0.3, import-level startup blockers are removed. - with a local
ollama_modelvalue set in ignoredconfig.json, the app reaches the main menu and cleanly exits on option5. - the YouTube pipeline can be forced through to a real
.mp4artifact after additional eval-side workarounds.
- the documented startup command
python src/main.pyfails on a fresh upstream dependency resolution before reaching the menu. - two independent runtime import blockers were confirmed:
selenium-firefoxvs modern Selenium- old MoviePy import paths vs modern MoviePy
magickis not installed locally, which is likely to affect media-generation claims even after startup is fixed.- the app expects Ollama-related prerequisites that are not surfaced as part of a simple "run the app" story.
- the flagship Shorts workflow only completed after extra monkey-patching and local setup steps that are nowhere in the README.
- the final generated short was not good enough to treat as publishable output.
- created a local
.venvwithpython3.12rather than using the systempython3(which is 3.13.7) - copied
config.example.jsontoconfig.jsonwithout filling secrets yet, just to test minimum startup behavior - pinned
selenium==4.10.0in the eval repo to restoreselenium_firefoxcompatibility - pinned
moviepy==1.0.3in the eval repo to restore legacymoviepy.editorand fx imports - set
ollama_modellocally in ignoredconfig.jsonto bypass model enumeration against a missing local Ollama service - applied a Pillow compatibility monkey-patch during C2 testing because MoviePy 1.0.3 still expects
PIL.Image.ANTIALIAS - monkey-patched
YouTube.__init__during C2 testing to bypass forced Firefox startup for generation-only execution
5/5. The project can be pushed over the line technically, but the setup burden and undocumented workarounds are far beyond what the README implies.
- README says: clone the repo, copy config, create a venv, install requirements, then run
python src/main.py - What I did: created
.venvwith Python 3.12, copiedconfig.example.json, installed all requirements, then executed the startup command. After the initial failure, I tested minimal compatibility pins for Selenium and MoviePy and re-ran startup with a localollama_modelvalue. - What happened:
- fresh upstream dependency resolution failed on
selenium.webdriver.firefox.firefox_binary - after pinning Selenium, startup advanced and then failed on
moviepy.editor - after pinning MoviePy and setting a local
ollama_model, startup reached the menu and exited cleanly on option5
- fresh upstream dependency resolution failed on
- L1 Runs:
PARTIAL - L2 Feature works: not reached yet
- L3 Claim holds: not reached yet
- Verdict:
PARTIAL - Evidence: install log, initial startup failure, startup after Selenium pin, startup after both pins, startup with local model config, import regression tests, failure note
- Why this matters: the README's minimum validation path is not currently reproducible as written, but the app is not completely dead; it becomes runnable after multiple undocumented compatibility and local-config workarounds
- README says: Python 3.12 is required and the app can be started after dependency installation
- What I observed: Python 3.12 guidance was useful, but the README still misses critical reality: Ollama install and model pull, ImageMagick install and pathing, Songs/ setup, Gemini API setup, dependency drift in Selenium/MoviePy, and the need for non-trivial local workarounds to finish the YouTube pipeline
- Verdict:
FAIL - Evidence: environment snapshot, install log, startup log, C2 prerequisites assessment
- README says: the project automates YouTube Shorts generation
- What I did: completed the generation path through topic, script, metadata, image prompts, Gemini image generation, TTS, subtitles, and assembly, then reviewed the resulting MP4
- What happened: after dependency pins and test-only monkey-patches, the pipeline produced a real vertical MP4, but the video quality was poor enough to treat the result as unusable
- L1 Runs:
PASSwith workarounds - L2 Feature works:
PASSin the narrow sense that an MP4 is produced - L3 Claim holds:
FAIL - Verdict:
FAIL - Evidence: C2 result, generated MP4, generation metadata, C2 prerequisites assessment
- Why this matters: a generated file is not the same thing as a usable Short. The flagship workflow produced a low-quality result after a high-friction setup, which makes the headline value proposition fail under evaluation.
- Decision: stop the evaluation after C2 and conclude the repo
- Reason: the flagship content-generation workflow already failed on output quality, and the setup burden was far higher than the README suggests
- Impact: C3, C4, and C5 are left as
SKIPbecause continuing would not change the overall verdict enough to justify more time
- Usable output generated: technically yes, practically no
- Publishable without major edits: no
- Consistency checked: not deeply; the first successful run was already poor enough to stop
- Potentially oversold so far: the README overstates how directly this turns into valuable or publishable content
- install.log - fresh dependency installation on Python 3.12
- C1-startup.log - initial startup failure on
selenium_firefox - C1-startup-after-pin.log - startup failure on
moviepy.editorafter Selenium pin - C1-startup-after-pins.log - startup reaches preflight after both dependency pins
- C1-startup-with-local-config.log - startup reaches the menu and exits cleanly with a local
ollama_model - C1-import-tests.log - regression-style import checks for
TwitterandYouTubemodules - C2-e2e-result.md - end-to-end C2 execution summary
- C2-stage-verification-summary.md - stage-by-stage prerequisites and pipeline assessment
- environment.md - local runtime snapshot and preflight notes
- C1-startup-import-error.md - reproduction and impact summary for the startup blocker
- C2-prerequisites-assessment.md - C2 prerequisite gaps vs README
- C2-e2e-failure.md - prior assembly failure before Pillow workaround
- C2-generated-video.mp4 - generated Shorts artifact used for the final quality judgment
- C2-generation-metadata.json - captured topic, script, prompt count, elapsed time, and file metadata
- moneyprinterv2-checklist.md - the live checklist for the remaining claim-by-claim evaluation
- Current blocker: the upstream README path still does not reach the menu without eval-side workarounds
- Hidden prerequisites: Ollama, ImageMagick, Songs/, Gemini API, and manual model selection are more material than the README suggests
- External dependency risk: the project is highly exposed to third-party API, package, and browser-automation drift
- Compliance risk: outreach and social automation claims carry account and policy risk
- Evaluation limit: C3-C5 were intentionally not pursued after the flagship workflow failed on quality
🔴 Not recommended
- people studying how the author assembled an AI-content pipeline
- tinkerers who are comfortable debugging dependency drift and patching local workflows
- anyone expecting a clean README-to-results experience
- anyone expecting publishable Shorts quality out of the box
- anyone evaluating this as a serious "make money online" product
No. This evaluation stops here. The project consumed too much setup energy for an output that was not worth shipping.
- the upstream quickstart is broken
- the flagship C2 workflow needs multiple undocumented fixes and local hacks
- the resulting short is low-quality enough that "it generated an MP4" does not translate into product value
- once the main attraction fails this hard, continuing into C3-C5 is low leverage for this eval
Original README snapshot (2026-03-24)
♥︎ Sponsor: The Best AI Chat App: shiori.ai. Use code MPV2 for 20% off.
𝕏 Also, follow me on X: @DevBySami.
An Application that automates the process of making money online. MPV2 (MoneyPrinter Version 2) is, as the name suggests, the second version of the MoneyPrinter project. It is a complete rewrite of the original project, with a focus on a wider range of features and a more modular architecture.
Note: MPV2 needs Python 3.12 to function effectively. Watch the YouTube video here
- Twitter Bot (with CRON Jobs =>
scheduler) - YouTube Shorts Automater (with CRON Jobs =>
scheduler) - Affiliate Marketing (Amazon + Twitter)
- Find local businesses & cold outreach
MoneyPrinter has different versions for multiple languages developed by the community for the community. Here are some known versions:
- Chinese: MoneyPrinterTurbo
If you would like to submit your own version/fork of MoneyPrinter, please open an issue describing the changes you made to the fork.
⚠️ If you are planning to reach out to scraped businesses per E-Mail, please first install the Go Programming Language.
git clone https://github.com/FujiwaraChoki/MoneyPrinterV2.git
cd MoneyPrinterV2
# Copy Example Configuration and fill out values in config.json
cp config.example.json config.json
# Create a virtual environment
python -m venv venv
# Activate the virtual environment - Windows
.\venv\Scripts\activate
# Activate the virtual environment - Unix
source venv/bin/activate
# Install the requirements
pip install -r requirements.txt# Run the application
python src/main.pyAll relevant document can be found here.
For easier usage, there are some scripts in the scripts directory, that can be used to directly access the core functionality of MPV2, without the need of user interaction.
All scripts need to be run from the root directory of the project, e.g. bash scripts/upload_video.sh.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us. Check out docs/Roadmap.md for a list of features that need to be implemented.
Please read CODE_OF_CONDUCT.md for details on our code of conduct, and the process for submitting pull requests to us.
MoneyPrinterV2 is licensed under Affero General Public License v3.0. See LICENSE for more information.
This project is for educational purposes only. The author will not be responsible for any misuse of the information provided. All the information on this website is published in good faith and for general information purpose only. The author does not make any warranties about the completeness, reliability, and accuracy of this information. Any action you take upon the information you find on this website (FujiwaraChoki/MoneyPrinterV2), is strictly at your own risk. The author will not be liable for any losses and/or damages in connection with the use of our website.