Skip to main content

Installation

This guide covers installing all prerequisites and setting up MoneyPrinter for local development.

System Requirements

  • Operating System: Linux, macOS, or Windows
  • Python: 3.11 or higher
  • Memory: 8GB RAM minimum (16GB recommended for larger models)
  • Storage: 10GB+ for models and temporary video files

Prerequisites

1. Python 3.11+

Verify your Python version:
python --version
# or
python3 --version
If you need to install or upgrade Python:
sudo apt update
sudo apt install python3.11 python3.11-venv python3-pip

2. uv Package Manager

MoneyPrinter uses uv for fast, reliable dependency management.
curl -LsSf https://astral.sh/uv/install.sh | sh
Verify installation:
uv --version

3. FFmpeg

FFmpeg is required for video processing and encoding.
sudo apt update
sudo apt install ffmpeg
Verify installation:
ffmpeg -version

4. ImageMagick

ImageMagick is used for subtitle rendering and text overlays.
sudo apt update
sudo apt install imagemagick
Verify installation:
magick --version
# or on older versions:
convert --version
If ImageMagick is not auto-detected, you’ll need to set IMAGEMAGICK_BINARY in .env (see Configuration).

5. Ollama

Ollama provides local LLM inference for script generation.
curl -fsSL https://ollama.com/install.sh | sh
Start the Ollama service:
ollama serve
Pull a model:
ollama pull llama3.1:8b
Verify available models:
ollama list
Recommended models:
  • llama3.1:8b - Balanced performance and quality
  • mistral:7b - Fast inference
  • llama3.1:70b - Best quality (requires high-end GPU)

Install MoneyPrinter

Clone Repository

git clone https://github.com/FujiwaraChoki/MoneyPrinter.git
cd MoneyPrinter

Install Python Dependencies

Using uv (recommended):
uv sync
This reads pyproject.toml and installs all required packages:
pyproject.toml
[project]
name = "moneyprinter"
version = "3.0.0"
requires-python = ">=3.11"
dependencies = [
    "flask>=3.1.0",
    "flask-cors>=5.0.0",
    "moviepy>=2.1.1",
    "ollama>=0.4.5",
    "requests>=2.32.3",
    "sqlalchemy>=2.0.36",
    "psycopg>=3.2.3",
    "python-dotenv>=1.0.1",
    "termcolor>=2.5.0",
    "pillow>=11.0.0",
    "google-api-python-client>=2.156.0",
    "oauth2client>=4.1.3",
    "assemblyai>=0.35.1",
]
If you prefer pip over uv:
pip install -e .

Create Environment File

cp .env.example .env
Windows PowerShell:
Copy-Item .env.example .env
See Configuration for details on setting required variables.

Verify Installation

Run the startup checks:
uv run python Backend/main.py
You should see:
INFO: Environment variables validated
INFO: ImageMagick found at /usr/local/bin/magick
 * Running on http://0.0.0.0:8080
If you see errors about missing environment variables, edit .env to add:
TIKTOK_SESSION_ID="your_session_id_here"
PEXELS_API_KEY="your_pexels_key_here"

Optional: Development Dependencies

To run tests and development tools:
uv sync --group dev
This installs additional packages defined in pyproject.toml:
pyproject.toml
[project.optional-dependencies]
dev = [
    "pytest>=8.3.4",
    "pytest-cov>=6.0.0",
]
Run tests:
uv run pytest

Directory Structure

After installation, your project should look like:
MoneyPrinter/
├── Backend/          # Flask API and worker
│   ├── main.py       # API server
│   ├── worker.py     # Job processor
│   ├── pipeline.py   # Video generation
│   ├── gpt.py        # Ollama client
│   ├── models.py     # Database models
│   └── repository.py # Job queue logic
├── Frontend/         # Web UI
│   ├── index.html
│   └── app.js
├── fonts/            # Subtitle fonts
├── Songs/            # Background music
├── temp/             # Temp video files
├── subtitles/        # Generated subtitles
├── tests/            # Test suite
├── .env              # Configuration
├── pyproject.toml    # Dependencies
└── docker-compose.yml # Docker config

Next Steps

Configuration

Configure environment variables and API keys

Quickstart

Generate your first video

Docker Setup

Deploy with Docker Compose

Troubleshooting

Common installation issues

Common Issues

Ensure you’re using Python 3.11+:
python --version
If you have multiple Python versions, specify explicitly:
uv sync --python 3.11
Edit ImageMagick’s policy file to enable video processing.Linux: /etc/ImageMagick-6/policy.xml or /etc/ImageMagick-7/policy.xmlFind and comment out or remove this line:
<policy domain="path" rights="none" pattern="@*" />
Or add permissions for video formats:
<policy domain="coder" rights="read|write" pattern="MP4" />
<policy domain="coder" rights="read|write" pattern="MOV" />
Ensure Ollama is running:
ollama serve
Check if it’s accessible:
curl http://localhost:11434/api/tags
If running on another machine, set OLLAMA_BASE_URL in .env.

Build docs developers (and LLMs) love