Il punto di partenza: la voce resta umana

Il vincolo di progetto più importante non è tecnico, è editoriale: la voce di ogni canzone deve essere quella vera di Guerda, registrata così com'è. Tutto il resto — arrangiamento, produzione, adattamento in altre lingue — può essere generato, ma la voce no. È la differenza tra "musica fatta con l'AI" e "musica di un'artista vera, prodotta con strumenti AI".

Il flusso di produzione

Guerda deposita una registrazione vocale grezza in una cartella. Da lì la pipeline prende il sopravvento:

FaseCosa succede
1. Ingestionevoice_ingest.py legge il file audio e chiede titolo, tema e lingua
2. Produzioneaudio_suno.py apre una sessione Suno condivisa e genera la traccia kompa completa sulla voce-persona di Guerda
3. Videovideo_render.py compone il video finale via FFmpeg, con il brand visivo di Guerda già bruciato nei pixel
4. Distribuzionedistribute_posts.py genera le cartelle post_pronti/ pronte per ogni piattaforma e lingua
5. Pubblicazionepublisher dedicati per FB, YT, IG, TikTok, LinkedIn

Ogni canzone esce in quattro lingue — italiano, francese, inglese, spagnolo — perché la diaspora haitiana in Europa, Nord America e Canada parla tutte queste lingue, spesso nella stessa famiglia.

Automatico ovunque sia sicuro farlo

Facebook, YouTube e Instagram sono completamente automatizzati su un Raspberry Pi con una coda locale, schedulati via cron sfalsati per non sovrapporsi. Ma "automatizzare tutto" non è stato l'obiettivo — lo è stato "automatizzare quanto la piattaforma lo permette in sicurezza".

Instagram è stato il rompicapo più interessante. La Graph API richiede un URL pubblico per i media, e ogni tentativo ovvio ha trovato un muro diverso: Google Drive personale con quota esaurita, un servizio di hosting temporaneo bloccato dal firewall locale, ngrok bloccato da un'ispezione TLS. La soluzione finale è stata la più semplice: un repository GitHub pubblico dedicato che ospita solo i video renderizzati, servito via raw.githubusercontent.com. Nessuna dipendenza da quote o servizi terzi instabili.

Dove ho scelto di non automatizzare

TikTok e LinkedIn restano semi-assistiti, e non per un limite tecnico che non sono riuscito a risolvere — per scelta.

TikTok blocca il login automatico (rilevamento anti-bot su cookie di sessione), ma non blocca la navigazione una volta loggati manualmente. La pipeline usa quindi una sessione Playwright persistente, aperta con un login umano una tantum, per compilare caption e pubblicare senza dover rifare l'accesso ogni volta.

LinkedIn è un caso diverso: qui il limite non è tecnico ma di policy. LinkedIn vieta esplicitamente l'uso di bot per pubblicare e sospende account — specialmente profili personali come quello di Guerda, non pagine aziendali — in modo più aggressivo di altre piattaforme. Ho costruito un sistema "compose-only": lo script apre l'editor, incolla la caption, verifica che sia stata inserita correttamente, e poi si ferma e aspetta che sia una persona a cliccare "Pubblica". Non un compromesso tecnico, una scelta di rischio: anche un post a settimana pubblicato da un bot resterebbe automazione non consentita, indipendentemente dal volume.

Automatizzare tutto quello che si può non significa automatizzare tutto quello che si potrebbe tecnicamente fare. Il click finale su "Pubblica", su LinkedIn, resta sempre umano — per scelta, non per un bug che non sono riuscito a risolvere.

Un fork, non un progetto da zero

Tecnicamente Guerda Music è un fork indipendente della suite di Bachata Vibes Music: stesso account Suno condiviso, stesso Raspberry Pi per la pubblicazione, stessa macchina Windows con GPU per il rendering FFmpeg. Cartelle isolate, tracker separati, ma infrastruttura riusata — costruire il secondo artista è costato una frazione del tempo del primo.

Cosa aggiungerei

Una volta completata la verifica d'identità richiesta da LinkedIn per riattivare la pubblicazione via API su pagina aziendale, e uno storico caption per non ripetere mai la stessa struttura testuale su brani consecutivi nella stessa lingua.