OS Media
Plugin e tema WordPress per il video, pubblicati sul repository ufficiale
- Periodo
- 2015 – 2016
- Ruolo
- progettazione, sviluppo e test
- Tecnologie
- PHP · WordPress · Video.js · JavaScript · Amazon S3
- Stato
- pubblicati, non più aggiornati
- Online
- https://wordpress.org/plugins/os-media/
a cosa serve
Mettere un video dentro WordPress, nel 2015, voleva dire scegliere fra due strade sgradevoli. Caricarlo nella libreria del sito, e allora il file stava dentro la cartella pubblica, chiunque ne conoscesse l'indirizzo poteva scaricarlo e il tema lo trattava come un allegato qualunque. Oppure appoggiarsi a una piattaforma esterna, e allora il video era di qualcun altro, con il suo player, i suoi suggerimenti a fine riproduzione e le sue condizioni.
Mancava la via di mezzo: un video servito dal proprio sito, con il proprio player, che si possa scorrere avanti e indietro come un video vero.
cosa fa
OS Media è un plugin e un tema per WordPress, estratti da openstream.tv, la piattaforma video su cui lavoravo in quegli anni: sono i pezzi pensati per funzionare anche fuori da quel contesto, e li ho pubblicati sul repository ufficiale di WordPress.org, dove sono ancora online sotto il nome autore mario marino.
il plugin
Fa streaming progressivo di video mp4, webm e ogv attraverso PHP, con cinque modi di inserire un video: installazione WordPress locale, file server esterno, Amazon S3, media uploader di WordPress, YouTube o Vimeo. Il player è Video.js, con skin personalizzabili. Funziona con qualunque tema, ma è pensato per lavorare insieme al tema OS Media.
far scorrere un video servito da PHP
«Streaming progressivo attraverso PHP» è la parte che merita una riga in più, perché è ciò che distingue questo plugin da un collegamento a un file.
Un file servito direttamente dal server web si può scorrere: il browser chiede una porzione di byte e il server gliela manda. Un file servito da uno script, di norma, no — lo script lo riversa dall'inizio, e trascinare la barra di riproduzione a metà video costa scaricare la prima metà. Il plugin implementa quel dialogo per conto proprio: legge l'intervallo di byte richiesto, si posiziona nel file, risponde con il codice di contenuto parziale e l'intervallo effettivamente servito, e rifiuta esplicitamente le richieste fuori misura invece di restituire silenziosamente il file intero. La lettura procede a blocchi di cento kilobyte, così un video da un gigabyte non passa mai per la memoria del processo.
Il guadagno non è la velocità: è che il file può stare fuori dalla cartella pubblica, o su uno spazio esterno, e restare comunque scorribile. Chi lo guarda ha l'esperienza di un video normale; chi lo pubblica decide chi può arrivarci, che è il motivo per cui uno passerebbe da uno script invece che dal server web.
il tema
È un child theme di Twenty Fourteen, e gestisce il layout dei custom post per i video in evidenza: due colonne, barra laterale a sinistra, colori personalizzabili, responsive.
La scelta di farne un child theme invece di un tema autonomo è la ragione per cui è ancora installabile: eredita da un tema mantenuto da altri tutto ciò che non riguarda il video, e quello che aggiunge è solo la parte che serve. Un tema completo avrebbe voluto essere aggiornato per ogni cambiamento di WordPress; questo doveva restare al passo su una superficie molto più piccola.
la revisione di terzi
Il fatto che conta di più è essere passati dalla revisione di WordPress.org: il codice è stato sottoposto a controllo esterno e accettato in un repository pubblico, e chiunque può verificarlo con due link — quello del plugin e quello del tema. Vale più di qualunque descrizione che potrei scriverne qui.
limiti dichiarati
- Non sono più aggiornati. L'ultima versione dichiara compatibilità con una versione di WordPress di dieci anni fa, e la libreria del player è ferma a quella dell'epoca. Restano online e scaricabili, il che è un fatto diverso dall'essere mantenuti.
- Lo streaming attraverso PHP costa un processo per ogni spettatore. Su un sito con pochi visitatori è la scelta giusta; oltre una certa concorrenza il posto giusto per servire i video è altrove.