isacco@gianlucaiunco:~$

Blog + automazione editoriale · 2025 — oggi

Scientifico — blog di divulgazione

Scientifico è un blog di divulgazione scientifica su WordPress che pubblica articoli generati con Gemini tramite uno script Python e GitHub Actions. Ho aperto il blog nel 2025 e nel 2026 ho automatizzato, con l'assistenza di Claude Code, la generazione di testi e immagini, la pubblicazione e la condivisione su Instagram e Telegram. Rileggo ogni articolo dopo la pubblicazione e ogni testo dichiara di essere generato con l'intelligenza artificiale.

Home page del blog Scientifico

Contesto

Scientifico è un blog italiano di divulgazione scientifica su WordPress, ospitato su Altervista, che pubblica in automatico articoli generati con il modello Gemini tramite uno script Python eseguito da GitHub Actions. Ho aperto il blog nell'aprile 2025 e dal luglio 2026 ne ho automatizzato la pubblicazione. È un progetto mio: ho ideato il blog, ho progettato e sviluppato l'automazione con l'assistenza di Claude Code e rileggo ogni articolo dopo la pubblicazione.

Obiettivo

Scientifico nasce per raccontare la scienza anche a chi non ha una formazione scientifica. Già nel 2025 sceglievo io gli argomenti e i testi erano scritti con un modello di intelligenza artificiale; nel 2026 ho automatizzato il ciclo completo, dalla scelta del tema ai social. Ogni articolo dichiara in modo esplicito di essere generato con l'ausilio dell'AI.

Cosa ho fatto

Come vengono pubblicati gli articoli?

Gli articoli vengono pubblicati da uno script Python che GitHub Actions esegue il lunedì, il mercoledì e il venerdì. Ogni esecuzione:

  1. sceglie a rotazione una di sei aree tematiche, dallo spazio alle neuroscienze;
  2. chiede a Gemini 2.5 Flash un articolo in formato JSON, con titolo, testo HTML, tag, meta description e descrizioni delle immagini;
  3. genera copertina e immagine nel testo con Cloudflare Workers AI (modello FLUX.2), con Pollinations come riserva;
  4. aggiunge indice, sezione "Leggi anche" e fino a tre fonti peer-reviewed ad accesso aperto trovate con OpenAlex;
  5. pubblica su WordPress via REST API con un'autenticazione dedicata, con il flag di contenuto AI di Altervista e la frase chiave di Yoast SEO;
  6. segnala il nuovo indirizzo ai motori di ricerca con IndexNow.

Posso anche chiedere un articolo su un argomento preciso da un workflow manuale, senza alterare la rotazione. Sul sito ho aggiunto snippet PHP per i dati strutturati JSON-LD.

Instagram, Reel e Telegram

Per ogni nuovo articolo l'automazione pubblica un carosello Instagram, un Reel e un post sul canale Telegram. Il carosello ha sei slide verticali 4:5 disegnate in Python con Pillow. Il Reel è un video mp4 1080×1920 composto con NumPy e imageio-ffmpeg, con un sottofondo musicale generato dal codice, quindi senza brani coperti da licenza. Instagram passa dalla Graph API di Meta, con l'etichetta "Info IA", e Telegram dalla Bot API; la pagina Facebook è collegata direttamente a WordPress. Un secondo workflow, il martedì e il giovedì, crea carosello, post Telegram e Reel per un articolo pubblicato in precedenza.

Come vengono controllati gli articoli generati?

Gli articoli generati passano per controlli automatici prima di uscire e per la mia rilettura dopo la pubblicazione. Le istruzioni date a Gemini fissano la voce del blog (apertura con un aneddoto, tono in seconda persona), escludono sette temi sensibili e aggiungono un avviso medico quando si parla di salute. Dopo la generazione, lo script confronta l'argomento con tutto l'archivio: se ripete un tema degli ultimi sei mesi riprova con un altro, e se il doppione resta non pubblica nulla.

La parte più difficile

Le difficoltà principali sono state i limiti dei piani gratuiti, le risposte non valide del modello, i duplicati sui social e le immagini fuori tema.

  • Quote gratuite. Gemini, Cloudflare e Instagram limitano le richieste: lo script ritenta con attese crescenti, verifica la quota di Instagram prima di lavorare e ha un tetto di immagini e pubblicazioni per esecuzione.
  • Risposte non valide. Gemini a volte restituisce JSON malformato o va in timeout: i due casi hanno budget di tentativi separati.
  • Duplicati. Un file di stato collega ogni articolo al suo carosello e al suo Reel, così nessun contenuto esce due volte.
  • Immagini generiche. Le descrizioni chiedono un solo soggetto concreto in una scena fotografica, perché gli stili astratti producevano immagini uguali per ogni tema.
  • Interfaccia di Instagram. I testi del Reel evitano le zone coperte dai pulsanti.

Immagini, fonti e social sono passaggi accessori: se uno fallisce, l'articolo viene pubblicato comunque.

Risultato

Oggi Scientifico pubblica tre articoli a settimana senza che io debba avviare nulla e li distribuisce su Instagram, Telegram e Facebook; il mio lavoro è rileggere e correggere i testi dopo la pubblicazione. Se ti serve un'automazione simile per pubblicare contenuti su un sito e collegarlo ai social, trovi cosa posso fare nella pagina servizi.