Mario Marino

progettista e sviluppatore di applicativi gestionali e sistemi basati su LLM

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