SpVideo, una classe php per i video di Youtube e Vimeo.
SpVideo è la classe in PHP 5 che ho scritto per gestire i video dei due maggiori servizi di condivisione del settore: YouTube e Vimeo. Grazie a spVideo a partire dal semplice indirizzo della pagina (su YouTube o Vimeo) contente il video, è possibile ricavare numerosi elementi, come titolo, descrizione, autore del video, ma anche l'immagine di anteprima e il codice HTML per l'embed (valido XHTML strict). SpVideo si appoggia alle API rispettive di Youtube e Vimeo, ma non richiede autenticazione ne l'utilizzo di una developer key. È possibile usare due modalità per accedere ai dati: XML o preferibilmente, il più comodo e performante JSON.
Inclusione della classe.
SpVideo si compone di tre classi, due specifiche una per YouTube e una per Vimeo che possono operare anche in modalità standalone, e una classe principale che funge da ponte tra le precedenti, in modo da poter utilizzare indifferentemente i video di entrambi i servizi. L'utilizzo è semplice, una volta scelto il formato delle APi a cui accedere, JSON o XML, è necessario caricare nella root del sito o nella directory solitamente utilizzata per gli include il contenuto della cartella sp.video dell'archivio di download. È sufficiente includere solo il file relativo alla classe principale (sp.video.php) che funge da "wrapper" e che alla bisogna si occupa di utlizzare le due classi dedicate. Naturalmente è possibile gestire i percorsi e la struttura delle cartelle come meglio si crede.
include("sp.video/json/sp.video.php");
// or xml source
include("sp.video/xml/sp.video.php");
Costruttore e metodi.
Per inizializzare la classe è sufficente richiamare il costruttore (spVideo::init) che richiede un argomento obbligatorio: l'indirizzo della pagina dove è visibile il video che vogliamo processare.
$player_one = spVideo::init('http://vimeo.com/7560716');
$player_two = spVideo::init('http://www.youtube.com/watch?v=SuNprTu5Y5c');
// $player_two = spVideo::init('http://www.youtube.com/watch?v=J4nJQfVknzg&feature=related');
Per quanto riguarda gli altri metodi utili che spVideo mette a disposizione eccone un rapido elenco:
- getTitle(), permette di ottenere il titolo del video.
- getDescription(), come sopre per il testo descrittivo.
- getAuthor(), stesso discorso, permette di ottenere il nome dell'autore del video.
- getTags(), permette di accedere alle keywords correlate al video.
- getThumb(), permette di ottenere l'indirizzo delle diverse immagini anteprima: i formati disponibili dipendono dalla sorgente del video, se YouTube o Vimeo. Questo metodo accetta un parametro facoltativo che permette la scelta dell'immagine. I valori consentiti sono small (default), medium, large.
- getPlayer(), permette di ottenere l'indirizzo del player di Youtube o Vimeo. Questo metodo è utile soprattutto nei casi in cui si vuole gestire manualmente l'embed del video con diverse modalità (esempi sono l'uso di librerie come SWfObject e similari o lightbox e finestre modali).
- embedVideo(): questo metodo restituisce il codice html necessario per l'embed del video in una pagina web, una modalità di inclusione pienamente compatibile e valida XHTML strict. Il metodo embedVideo() prevede la possibilità di utilizzare un argomento facoltativo, un array di proprietà con cui è possibile personalizzare l'aspetto e le funzionalità del player(altezza, larghezza, colore, alta definizione, etc.). Vediamo le varie opzioni disponibili e i loro valori di default:
$defaultoptions = array(
'width' => '425',
'height' => '350',
'color' => 'CCCCCC',
'fullscreen' => 1,
'autoplay' => 0,
'loop' => 0,
'hd' => 0 // alta definzione
);
Il codice seguente propone un sempio funzionante con l'utilizzo base di tutti i metodi applicati su un video appartenente a Viemo:
include("sp.video/json/sp.video.php");
$player_one = spVideo::init('http://vimeo.com/7560716');
echo "<p><strong>Title</strong>: ".$player_one->getTitle()."</p>";
echo "<p><strong>Description</strong>: ".$player_one-> getDescription()."</p>";
echo "<p><strong>Author</strong>: ".$player_one-> getAuthor()."</p>";
echo "<p><strong>Keywords</strong>: ".$player_one->getTags()."</p>";
echo "<p><img src="".$player_one-> getThumb('small')."" /></p>";
echo "<div>".$player_one-> embedVideo()."</div>";
Requisiti e download.
Le classi che compongono SpVideo richiedono PHP versione 5 o superiore: è necessaria la presenza della libreria Curl. La presenza del modulo nativo JSON è raccomandata ma non strettamente necessaria.
Tutto il codice è rilasciato con licenza open source MIT, è possibile utilizzarlo e modificarlo liberamente a proprio rischio e pericolo. Suggerimenti e contributi sono bene accetti.
Utilizzo in modalità standalone con YouTube o Vimeo.
Non sempre si ha la necessità di prelevare i video contemponeareamente da entrambi i servizi di condivisione: se siamo interessati solo all'utilizzo di YouTube, o viceversa di Vimeo, possiamo includere direttamente solo la sottoclasse relativa. La sintassi di inizializzazione è un po' diversa, rispettivamente è necessario invocare new spYouTube e new spVimeo in luogo di spVideo::init(). I metodi e la loro applicazione invece rimangono gli stessi. Nel codice seguente degli esempi di inclusione utilizzando il sorgente di dati JSON.
include("sp.video/json/sp.youtube.json.php");
$test = new spYouTube('http://www.youtube.com/watch?v=y9Xtn_KwsW4&feature=fvw');
echo "<h1>".$test->getTitle()."</h1>";
echo "<div>".$test-> embedVideo()."</div>";
// or Vimeo
// include("sp.video/json/sp.vimeo.json.php");
// $test = new spVimeo('http://vimeo.com/5555555');
// echo "<div>".$test-> embedVideo()."</div>";Commenti
L'html nel testo del commento è abilitato: i tag consentiti sono: a, em, strong, p, code, pre, quote e br.
Gli attributi dei tag utilizzabili sono title e href.













1) 03 maggio 2010 - inserito da seo lace