Plugin di chat Peertube: il 2023 sarà ricco di novità!

, di  John Livingston
[English] [français] [italiano]

Questa è la traduzione italiana dell’articolo originale: Plugin de tchat Peertube : 2023 sera riche en nouveautés !
Traduzione di Roberto Resoli - LinuxTrent

 Il plugin di chat

Uno dei miei progetti di software libero più importanti, e senza dubbio quello che mi sta più a cuore, è il plugin Peertube livechat.

Peertube è un software libero che consente di realizzare una piattaforma di video a richiesta e di diretta streaming. Le diverse installazioni di Peertube (chiamate "istanze") possono federarsi tra loro, facendo parte del cosiddetto fediverso, contrazione di "federazione" e "universo". Si tratta di un insieme di software in grado di comunicare tra loro. Include piattaforme video, piattaforme musicali, strumenti di micro-blogging, di pubblicazione e tutti i tipi di reti sociali.

Framasoft gestisce il progetto Peertube, ma non ha ritenuto di aggiungere una funzione di chat in modo nativo nel software. Ha preferito renderlo possibile attraverso il sistema di "plugin" che Peertube offre.

Ed è qui che entro in gioco io!

Sono stato contattato da ritimo e ho sviluppato al volo (in 3 giorni) una prima versione funzionante.

Ho scelto di affidarmi a una tecnologia esistente, collaudata e scalabile, XMPP. Questa scelta è stata motivata da una visione a lungo termine: dovevo essere in grado di evolvere facilmente il software, aggiungendo moderazione, federazione, bot, ... In breve, il protocollo XMPP e il server XMPP Prosody erano i più indicati.

In seguito, il plugin si è evoluto molto. Nel momento in cui scrivo queste righe, è alla sua sesta versione principale!

Per vedere una dimostrazione del plugin, potete andare qui.

C’è anche una sala demo in cui collaudo le versioni future qui.

 La ricerca di finanziamenti

Sono passati 3 anni da quando ho deciso di diventare uno sviluppatore di software libero indipendente. È soprattutto una scelta ideologica, che vuole uscire dal mercato capitalistico, dai suoi rapporti di subordinazione, e vuole lavorare per la creazione di "beni comuni digitali".

Lo sviluppo di questo plugin richiede tempo, molto tempo. E sto cercando di guadagnarmi da vivere. Quindi, per lavorarci, devo trovare dei fondi. Purtroppo devo dare priorità ai miei progetti in base al sostegno finanziario che trovo.

 2021/2022

In passato ho ricevuto diverse sovvenzioni da ritimo.

Ma gran parte del mio anno 2022 è stato dedicato alla ricerca di budget per lavorare su questo plugin. Ho anche trascorso molto tempo a lavorarci "a titolo gratuito" (vale a dire: non ho trovato nessuno che finanziasse il tempo impiegato).

Solo alla fine dell’anno sono riuscito a trovare un finanziamento solido e a lavorare su una tabella di marcia.

 Donazioni

Non ne ho parlato nel paragrafo precedente, ma ho anche ricevuto alcune donazioni, in particolare tramite la mia pagina liberapay. Da questa piattaforma ricevo in media 8,90 euro al mese.

Ho anche ricevuto una donazione tramite Github Sponsor.

Queste donazioni possono sembrare aneddotiche, ma in realtà sono molto motivanti. Pensare che uno sconosciuto sia disposto a darmi 10, 20 o 50 euro, solo perché quello che ho fatto è utile per lui, è estremamente gratificante.

Quindi "gran cuore con le dita" a tutte le persone che donano tramite questo tipo di piattaforma, sia a me che ad altri. Grazie, grazie, GRAZIE!

 Copie Publique / Copia pubblica

Code Lutin è un’azienda specializzata in software libero. Da diversi anni ha deciso di ridistribuire almeno l’1% del fatturato annuale a uno o più progetti di software libero. La decisione viene presa democraticamente tra i membri del team. Si tratta di un’iniziativa fantastica, che oltre ad aiutare finanziariamente, dà molta visibilità ai progetti scelti.

Ho avuto la fortuna di essere selezionato l’anno scorso.

E per il 2022 hanno deciso che era giunto il momento di fare un salto di qualità e di incoraggiare altre strutture (aziende, autoimprenditori, ...) a fare lo stesso. Così hanno creato la piattaforma "Rétribution Copie Publique". L’idea è semplice: se si beneficia di strumenti gratuiti e liberi, è giusto dare in cambio un po’ di denaro. Qualsiasi struttura che voglia aderire all’iniziativa può definire le proprie condizioni. Vi invito a visitare il loro sito web e a dare un’occhiata ai beneficiari passati.

E sono molto felice di essere stato nuovamente selezionato per una sovvenzione nel 2022 (per il plugin di chat di Peertube e, più in generale, per gli altri plugin di Peertube su cui sto lavorando).

 Framasoft

Alla fine di quest’anno, Framasoft ha allo stesso modo deciso di dedicare un budget per il plugin di chat.

Framasoft mi ha sempre sostenuto in questo progetto e Chocobozzz (il creatore di Peertube) è sempre stato molto reattivo quando ho avuto bisogno di modifiche al sistema di plugin di Peertube. È un vero piacere lavorare con persone come loro.

Devo menzionare i seguenti punti:

* Questo finanziamento è stato reso possibile dalle donazioni (soprattutto di privati) fatte a Framasoft negli anni precedenti.
* Framasoft è finanziata solo dalle donazioni, quindi "più donazioni a Framasoft => più capacità di finanziare servizi gratuiti intorno a PeerTube e altri progetti Framasoft" (e Framasoft ha molti progetti per gli anni a venire!).
* Framasoft è nel mezzo di una campagna di donazioni per il 2023. Manca ancora gran parte di quanto necessario per il 2023, quindi andate a sostenerli!

Se volete maggiori informazioni, si dà il caso che i due co-direttori di Framasoft fossero in appunto in diretta questa mattina per parlarne (questo è un link di Twitch, ma lo sostituirò con un link di Peertube non appena sarà disponibile).

 NlNet

NlNet è un’associazione olandese che finanzia progetti di software libero. Lancia diverse campagne di raccolta fondi all’anno, su temi diversi. Il denaro proviene da sponsor, tra cui la Commissione europea.

Dopo aver fatto domanda per la prima volta senza essere selezionato, ho tentato nuovamente la fortuna per il bando NGI Zero dell’agosto 2022. E questa volta, posso annunciarlo pubblicamente, abbiamo firmato!

Questo mi permetterà di lavorare sul plugin per diverse settimane, e di portare alcune evoluzioni molto attese! (vedi oltre in questo articolo).

 E per il 2023?

Dopo questa lunga ricerca di fondi, posso finalmente affrontare le evoluzioni del plugin!

Ho già pubblicato la versione 6.0.0, descritta qui in inglese o, più brevemente, in francese.

Ho riordinato tutti i compiti da svolgere sotto forma di ticket Github (in inglese). Ho aggiunto delle tappe fondamentali per fornire una tempistica approssimativa (mi sto ancora destreggiando tra diversi progetti, quindi spero che sarete tolleranti con i miei possibili ritardi 😉).

Ho anche creato un progetto Github che consente di vedere lo stato dei diversi compiti (e di filtrare per milestone).

Infine, ho aggiunto dei tag ai ticket Github specificando lo sponsor relativo al compito (se presente). È quindi possibile filtrare i ticket in base allo sponsor, grazie al quale verranno rilasciate le funzionalità.

NB: Code Lutin non è associato a nessuna attività in particolare, ma i loro finanziamenti esistono e mi hanno aiutato molto!

Ora vi illustrerò nel dettaglio le caratteristiche più importanti che verranno.

 Visualizzazione della chat nelle "incorporazioni".

È possibile incorporare un video Peertube in un sito di terzi. Fino a poco tempo fa, però, i plugin di Peertube non potevano aggiungere funzioni ai video incorporati.

Oggi è già possibile includere la chat, costruendo a mano il tag iframe appropriato. Se non capite di cosa sto parlando, beh... capite il problema ;).

La prima cosa che farò è aggiungere un’opzione per generare facilmente il markup necessario, in modo che tutto ciò che dovete fare sia copiare e incollare sul vostro sito web. Proprio come fareste per includere il video. Dovrete quindi solo generare l’iframe per il video e quello per la chat e posizionarli entrambi a vostro piacimento.

Poi, offrirò anche un’altra opzione. Quando si genera l’iframe per il video, si avrà un’opzione per includere/escludere la chat direttamente nello stesso iframe del video (e/o un pulsante per aprire la chat in una nuova finestra, devo ancora decidere).

Proporrò entrambe le soluzioni funzionali, poiché le ritengo entrambe utili. In effetti, non ha senso visualizzare la chat sopra il video se la miniatura è molto piccola, e viceversa.

Queste funzioni sono sponsorizzate da Framasoft.

 Riprogettazione UI/UX

Framasoft mi ha chiesto di lavorare sull’interfaccia (UI, User Interface) e sull’esperienza dell’utente (UX, User eXperience).

Esaminerò quindi l’integrazione del plugin da cima a fondo. Idealmente, questo si integrerà meglio con Peertube (stessi font, bordi, ...). Vedrò se è possibile spostare liberamente la finestra di chat.

Renderò anche le funzioni di moderazione più visibili e più comode da usare. Perché sì, il plugin permette già la moderazione avanzata, ma... in maniera un po’ nascosta. In passato non ho avuto il tempo di fare di meglio.

Infine, ho intenzione di migliorare l’integrazione della chat negli strumenti di streaming (in particolare OBS). Al momento, questo è già possibile (e documentato). Ma mi sono state date alcune idee su come migliorarlo.

 Gestione della Federazione

Peertube è una tecnologia federata. È possibile creare "ponti" tra le "istanze". Ad esempio, posso vedere una trasmissione in diretta sul server dell’associazione A, dal mio server personale B. Ma per il momento il plugin non sa come gestire la federazione. La chat viene visualizzata solo sull’istanza originale (A).

Grazie a un finanziamento di NlNet, farò in modo che la chat venga visualizzata sull’istanza da cui si sta guardando, e che si sia connessi con il proprio account su di essa (se necessario).

Il fatto di aver scelto la tecnologia XMPP mi renderà la vita più facile, questa è già stata fatta per essere decentralizzata. Ho solo alcune difficoltà tecniche da superare (Peertube deve agire come proxy web davanti al servizio, quindi devo proxare le comunicazioni a livello web).

Questo dovrà ovviamente essere accompagnato da funzioni di moderazione, per evitare comportamenti ostili (come "raid di bot" o "spam"). Chgi produce la diretta dovrà essere in grado di scegliere se aprire o meno alle istanze remote, se bandire in massa, ecc.

In un secondo momento, cercherei anche di standardizzare questi meccanismi di chat sul fediverso, per permettere di collegarsi ad esso da altri software! (perché non Mastodon, ad esempio). Il mio lavoro consisterà nel proporre uno standard "ActivityPub" per annunciare le chat associate a un oggetto, e nell’implementarlo in Peertube e nel plugin di chat.

 Bot di moderazione/interazione

Ho molte idee sulle caratteristiche dei bot (elenco non esaustivo):

  • pubblicazione automatica di testo nella chat (per link sponsorizzati, regole, ...)
  • moderazione automatica (blocco di alcune parole, espulsione, ecc.)
  • reazione ai comandi

In breve, molte funzioni che potreste aver già visto su Twitch e così via. So che è molto atteso e, buona notizia, sarà realizzato nel 2023 grazie a NlNet!

Sto anche pensando a un’interfaccia per chi fa le dirette, con un elenco di pulsanti di azione. Per esempio, per vietare con un clic o lanciare messaggi precompilati.

Infine, sto pensando a strumenti di interazione anche nell’altra prospettiva: un’azione nella chat provocherebbe una visualizzazione/un suono nello stream. Questo è ad esempio ciò che possiamo vedere su Twitch quando c’è una donazione.

Sentitevi liberi di proporre le vostre idee (preferibilmente in inglese, ma anche in francese) qui se avete un account.

 Traduzioni

Lavorerò anche sulle traduzioni del plugin, per cercare di supportare il maggior numero di lingue possibile.

 Accessibilità

NlNet fornisce un servizio di verifica dell’accessibilità ai suoi beneficiari. Così potrò assicurarmi, con l’aiuto di persone competenti, che il plugin di chat sia accessibile (ipovedenti, daltonici, portatori di handicap motori, ...), e correggere i problemi se necessario.

 Altro

Sono previste altre evoluzioni, ma non le illustrerò qui e ora. Il progetto Github offre una panoramica abbastanza completa.

 Conclusione

Queste sono le novità per questo plugin per la chat di Peertube. Spero che sarete entusiasti come lo sono io. Non vedo l’ora di cimentarmi con tutte queste funzioni!

Se volete discuterne, potete farlo su Github, sul forum di Peertube che leggo quasi quotidianamente o sul mio account Mastodon.

PS: l’immagine che illustra questo articolo è Sepia, la mascotte di Peertube. Pubblicato con licenza libera CC-BY-SA da David Revoy