Categorie
PHP

Come ottenere il numero totale di visualizzazioni su YouTube

Qualche giorno fa ho aggiunto sulla sezione video di Ariete il numero di visualizzazioni dei video presenti sul canale YouTube (total Upload Views).

In questo articolo vi mostro come ottenere questo risultato con una sola riga di codice sfruttando le API YouTube.

Total Upload Views

Prima di tutta facciamo chiarezza su cosa sono gli totalUploadViews. Si tratta semplicemente della somma delle visualizzazioni di tutti i video presenti su un canale.
Se per esempio sul mio canale ho 4 video con le seguenti visite

  1. video 1 -> 123
  2. video 2 -> 100
  3. video 3 -> 89
  4. video 4 -> 90

il totalUploadViews rappresenta la somma delle loro visite (123+100+89+90 = 402). Se il numero inizia a diventare importante direi che sia carino farlo vedere anche sul proprio sito.
[box type=”note”]Le statistiche di YouTube (secondo loro documentazione) sono generate su base continuativa, da ogni 30 minuti fino a due ore.[/box]

Youtube Data API Protocol

YouTube ci fornisce un mezzo molto comodo per accedere alle informazioni. La Reference Guide: Data API Protocol è una documentazione destinata ai programmatori che scrivono applicazioni client che interagiscono con YouTube.
Visto che l’API restituisce i risultati in formato XML/JSON potremo accedervi per ottenere le informazioni con più linguaggi di programmazione. Noi in questo articolo useremo PHP.

yt:statistics

Il tag fornisce le statistiche su un video o un utente. Il tag ha diversi attributi, attraverso i quali possiamo ottenere informazioni come il numero dei sottoscrittori, il numero totale delle visualizzazioni, la data dell’ultimo accesso etc.. Ecco uno screenshot direttamente dalla documentazione ufficiale:

Di norma i risultati sono restituiti in formato XML, per esempio un link come questo:

https://gdata.youtube.com/feeds/api/users/username?v=2.0

a cui naturalmente dobbiamo sostituire “username” con il nostro (cioè il nostro canale), risponderà con un sacco di dati XML. Tuttavia l’approccio che voglio mostrare utilizza un’alternativa sempre più popolare per XML è cioè JSON (JavaScript Object Notation).
In questo caso cambiando semplicemente l’URL , otterremo i dati in formato JSON:

http://gdata.youtube.com/feeds/api/users/username?v=2&alt=json

Lo script

Bene dopo questa premessa è giunto il momento di arrivare al codice. Ecco un esempio attraverso il quale siamo in gradi di ottenere il numero dei visitatori:

$youtubeViewCount = json_decode(file_get_contents(
        'http://gdata.youtube.com/feeds/api/users/username?v=2&alt=json'
        ))->entry->{'yt$statistics'}->totalUploadViews;

E se volessimo usare una funzione?

<?
function getYouTubeStatistics($channel, $stat = 'totalUploadViews')
{
  return json_decode(file_get_contents('http://gdata.youtube.com/feeds/api/users/' . 
      $channel . '?v=2&alt=json'))->entry->{'yt$statistics'}->$stat;
}

//Total Video Views:
echo getYouTubeStatistics('ArieteAppliances') . '<br/>';

//Total Subscriber Count:
echo getYouTubeStatistics('ArieteAppliances', 'subscriberCount') . '<br/>';

//Video Watch Count:
echo getYouTubeStatistics('ArieteAppliances', 'videoWatchCount') . '<br/>';

//Total Video Count:
echo getYouTubeStatistics('ArieteAppliances', 'viewCount') . '<br/>';

//Last Web Access:
echo getYouTubeStatistics('ArieteAppliances', 'lastWebAccess') . '<br/>';
 ?>

Nello script sono state usate due funzioni file_get_contents che legge il contenuto di un file e lo restituisce sotto forma di stringa, e la funzione json_decode che decodifica una stringa in formato JSON.

Spero che lo troviate utile.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.