Generare uno short video HD con un click — script, voce, sottotitoli, musica e montaggio — senza pagare un centesimo di API per la parte di intelligenza artificiale. MoneyPrinterTurbo lo promette, e con un backend Ollama locale la promessa regge davvero: l'LLM che scrive il copione gira sulla tua GPU, a costo zero ricorrente. C'è un solo asterisco, ed è onesto metterlo subito in chiaro.
Lo stock footage — i clip video di sfondo — passa sempre da una API cloud (Pexels o Pixabay). La chiave è gratuita e istantanea, ma è obbligatoria. Quindi no: non è un setup air-gapped. È un sistema dove la parte costosa (LLM e voce) la self-hosti, mentre i materiali video restano una dipendenza esterna leggera. Per chi ha un homelab è comunque un affare.
Questo è il primo di due tempi. Qui smonto cosa fa il tool, com'è fatto dentro e come lo si installa sul lab — una RTX 2070 Super da 8GB di VRAM affiancata a un Ryzen 9. Niente test pratici, niente tempi di generazione, niente screenshot dell'output: quelli arrivano nella Parte 2, quando lo installo davvero e lo metto alla prova.
La WebUI Streamlit di MoneyPrinterTurbo. Credit: harry0703/MoneyPrinterTurbo (MIT)
Cos'è MoneyPrinterTurbo e cosa sa fare
MoneyPrinterTurbo è un tool open-source di harry0703 che genera short video HD in un click: un LLM scrive il copione, il sistema scarica clip di stock footage pertinenti, genera il voiceover TTS, aggiunge sottotitoli e musica di sottofondo, poi monta tutto in un video verticale o orizzontale pronto da pubblicare. È scritto al 98,5% in Python, licenza MIT, e al momento conta 68.200 stelle su GitHub con quasi 10.000 fork: non è un esperimento abbandonato, è uno dei progetti di AI video più seguiti in circolazione. L'ultima release, la v1.2.8, è del 28 maggio 2026.
Le feature che contano, al di là dello slogan "genera video con un click":
Script: lo scrive l'LLM da un topic, oppure incolli il tuo copione già pronto
Formati: verticale 9:16 (1080x1920) per Reels/Shorts/TikTok e orizzontale 16:9 (1920x1080)
Batch: genera più video in parallelo per confrontare varianti dello stesso tema
Sottotitoli: font, posizione, colore, dimensione e bordo personalizzabili
Voce TTS: più voci con anteprima in tempo reale, velocità regolabile, maschili e femminili in più lingue
Musica: traccia random o specifica, con controllo del volume
Materiali: stock HD royalty-free oppure i tuoi file video caricati a mano
Quell'ultima voce — il supporto ai materiali locali — è la chiave per chi vuole ridurre la dipendenza dal cloud: caricando i propri clip si aggira in parte la API di stock footage. Ma per generare automaticamente lo sfondo da un topic, la chiave Pexels resta necessaria. Ci torno tra poco, perché è il limite più importante da capire prima di partire.
Come è fatto dentro: MVC, WebUI e API
Sotto il cofano c'è un'architettura MVC pulita e due modi di usare il tool, ed è proprio questo che lo rende interessante per un homelab. Da un lato c'è una WebUI in Streamlit sulla porta 8501, comoda per smanettare e fare anteprime. Dall'altro c'è una REST API in FastAPI sulla porta 8080, con documentazione interattiva Swagger su /docs: questa è la porta che ti interessa se vuoi automatizzare la generazione da uno script o da un altro servizio del lab. Per chi self-hosta, avere l'API separata dalla UI significa poter mettere MoneyPrinterTurbo dietro un reverse proxy, esporre solo la 8080 a un workflow di automazione e tenere la WebUI sulla rete interna. Gira su Python 3.11, quindi nessuna sorpresa di runtime.
La API FastAPI esposta da MoneyPrinterTurbo (Swagger UI), accanto alla WebUI Streamlit. Credit: harry0703/MoneyPrinterTurbo (MIT)
La pipeline è una catena di provider configurabili. Il pezzo che mi interessa di più è l'LLM, perché è lì che normalmente parte il conto delle API a pagamento. MoneyPrinterTurbo supporta una lista lunga: OpenAI, Azure, Qwen, Gemini, DeepSeek, Moonshot, gpt4free, ModelScope e — quello che ci serve — Ollama. Le release recenti hanno aggiunto anche LiteLLM come gateway verso oltre 100 modelli e Grok di xAI via path OpenAI-compatibile, ma per il self-hosting la strada è una sola.
Con Ollama l'LLM gira interamente in locale: zero chiavi a pagamento, zero dati che escono dal lab per la parte di scrittura del copione. È la differenza tra pagare a consumo ogni copione generato e pagarlo una volta sola in corrente elettrica. Se hai già un'istanza Ollama in casa — e se segui il blog probabilmente sì — la punti e via. Avevamo visto come tenerla blindata in questa guida su Ollama e privacy, e come farla girare in un LXC Proxmox anche senza GPU dedicata.
Per la voce, il TTS di default è edge-tts: usa le voci di Microsoft Edge, è gratuito, non richiede chiavi e ha l'anteprima in tempo reale. L'alternativa è Azure Speech, con circa nove voci più naturali ma a pagamento e con chiave. Per questa serie resto su edge-tts in inglese, dove ha le voci native migliori. L'italiano è ottenibile (edge-tts ha voci it-IT), ma lo lascio fuori scope qui.
Cosa serve: hardware e chiavi
Per far girare MoneyPrinterTurbo con Ollama locale servono tre cose: una macchina che regga il montaggio video, una GPU che regga il modello LLM, e una chiave di stock footage. La buona notizia sul fronte hardware è che i requisiti ufficiali sono modesti — il montaggio gira su CPU via MoviePy e FFmpeg, la GPU serve solo a Ollama.
SpecCPU
Minimo4 core
Raccomandato6-8 core
Ottimale8+ core
SpecRAM
Minimo4 GB
Raccomandato8 GB
Ottimale16+ GB
SpecGPU
Minimonon richiesta
Raccomandato4+ GB VRAM
Ottimale8+ GB VRAM
Spec
Minimo
Raccomandato
Ottimale
CPU
4 core
6-8 core
8+ core
RAM
4 GB
8 GB
16+ GB
GPU
non richiesta
4+ GB VRAM
8+ GB VRAM
La RTX 2070 Super con i suoi 8GB di VRAM e il Ryzen 9 cadono dritti nella fascia "ottimale" della tabella. La GPU non serve a MoneyPrinterTurbo in sé: serve a Ollama, perché è lui a dover generare il copione in fretta. E qui arriva la domanda che si fanno tutti con 8GB di VRAM: quanto modello ci sta davvero?
Apro una parentesi tecnica, salta pure se la quantizzazione ti annoia. Un modello da 7 miliardi di parametri a quantizzazione Q4 occupa circa 4-5GB di VRAM; lo stesso a Q8 sale a 7-8GB. Significa che un 7B o un 8B in Q4_K_M — pensa a un llama3.1:8b-q4_K_M o un qwen2.5:7b — ci stanno comodi negli 8GB della 2070 Super, con un throughput nell'ordine dei 40 token al secondo. Il punto delicato è il KV cache del contesto: un context window da 8K si mangia altri 2-3GB, e a quel punto gli 8GB diventano stretti. Per MoneyPrinterTurbo però il copione di uno short è breve, quindi un context da 2048-4096 token basta e avanza. Tornando al punto: 8GB sono un confine, non una comfort zone, ma per questo carico specifico sono più che sufficienti.
Se vuoi i numeri reali su quanto rende una GPU di fascia diversa per l'inferenza locale, ne avevamo parlato in modo molto concreto in questa analisi sui costi hardware di un LLM locale — utile per capire se la tua scheda regge prima ancora di installare MoneyPrinterTurbo.
Veniamo all'asterisco. Per lo stock footage serve una chiave Pexels API, gratuita e istantanea registrandosi su pexels.com/api, ma obbligatoria. In alternativa c'è Pixabay, anch'essa gratuita. Si possono inserire più chiavi per non sbattere sui rate limit. Questo è il motivo per cui il setup non è offline puro: l'LLM con Ollama e la voce con edge-tts possono essere locali e gratis, ma i clip di sfondo passano sempre da una API cloud. Chi cerca un generatore video 100% air-gapped resterà deluso proprio su questo.
Installazione sull'homelab: Docker e configurazione Ollama
Il modo pulito di installare MoneyPrinterTurbo su un homelab è Docker Compose, che tira su due container isolati — la WebUI Streamlit sulla 8501 e l'API FastAPI sulla 8080 — senza sporcare l'host con dipendenze Python. La documentazione ufficiale parte dal clone del repository, dalla copia del file di configurazione di esempio e da un docker compose up (sintassi moderna, senza trattino). Su Windows è richiesto WSL2.
Secondo la documentazione ufficiale, i passi di base con Docker sono questi:
bash
git clone https://github.com/harry0703/MoneyPrinterTurbo.git
cd MoneyPrinterTurbo
cp config.example.toml config.toml
# modifica config.toml (vedi sotto), poi:
docker compose up
Se preferisci l'installazione manuale, la documentazione raccomanda uv sync --frozen (in alternativa venv o conda con pip), poi il lancio via webui.sh su Linux e macOS o webui.bat su Windows. Servono inoltre ImageMagick e FFmpeg: quest'ultimo può essere scaricato automaticamente o indicato a mano. Per chi è su Windows e non vuole toccare nulla, esiste anche un pacchetto one-click da estrarre in un percorso senza spazi né caratteri speciali.
Il cuore della configurazione self-hosted è la sezione Ollama in config.toml. Secondo il file config.example.toml ufficiale, va impostato il provider su ollama e indicato il modello che hai già scaricato:
toml
llm_provider = "ollama"
# vuoto = default http://localhost:11434/v1
# da impostare solo se usi un proxy o un host remoto
ollama_base_url = ""
# il modello scaricato in Ollama, es. qwen2.5:7b
ollama_model_name = "qwen2.5:7b"
# Ollama non valida la chiave: qualsiasi stringa va bene
ollama_api_key = "ollama"
Due note che fanno la differenza, perché sono esattamente i punti dove la configurazione Ollama genera attrito reale. Il commento ufficiale su ollama_base_url dice di non impostarlo se non usi un proxy: lasciato vuoto, punta a http://localhost:11434/v1. Se però Ollama gira in un altro container o su un'altra macchina del lab, qui ci va l'URL raggiungibile da MoneyPrinterTurbo — non localhost, che dentro un container punta a sé stesso. È il classico inghippo che genera issue come la #585 "Need Help using Ollama", aperta proprio per un connection error di questo tipo e poi chiusa.
La seconda nota riguarda i sottotitoli, ed è una scelta che tocca direttamente la VRAM. Il provider sottotitoli può essere edge (veloce) o whisper (più lento ma più affidabile). La cosa importante per chi condivide la GPU con Ollama:
toml
subtitle_provider = "whisper"
[whisper]
model_size = "large-v3"
device = "CPU" # default: nessuna contesa VRAM con Ollama
compute_type = "int8" # imposta "cuda" solo se Ollama non gira insieme
Con questa configurazione il quadro è chiaro: Ollama si prende la GPU per scrivere il copione, Whisper resta sulla CPU per i sottotitoli, edge-tts genera la voce gratis e online, e il montaggio gira su FFmpeg. L'unica spesa è il tempo per registrare una chiave Pexels. Per un homelab con una 2070 Super e un Ryzen 9, è uno stack che sta in piedi senza compromessi assurdi.
Sulla carta, almeno. Perché un conto è la tabella dei requisiti e il file di configurazione, un altro è la realtà di un video che esce davvero — con la sua qualità, la sua voce, i suoi tempi di generazione e i watt che la GPU brucia mentre macina i token.
Nella Parte 2: lo metto alla prova sul lab
Fin qui la teoria e l'installazione. Nella prossima puntata lo installo davvero sul lab e lo metto alla prova: backend Ollama locale, edge-tts in inglese, chiave Pexels per i materiali. Voglio vedere l'output reale — quanto è guardabile un video generato così, quanto è naturale la voce, quanto tempo serve a sfornarlo e quanta VRAM e quanti watt si porta via la 2070 Super mentre lavora. Niente numeri inventati: solo quello che misuro.
Se nel frattempo vuoi preparare il terreno, la cosa più utile è avere già un'istanza Ollama pronta e un modello 7-8B Q4 scaricato — il resto, lo vediamo all'opera la prossima volta.