Hace más de 5 años escribí cómo solucionar este problema usando la clase SimpleXMLElement para leer el feed del canal de YouTube y extraer desde ahí la información.
Aunque aquella solución sigue funcionando (pues los feeds RSS se niegan a morir) no es la mejor idea. Por eso les muestro hoy cómo hacer lo mismo usando la API de YouTube.
Lo primero que hay que hacer es obtener una API Key para YouTube de la Consola de Desarrolladores de Google. En este video de bajo presupuesto pueden ver cómo se consigue: https://youtu.be/gagwW_wjeLE
Una vez que tengas tu API Key necesitarás también lo siguiente:
- Obtener el ID del canal de YouTube con el que quieres trabajar
- Es todo.
Ahora solo hay que hacer una llamada al método search de la API de YouTube, y enviar como parámetros la API Key, el ID del canal, la cantidad de resultados que deseamos recuperar, el tipo de recurso (puede ser video, playlist o canal), el orden en el que se enlistarán los resultados, y por ahora sería todo.
La magia la hace el método search de la API de YouTube
GET https://www.googleapis.com/youtube/v3/search
Lenguaje del código: Apache (apache)
A este método hay que enviar ciertos parámetros con el método GET. A continuación muestro los parámetros necesarios para extraer el último video de un canal cuyo ID es UCBsHNrAjpac245BLUFb4jag
.
<?php
$query = http_build_query([
'key' => 'miApiKeyQueMeDioGoogle',
'channelId' => 'UCBsHNrAjpac245BLUFb4jag',
'part' => 'snippet',
'maxResults' => 1,
'type' => 'video',
'order' => 'date'
]);
$request = 'https://www.googleapis.com/youtube/v3/search?'. $query;
$response = json_decode(file_get_contents($request), true);
Lenguaje del código: PHP (php)
El resultado se obtiene por medio de la función file_get_contents
y como es un JSON, hay que decodificarlo con json_decode
(convertirlo a Array) para mayor comodidad.
Si sustituimos key por nuestra API Key y channelId por un canal válido. El resultado de aplicar print_r($response)
sería este:
Array
(
[kind] => youtube#searchResult
[etag] => dO1HghI5_Rwxl9CZ698CMUDWMYE
[id] => Array
(
[kind] => youtube#video
[videoId] => 3kteq74IkIY
)
[snippet] => Array
(
[publishedAt] => 2020-12-01T22:16:29Z
[channelId] => UCBsHNrAjpac245BLUFb4jag
[title] => ¿Favoritos para llegar a la final del Torneo Guardianes 2020?
[description] => Descripción de este video
[thumbnails] => Array
(
[default] => Array
(
[url] => https://i.ytimg.com/vi/3kteq74IkIY/default.jpg
[width] => 120
[height] => 90
)
[medium] => Array
(
[url] => https://i.ytimg.com/vi/3kteq74IkIY/mqdefault.jpg
[width] => 320
[height] => 180
)
[high] => Array
(
[url] => https://i.ytimg.com/vi/3kteq74IkIY/hqdefault.jpg
[width] => 480
[height] => 360
)
)
[channelTitle] => GG Sportsmx
[liveBroadcastContent] => none
[publishTime] => 2020-12-01T22:16:29Z
)
)
Lenguaje del código: Access log (accesslog)
Y por su puesto, teniendo este Array lo demás sobra. Puedes usar los thumbnails o extraer el videoID para hacer tu propio embed.