Featured image of post MoneyPrinterV2: What 18,000 Stars Worth of Automated Content Actually Looks Like

MoneyPrinterV2: What 18,000 Stars Worth of Automated Content Actually Looks Like

An assembly line for AI content — local LLMs write the script, KittenTTS reads it, Gemini paints the pictures. The video uploads itself.

⚡ TLDR

  • What it solves: Creating YouTube Shorts, Twitter posts, and affiliate pitches by hand is slow and repetitive; MoneyPrinterV2 chains local AI tools to do the assembly for you
  • Why it matters: The recent switch to Ollama + KittenTTS means everything except image generation runs locally — no API bills, no rate limits
  • Best for: Solo creators and side-project people who want volume on YouTube Shorts or Twitter without recording anything themselves
  • Main differentiator: It is not a library or an SDK. It is a finished pipeline — from script generation to upload — with CRON scheduling built in
  • Usecase example: You run one command, pick a niche, and walk away. Thirty minutes later there is a YouTube Short on your channel with AI-generated images, synthesized voice, and background music

MoneyPrinterV2: What 18,000 Stars Worth of Automated Content Actually Looks Like

Part 1: The Assembly Line in Your Garage

I watched a YouTube Short last week that felt slightly off. The images were vivid but generic. The voice was clear but had no breath. The script said real words in an order that made sense and communicated nothing.

It had 47,000 views.

There is an entire economy of content that exists in this uncanny valley — technically competent, spiritually empty, and surprisingly profitable. The people making it are not sitting in front of cameras. Many of them are not even writing the scripts.

MoneyPrinterV2 is one of the machines doing that work.

Picture an assembly line in a garage. Five stations, each doing one job. Station one writes a script — four sentences, by default. Station two reads the script aloud. Station three paints images to match. Station four stitches everything together with background music. Station five drives the finished product to YouTube and clicks “upload.”

No station knows what the others are making. No station asks whether the whole thing is any good. The assembly line does not have opinions. It has throughput.

Whether that is clever automation or content pollution depends on which end of the algorithm you are standing on. The repo has 18,000 stars. People have strong feelings about this, and most of those feelings are “give me the installation steps.”


Part 2: What MoneyPrinterV2 Actually Contains

The first thing you notice is that this is a CLI application with a menu. Not a web app. Not a SaaS. A Python script that prints numbered options and waits for you to type a digit.

1
2
3
4
5
6
7
8
=============== MENU ===============
 1. YouTube Shorts Automater
 2. Twitter Bot
 3. Affiliate Marketing
 4. Outreach (Local Businesses)
 5. Exit
====================================
Select an Option:

Four features, four separate pipelines. Each one glued together with a different combination of AI services.

The architecture is straightforward once you trace it:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
config.json (API keys, preferences)
    
main.py (menu, account management)
    
┌─────────────────────────────────────────┐
  YouTube          Twitter      AFM      
  ─────────        ───────      ───      
  Ollama script    Ollama tweet  Scrape  
  KittenTTS voice  Post via     Amazon   
  Gemini images    Firefox      Ollama   
  MoviePy video    CRON sched   pitch    
  Firefox upload                Twitter  
└─────────────────────────────────────────┘

The YouTube pipeline is the star. Ollama generates a script (default: four sentences — that number is configurable but telling). KittenTTS reads it aloud with one of eight voices. Gemini’s image API paints matching visuals in 9:16 aspect ratio. MoviePy stitches the audio, images, and a background song into a video. Whisper can add subtitles. Then a headless Firefox instance, logged into your YouTube account via a saved profile, uploads the result.

Three weeks ago something interesting happened. The project switched from external LLM APIs to local Ollama and from cloud TTS to KittenTTS. That change matters more than it sounds. Before: you needed API keys for text generation and speech. Now: text and voice run on your machine, for free. Only Gemini (image generation) still requires an API key.

The Twitter bot is simpler. Ollama generates a tweet about your configured topic. Firefox posts it. You can schedule it with CRON — once, twice, or three times a day.

Affiliate marketing scrapes an Amazon product page, feeds the title and features to Ollama, generates a pitch, and posts it to Twitter.

The outreach module is the odd one out. It scrapes Google Maps for local businesses (using a Go-based scraper), then sends cold emails via SMTP. This is the part where the tool stops feeling like content automation and starts feeling like something your spam folder knows intimately.

What the repo chose not to do is worth noting. There is no analytics dashboard. No A/B testing. No content quality scoring. No feedback loop from views back to script generation. The assembly line builds and ships. What happens after is your problem.


Part 3: What Changes in Practice

Making a YouTube Short

By hand: You write a script. Record yourself or find stock footage. Edit in Premiere or CapCut. Add music. Export. Upload. Write title, description, tags. For a 30-second Short, this takes at least an hour if you know what you are doing.

With MoneyPrinterV2:

1
2
3
4
python src/main.py
# Select 1 (YouTube)
# Select account
# Select 1 (Generate Video)

Ollama writes the script. KittenTTS reads it. Gemini generates images. MoviePy assembles. You confirm upload. Total active time: under five minutes. Most of it is waiting.

The difference is real but specific. You save time on mechanics. The creative judgment — what niche, what angle, what makes someone stop scrolling — that stays entirely with you. Or, more precisely, it stays with whatever four-sentence prompt Ollama generates from the word “motivation.”

Posting on Twitter

By hand: You think of something to say. You type it. You post. Maybe you schedule it with Buffer or Hootsuite.

With MoneyPrinterV2:

1
2
3
4
5
6
7
# In config.json
"twitter_language": "English"

# CRON options:
# 1. Once a day
# 2. Twice a day (10:00, 16:00)
# 3. Three times a day (08:00, 12:00, 18:00)

The bot generates tweets about your configured topic and posts them on schedule using your Firefox profile. No API keys needed for Twitter — it literally drives a browser.

This is either brilliant or terrifying depending on how you feel about an LLM tweeting as you while you sleep.

The Ollama Switch

Before (V1 era): You needed API keys for GPT or another cloud LLM. Every script generation cost money. TTS was cloud-based too. Running this at scale meant a growing bill. The “money printer” was spending money to make money, which is a business model, but not the one the name implies.

After (current version):

1
2
3
4
{
  "ollama_base_url": "http://127.0.0.1:11434",
  "ollama_model": "llama3.2:3b"
}

Pull a model, start Ollama, point config at localhost. Text generation is now free. KittenTTS runs locally too. The only remaining API cost is Gemini for images — and even that has a free tier.

This changes the economics fundamentally. The barrier to running MoneyPrinterV2 dropped from “I need several API subscriptions” to “I need a decent computer and a Gemini API key.”


Part 4: Getting Started — and What You Are Getting Into

MoneyPrinterV2 is for people who want to automate the mechanical parts of content creation and are comfortable with what that means. Not everyone should be.

Installation

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
git clone https://github.com/FujiwaraChoki/MoneyPrinterV2.git
cd MoneyPrinterV2

cp config.example.json config.json
# Edit config.json with your paths and API keys

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Prerequisites: Ollama running locally, ImageMagick installed
# Optional: Gemini API key for image generation

python src/main.py

You will also need Firefox with a profile already logged into your YouTube and Twitter accounts. The bot does not handle authentication — it borrows your session. This is clever and fragile in equal measure. One Firefox update that changes the upload UI, and the automation breaks.

Honest Tradeoffs

Content quality has a ceiling. A four-sentence script read by a synthetic voice over AI-generated images is a specific kind of content. It fills feeds. It gets views. It does not build an audience that trusts you. If you are fine with volume over depth, this is your tool. If you are not, you will need to intervene at every station of the assembly line, and at that point the automation saves you less than you think.

Firefox automation is brittle. The upload mechanism depends on browser automation via saved profiles. YouTube changes its UI. Twitter changes its UI. When they do, the bot breaks until someone fixes the selectors. The repo has 19 open issues. Some of them are about exactly this.

The outreach module sends cold emails. That Google Maps scraper into SMTP pipeline is effective, but it is also the kind of automation that gets your domain blacklisted if used carelessly. The repo’s disclaimer says “educational purposes only.” Read that twice.

AGPL-3.0 license. If you modify the code and deploy it as a service, you must open-source your modifications. This matters if you are building a business on top of it.

The Assembly Line, Revisited

MoneyPrinterV2 is not a content strategy. It is a conveyor belt. It will reliably produce videos, tweets, and pitches from the raw materials you give it — a niche keyword, a product link, a topic.

The quality of what comes off the belt depends entirely on what you feed in and how much you are willing to intervene. Four sentences from a 3-billion-parameter model, read by a synthetic voice, over generated images. That is the default product.

Eighteen thousand people starred this. Some of them are making money with it. The assembly line works. Whether what it builds is worth building — that question is not in the config.json.


github.com/FujiwaraChoki/MoneyPrinterV2


Further Reading

Made with laziness love 🦥

Subscribe to My Newsletter