Este es el código para integrar en Appscripts.
Tú ya lo tienes integrado en la hoja de google sheets, pero por si acaso, aquí te lo dejo.
function obtenerVideosPopulares() {
var hoja = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var canalId = hoja.getRange("A1").getValue(); // Asume que el ID del canal está en A1
var apiClave = 'INTRODUCE AQUÍ TU CLAVE API DE YOUTUBE'; // Asegúrate de reemplazar esto con tu clave de API real.
var url = `https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=${canalId}&maxResults=30&order=viewCount&type=video&key=${apiClave}`;
var response = UrlFetchApp.fetch(url, {muteHttpExceptions: true});
var json = response.getContentText();
var datos = JSON.parse(json);
if (datos.items && datos.items.length > 0) {
datos.items.forEach(function(item, index) {
var videoId = item.id.videoId;
var titulo = item.snippet.title;
var descripcion = item.snippet.description;
var urlVideo = `https://www.youtube.com/watch?v=${videoId}`;
var fechaPublicacion = item.snippet.publishedAt;
var thumbnailUrl = item.snippet.thumbnails.high.url; // Obtiene el thumbnail de alta calidad
// Para obtener visualizaciones y "me gusta", necesitas hacer una solicitud adicional por cada video
var urlDetallesVideo = `https://www.googleapis.com/youtube/v3/videos?id=${videoId}&part=statistics&key=${apiClave}`;
var responseVideo = UrlFetchApp.fetch(urlDetallesVideo, {muteHttpExceptions: true});
var jsonVideo = responseVideo.getContentText();
var datosVideo = JSON.parse(jsonVideo);
var visualizaciones = "No disponible";
var meGusta = "No disponible";
if (datosVideo.items && datosVideo.items.length > 0) {
visualizaciones = datosVideo.items[0].statistics.viewCount;
meGusta = datosVideo.items[0].statistics.likeCount;
}
// Escribe la información en la hoja de cálculo
var filaInicio = index + 3; // Comienza a escribir desde la fila 3
hoja.getRange(filaInicio, 1).setValue(titulo);
hoja.getRange(filaInicio, 2).setValue(descripcion);
hoja.getRange(filaInicio, 3).setValue(urlVideo);
hoja.getRange(filaInicio, 4).setValue(fechaPublicacion);
hoja.getRange(filaInicio, 5).setValue(visualizaciones);
hoja.getRange(filaInicio, 6).setValue(meGusta);
hoja.getRange(filaInicio, 7).setValue(thumbnailUrl);
});
} else {
Logger.log("No se encontraron vídeos.");
}
}