DesarrolloLibre

Desarrollo Web, Android y mucho más

17-04-2017

En esta entrada veremos cómo obtener videos de un canal de Youtube con PHP, procesarlos y realizar alguna acción como por ejemplo mostrarlos en un listados.

Antes que nada debemos entender cómo está compuesta la URL de Youtube que emplearemos para consultar los video de canal:

https://www.googleapis.com/youtube/v3/search?key=$key&channelId=$channel&part=snippet,id&order=date&maxResults=50

Realizando una acotación vemos que empleamos La web de googleapis y no la de Youtube; la web de googleapis provee información sobre otras APIS de Google que puedes consultar; hay una gran cantidad de APIs y para poder obtener más información de las mismas puedes consultar el siguiente enlace: Google APIs Explorer

Volviendo a la explicación del a URL mostrada anteriormente, vemos que está compuesta por varios parámetros que por su naturaleza son pasados por GET:

  • channel para indicar el id de channel/canal que contiene el o grupo de videos a mostrar en un listado.
  • order el orden de traída de los videos el cual puede ser fecha, rating, alfabéticamente, etc; en el siguiente enlace puede obtener más información al respecto:Search: list.
  • maxResult para indicar el resultado máximo de videos esperados cuyo límite es de 50.

Teniendo lo anterior explicado lo que nos queda por hacer es realmente poco. Ahora solo tenemos que generar la petición y procesarla mediante PHP; para eso empleamos la siguiente función:

    function get_videos() {

        $key = 'Mi-key';
        $channel = 'Mi-Canal'; //ejemplo: UCL-aihy3UD61TmvCOL9szUw

        $url = "https://www.googleapis.com/youtube/v3/search?key=$key&channelId=$channel&part=snippet,id&order=date&maxResults=50";
        $json = file_get_contents($url);
        $obj = json_decode($json, true);

        // var_dump($obj);

        return $obj;
    }

Vemos que además del resto de los parámetros especificados anteriormente, existe un parámetro key el cual no es más que el generado en la Consola de desarrolladores de Google cuando creamos el proyecto y habilitamos la API de Youtube; ya este proceso lo hemos ejemplificado en anteriores entradas, por ejemplo en la de Login Social con la SDK de Google con PHP-CodeIgniter y los pasos son muy similares salvo que debemos habilitar la llamada: YouTube Data API y generar las credenciales de la misma.

El método file_get_contents permite obtener el código fuente (un string) de una página web a través de una URL, en nuestro caso la página web es texto plano en formato JSON el cual decodificamos con el método json_decode y luego podemos procesar e iterar perfectamente.

Si queremos pintar los videos:

    <?php foreach ($videos['items'] as $video) { ?>
        <?php if (isset($video['id']["videoId"])) { ?>
                                        <iframe class="box-center" width="560" height="315" src="https://www.youtube.com/embed/" frameborder="0" allowfullscreen></iframe>
            >?php } ?>
        <?php } ?>

Obtenemos un listado de videos como el de la siguiente imagen:

listado videos youtube

Publicidad

Give me for a beer!

Algunos recursos que te pueden interesar

TCPDF: clase Oper Source para generar PDF con PHP

TCPDF: clase Oper Source para generar PDF con PHP

Algunos artículos que te pueden interesar

Creando una plataforma de pago con PayPal y CodeIgniter (parte 1)

Creando una plataforma de pago con PayPal y CodeIgniter (parte 1)

Se explica cómo crear una plataforma de pago empleando PayPal con CodeIgniter, crear las cuentas y la librería de desarrollo para CodeIgniter.

Andrés Cruz 10-05-2016

Doctrine archivos de mapeo y entidades en Symfony

Doctrine archivos de mapeo y entidades en Symfony

Se explica como generar entidades a través de la bin/console en symfony mapeando desde la base de datos las relaciones.

Andrés Cruz 14-02-2017

Login Social con la SDK de Google con PHP-CodeIgniter

Login Social con la SDK de Google con PHP-CodeIgniter

Se explica cómo instalar la API PHP de Google Client en CodeIgniter, crear una aplicación en la Consola de Desarrolladores de Google y realizar el login social con Google.

Andrés Cruz 23-03-2017