{"id":1678,"date":"2025-08-22T15:48:25","date_gmt":"2025-08-22T15:48:25","guid":{"rendered":"https:\/\/paoloronco.it\/?p=1678"},"modified":"2025-11-18T10:08:38","modified_gmt":"2025-11-18T10:08:38","slug":"automatizzare-wordpress-con-n8n-self-hosted-dal-post-al-voiceover-multilingua","status":"publish","type":"post","link":"https:\/\/paoloronco.it\/en\/automatizzare-wordpress-con-n8n-self-hosted-dal-post-al-voiceover-multilingua\/","title":{"rendered":"Automating WordPress with n8n Self-Hosted: From Post to Multilingual VoiceOver"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Dopo una prima esperienza su Make.com, ho deciso di portare il mio sistema di automazione in <strong>self-hosting con n8n<\/strong>.<br>Questo mi permette di avere maggiore controllo, flessibilit\u00e0 e soprattutto di scalare senza dipendere da piattaforme esterne.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il risultato \u00e8 un workflow che trasforma i contenuti pubblicati su WordPress in <strong>file audio (italiano e inglese)<\/strong> e li aggiunge automaticamente a pagine dedicate sul sito.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">? Obiettivo del Workflow<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019idea era semplice: ogni nuovo post su WordPress doveva essere:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Archiviato<\/strong> in modo ordinato,<\/li>\n\n\n\n<li><strong>Convertito in audio (Italiano ed EN[inglese])<\/strong>,<\/li>\n\n\n\n<li><strong>Pubblicato automaticamente<\/strong> in una sezione del sito.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Tutto senza passaggi manuali.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">? Come funziona<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Raccolta e tracciamento<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ogni giorno, a un orario prefissato, n8n legge un foglio Google Sheets che funge da \u201clista di lavoro\u201d.<br>Qui tengo traccia dei post con i loro campi principali (titolo, contenuto, data, ID, link).<br>Se un post non \u00e8 ancora stato processato, il flusso lo seleziona per l\u2019elaborazione.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">2. Pulizia e preparazione del testo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Prima di generare l\u2019audio, il testo viene normalizzato:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>rimozione di caratteri speciali, simboli o pezzi di codice che potrebbero disturbare la sintesi vocale,<\/li>\n\n\n\n<li>traduzione automatica in inglese, per avere due versioni parallele,<\/li>\n\n\n\n<li>ulteriore pulizia per assicurarsi che il risultato sia leggibile e fluido.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">3. Generazione dei file audio<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Una volta pronto il testo, viene inviato a un servizio TTS (Text-to-Speech) su Google Cloud.<br>Il workflow produce due file <code>.wav<\/code>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>uno in <strong>italiano<\/strong>,<\/li>\n\n\n\n<li>uno in <strong>inglese<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In questo modo ogni articolo ha la sua versione \u201cascoltabile\u201d in entrambe le lingue.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">4. Aggiornamento su WordPress<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Terminata la generazione, n8n aggiorna automaticamente due pagine del sito:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>una che raccoglie i voiceover in italiano,<\/li>\n\n\n\n<li>una per quelli in inglese.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Viene aggiunto un blocco con titolo, data, link all\u2019articolo originale e un player audio pronto per l\u2019ascolto.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">5. Chiusura del ciclo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Infine, il workflow aggiorna Google Sheets segnando il post come \u201cdone\u201d.<br>Cos\u00ec evito di processare due volte lo stesso contenuto e ho sempre sotto controllo lo stato delle lavorazioni.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 Risultati e utilit\u00e0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Con questo sistema:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ogni articolo pubblicato su WordPress diventa automaticamente una risorsa multiformato (testo + audio),<\/li>\n\n\n\n<li>posso offrire un\u2019esperienza pi\u00f9 accessibile e moderna ai lettori,<\/li>\n\n\n\n<li>ho un tracciamento chiaro e verificabile del processo.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">WorkFlow in dettaglio:<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"563\" src=\"https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-1024x563.png\" alt=\"\" class=\"wp-image-1679\" srcset=\"https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-1024x563.png 1024w, https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-300x165.png 300w, https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-768x422.png 768w, https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-1536x845.png 1536w, https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-2048x1126.png 2048w, https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-18x10.png 18w, https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-1200x660.png 1200w, https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-1320x726.png 1320w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"571\" src=\"https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-1-1024x571.png\" alt=\"\" class=\"wp-image-1680\" srcset=\"https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-1-1024x571.png 1024w, https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-1-300x167.png 300w, https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-1-768x428.png 768w, https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-1-1536x856.png 1536w, https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-1-2048x1141.png 2048w, https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-1-18x10.png 18w, https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-1-1200x669.png 1200w, https:\/\/paoloronco.it\/wp-content\/uploads\/2025\/08\/image-1-1320x735.png 1320w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">? Competenze messe in campo<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Automazione dei processi<\/strong> con n8n (trigger, condizioni, aggiornamenti su API esterne),<\/li>\n\n\n\n<li><strong>Integrazione cloud<\/strong> con Google Sheets e Google Cloud TTS,<\/li>\n\n\n\n<li><strong>Gestione multilingua<\/strong> (traduzione + sintesi),<\/li>\n\n\n\n<li><strong>Ottimizzazione del flusso<\/strong> per garantire che ogni step sia sicuro e ripetibile.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">? Conclusione<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Questo workflow rappresenta un\u2019evoluzione rispetto alla mia precedente implementazione su Make.com.<br>Grazie a n8n in self-hosting ho ottenuto pi\u00f9 controllo, sicurezza e possibilit\u00e0 di estendere in futuro il progetto, ad esempio con:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>nuove lingue,<\/li>\n\n\n\n<li>trascrizioni inverse dai file audio,<\/li>\n\n\n\n<li>report automatici sugli utilizzi.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Dopo una prima esperienza su Make.com, ho deciso di portare il mio sistema di automazione in self-hosting con n8n.Questo mi permette di avere maggiore controllo, flessibilit\u00e0 e soprattutto di scalare senza dipendere da piattaforme esterne. Il risultato \u00e8 un workflow che trasforma i contenuti pubblicati su WordPress in file audio (italiano e inglese) e li &hellip; <a href=\"https:\/\/paoloronco.it\/en\/automatizzare-wordpress-con-n8n-self-hosted-dal-post-al-voiceover-multilingua\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Automatizzare WordPress con n8n Self-Hosted: dal Post al VoiceOver Multilingua&#8221;<\/span><\/a><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[23],"class_list":["post-1678","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-portfolio"],"_links":{"self":[{"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/posts\/1678","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/comments?post=1678"}],"version-history":[{"count":2,"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/posts\/1678\/revisions"}],"predecessor-version":[{"id":1682,"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/posts\/1678\/revisions\/1682"}],"wp:attachment":[{"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/media?parent=1678"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/categories?post=1678"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/paoloronco.it\/en\/wp-json\/wp\/v2\/tags?post=1678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}