Empezando con la API YouTube con PHP: Cómo obtener detalle de los videos de un canal

- Andrés Cruz

Empezando con la API YouTube con PHP: Cómo obtener detalle de los videos de un canal

PHP es una tecnología que nos sirve para hacer muchos tipos de operaciones que van mucho más allá de guardar datos y mantener lógica de negocios, como por ejemplo conectarnos a otras webs y obtener datos de la misma como haremos en esta entrada; veremos cómo obtener el detalle de los videos de un canal de YouTube empleando la API que tiene provista para PHP, procesarlos y realizar alguna acción como por ejemplo mostrarlos en un listados, que vendría siendo lo más común, esto nos sirve bastante si queremos agregar los videos ocultarlo y dejar el sonido de fondo, es muy empleado en webs de música que puedes conseguir por Internet.

Composición de la URL de YouTube, clave para realizar las peticiones CURL

Antes que nada debemos entender cómo está compuesta la URL de Youtube que emplearemos desde PHP para realizar las peticiones y esto es el corazón de nuestro experimento o ejemplo que vamos a realizar un poco más adelante; la URL de YouTube para realizar las consultas del detalle de los video de un canal es como la siguiente:

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 google apis también conocida como la Google Developers y no la de Youtube; la web de google apis 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 de la URL mostrada anteriormente, vemos que está compuesta por varios parámetros que por su naturaleza son pasados por HTTP 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 que internamente emplea una petición CURL:

    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;
    }

Explicando el código para realizar la consulta CURL a la API de YouTube

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.

Mostrar el detalle de los videos YouTube con PHP y HTML

Si queremos pintar los videos en nuestro HTML que vendría siendo lo básico que queremos hacer, mostrar un listado de los videos obtenidos, podemos hacerlo con el siguiente código PHP:

    <?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/<?php echo $video['id']["videoId"] ?>" frameborder="0" allowfullscreen></iframe>
            >?php } ?>
        <?php } ?>

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

listado videos youtube

Conclusiones

Y esto es todo, con dos sencillos pasos podemos obtener los videos de YouTube, que lo hacemos realizando una consulta CURL a la API de youTube que es perfectamente pública y legal; YouTube nos ofrece esta herramienta para potenciar nuestros sitios y de esta manera que sean dinámicos, mostrando contenido en tiempo real y perfectamente actualizados, y el siguiente y último de los pasos, es que ya que tenemos nuestro vídeo, pues simplemente los retornamos y los pintamos en un listado.

Este es un script que fácilmente podemos llevar a los framework PHP mediante un helper o una librería y de esta forma traer los vídeos de un canal de YouTube.

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy

Acepto recibir anuncios de interes sobre este Blog.