PHP: visualizzare i video di YouTube
Una semplice funzione PHP per visualizzare i nostri video dal feed RSS di YouTube.
Possiamo visualizzare i nostri video o i video degli altri utenti di YouTube semplicemente accedendo al feed RSS di ciascun utente. Con PHP possiamo estrarre da questo feed l’URL con cui andremo a costruire l’URL finale di un tradizionale elemento iframe. Vediamo come.
L’URL di ciascun feed utente è il seguente:
|
1 |
http://gdata.youtube.com/feeds/base/users/nomeutente/uploads?alt=rss&v=2&orderby=published&client=ytapi-youtube-profile |
All’interno di questo feed abbiamo tanti elementi item contenuti nel wrapper globale channel che rappresentano i nostri video. Tali elementi contengono ciascuno un elemento link con l’URL alla pagina del video:
|
1 |
http://www.youtube.com/watch?v=OnoUrrue3lE&feature=youtube_gdata |
Ma, come saprete, l’URL degli iframe è diverso:
|
1 |
http://www.youtube.com/embed/OnoUrrue3lE?rel=0 |
Quello che li accomuna è l’ID del video, che nel nostro caso è la stringa OnoUrrue3lE. Tutto quello che dobbiamo fare è trasformare il primo URL nel secondo. Definiamo la seguente funzione PHP:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
function fetchYouTubeVideos($username='gabrieleromanato', $limit=3)
{
$feedURL = 'http://gdata.youtube.com/feeds/base/users/' . $username . '/uploads?alt=rss&v=2&orderby=published&client=ytapi-youtube-profile';
$html = '<div id="youtube">' . "\n";
if(file_get_contents($feedURL)) {
$feed = simplexml_load_file($feedURL);
$items = $feed->channel->item;
$index = -1;
$length = $limit - 1;
do {
$index++;
$html .= '<div class="video">' . "\n";
$link = $items[$index]->link;
$iframeLink = str_replace('watch?v=', 'embed/', $link);
$iframeLink = preg_replace('/&.+/', '', $iframeLink);
$html .= '<iframe src="' . $iframeLink . '?rel=0" width="560" height="315" frameborder="0" allowfullscreen></iframe>';
$html .= '</div>' . "\n";
}while($index < $length);
$html .= '</div>';
return $html;
} else {
$html .= '<p>Errore nel caricamento.</p>' . "\n";
$html .= '</div>';
return $html;
}
} |
La parte interessante della funzione è la manipolazione della stringa dell’URL tramite le funzioni str_replace() e preg_replace(). Volendo ottimizzare la performance, potete evitare le espressioni regolari e usare solo le funzioni per le stringhe.
La gestione degli errori è rudimentale. Per una migliore gestione delle eccezioni nel parsing XML vi consiglio di usare le funzioni apposite fornite da PHP per XML.
Potete visionare l’esempio finale in questa pagina.

Nessun commento. Aggiungine uno!
I commenti sono chiusi.