Tutorial Power BI: Analiza y compara canales de YouTube

Hoy os traemos un tutorial para extraer datos de canales de YouTube para su análisis. Todo ha surgido de una duda que me planteó Ferrán Morales sobre la mejor manera de descargar los datos de los vídeos publicados en un canal de esta red social.
Me pareció muy interesante y estuve investigando para poder resolver su duda (igual que él me ha resuelto tantas dudas antes) y poder también publicarlo como tutorial en el blog. El reto consistía en que analizar datos de tu canal es relativamente sencillo, pero de otros canales es más complejo.
En el siguiente punto de enseño como descargar datos de tu canal, pero si quieres comparar canales de otros usuarios puedes saltarte ese paso.
Extraer datos de tu canal de YouTube
Cuando quieres analizar datos de tu canal todo es mucho más fácil. Puedes usar YouTube Studio que es la opción nativa para el análisis de suscriptores, visualizaciones, etc. Si queremos extraer los datos para estudiarlos en soluciones externas como Power BI podríamos exportar manualmente los datos de la siguiente manera:
- Accedemos a la sección “Estadísticas” (Analytics) de YouTube Studio:

- Pulsamos en el botón “Ver más” de la gráfica deseada:

- Pulsamos el botón de la flecha hacia abajo para descargar los datos (Arriba a la derecha) y veremos que podemos descargar los datos en formato csv o en un documento Google SpreadSheet.
A partir de ahí, puedes usar los ficheros descargados como origen de datos en Power BI.
Extraer datos de otros canales
Cuando el canal es propiedad de otro usuario el tema se complica. Ya no tenemos acceso a los datos y lo único que podemos hacer es utilizar herramientas externas y tendremos que realizar la extracción en varios pasos. En este ejemplo obtendremos datos del canal oficial de Power BI en YouTube.
1. Obtener una lista de links de los vídeos publicados
Las herramientas externas suelen necesitar una lista de links de los vídeos publicados para descargar su información más relevante o metadatos. Como esto puede ser muy tedioso si son muchos vídeos os contaré un truco que encontré en internet.
Lo primero es entrar en el canal de YouTube deseado y acceder a la sección “Vídeos“:

El problema es que el listado de Vídeos no se carga completamente, sino que se va cargando a medida que haces scroll hacia abajo. Por eso no podemos obtener todos los vídeos de una sola vez .He usado Google Chrome para acceder al canal y aprovecharé sus herramientas de desarrollo.
Pulsamos en cualquier parte de la página con el botón derecho y seleccionamos “Inspeccionar“:

La venta del navegador se partirá en dos partes: la herramienta de desarrollo a la derecha y la página web en la zona izquierda. Debemos acceder a la pestaña “Console“:

En esta consola podemos insertar código o funciones para ejecutar sobre la página. Vamos a la última línea donde aparece un símbolo “>” y ponemos el siguiente código y pulsamos Enter:
var scroll = setInterval(function(){ window.scrollBy(0, 1000)}, 1000); Veréis que en la parte izquierda van apareciendo cada vez más vídeos. Lo que ejecuta este script es un scroll automático para que se listen todos los vídeos. Si queremos todos los vídeos del canal debéis esperar a que acabe de actualizarse antes de realizar el siguiente paso. Hay canales con cientos o miles de vídeos por lo que, si es el caso, yo lo dejaría actualizarse un rato y luego pasaría al siguiente paso para analizar los 100 o 200 últimos vídeos publicados.
Una vez actualizada la lista tendremos que volver a introducir un script en la consola:
window.clearInterval(scroll); console.clear(); urls = $$('a'); urls.forEach(function(v,i,a){if (v.id=="video-title"){console.log('\t'+v.title+'\t'+v.href+'\t')}}); Este segundo script crea en la consola la lista de videos y enlaces:

Seleccionamos el listado de la ventana de la consola y lo copiamos en un Google SpreadSheet (con Ctrl+C y Ctrl+V):

Podemos eliminar las columnas que no usamos (solo necesitamos la lista de urls) y le ponemos un título, en este caso, “Video_URLs“:

Usaremos este fichero Google SpreadSheet en el siguiente paso. Como tendremos que acceder a él os tenéis que asegurar que es accesible de manera pública:

2. Usamos la solución Phantom Buster para obtener datos de los vídeos y del canal
Estuve buscando e investigando diferentes herramientas para realizar scrap de YouTube y poder obtener los datos de los vídeos. Tras un análisis inicial creo que PhantomBuster es una buena elección por su funcionalidad y porque ofrece 14 días de uso gratuito.

Una vez os habéis registrado de manera gratuita por 14 días (sólo hay que introducir vuestro mail y una contraseña, nada de tarjetas) los flujos de Phantom Buster es muy sencillo.
1. Elegir el “scraper” adecuado
Los scrapers son procesos preconfigurados para extraer datos de servicios web. Debemos seleccionar el servicio en cuestión en el menú superior “Solutions” (en nuestro caso seleccionaremos “All Solutions“):

En la siguiente página seleccionamos la Categoría “YouTube“:

En esta categoría tenemos 3 scrapers. Como queremos obtener datos sobre los vídeos seleccionaremos “YouTube Video Scraper“:

La configuración son 3 pasos sencillos:
Paso 1: Indicar el listado de urls de los vídeos
Simplemente indica la url de tu Google SpreadSheet y el nombre que le pusiste a la columna.

Paso 2: Comportamiento del scraper
Indicar como queremos que se comporte el scraper (numero de url por lanzamiento, nombre del fichero de salida,…)

Paso 3: Configuración final
Normalmente son opciones avanzadas, de momento las dejaremos tal cual están porque solo lo queremos lanzar manualmente.

Paso 4: Ejecutamos el Scraper y descargamos el fichero final
Una vez configurado podemos pulsar el botón “Launch” y lanzar el proceso y luego descargar el fichero csv creado:

Comparando los canales de Power BI, Tableau y Qlik
Una vez que tenemos claro el proceso podemos repetirlo dos veces más con los canales de Qlik y Tableau, que junto a Power BI son las 3 soluciones líderes en Business Intelligence según Gartner.
De este modo tenemos 3 ficheros con los metadatos de los vídeos de los 3 canales.
Tenemos tambien la opción de usar el Youtube Channel Scraper de PhantomBuster que nos permite obtener metadatos globales de cada canal:

Con los 3 ficheros de la lista de vídeos de cada canal y el fichero de los metadatos globales de los canales podremos construir un informe en Power BI.
Comparamos datos globales de los canales
En el informe presentamos los datos de Suscriptores, Visualizaciones y Año de Creación de los 3 canales.

Como podéis ver, el canal de Tableau es el que tiene más visualizaciones, pero como también llevaba más años que Power BI en el mercado, quería comprobar el nivel de visualizaciones anuales. Incluso a nivel anual tiene 4 veces más visualizaciones que Power BI.
En cambio Power BI es el rey de suscritos tanto a nivel global como anual. Es increíble que con casi la mitad de vida que Tableau o Qlik, tenga hasta 4 veces más suscritos. La evolución de Power BI y su expansión en la comunidad en estos 6 años de vida es increíble.
Por último, Qlik gana en años de vida del canal de YouTube, pero pierde en visualizaciones y suscriptores.
Creamos una vista de análisis de los vídeos de cada canal
En nuestro informe cada canal tiene un botón de detalle para ir a una página que detalla el análisis de los vídeos de cada canal.
Detalle Power BI

Como podéis ver, los videos más vistos del canal de Power BI son las revisiones de nuevas funcionalidades que presenta Microsoft cada mes. Aparte hay un 10% de contenido en vivo.
Detalle Tableau

En cambio, los vídeos más vistos tienen temáticas más basadas en búsquedas populares en Google. Si analizamos sus títulos parecen estar creados para recabar visitas más que para explicar funcionalidades de Tableau. No hay contenido en vivo.
Detalle Qlik

Los vídeos del canal de Qlik son muy enfocados a funcionalidades concretas, lo que es de agradecer. Al igual que Tableau, no incluye emisiones en vivo.
El informe final
Podéis interactuar con el informe aquí:
Recordad que si estáis suscritos a nuestra newsletter (es gratuito) os podéis descargar éste y el resto de ficheros pbix de nuestros tutoriales.
¿Cómo podemos automatizar este proceso?
Todo este proceso lo hemos realizado con herramientas automatizadas, pero sólo nos sirve para una carga inicial.
¿Y si quiero que este Power BI se vaya actualizando cuando aparezcan vídeos nuevos? Pues no es tan difícil, aunque necesitaremos usar alguna herramienta más y pagar por la licencia de Phantom Buster.
Paso 1 – Actualizar los Google SpreadSheet cuando se publiquen video nuevos con Power Automate
Por ejemplo podemos usar Power Automate de Microsoft para crear un flujo que, cada vez que se publique un video nuevo en alguno de estos canales, añada el link del video a nuestro Google SpreadSheet.
Paso 2 – Automatizar nuestros scrapers de Phantom Buster
Podemos cambiar nuestra configuración del scraper para que se lance cada día con los datos actualizados de los SpreadSheets. Para ello, sólo hay que cambiar el parámetro “Manual” a “Repetitivo“.

Conclusiones
Como veis, se pueden analizar canales de YouTube aunque no seamos los propietarios.
Además, PhantomBuster es una herramienta muy potente que incluye accesos a datos de LinkedIn, Google Maps, Twitter, Instagram, por lo que podemos usar este proceso para otr0s servicios web.
¿Qué os ha parecido este tutorial? ¿Habíais intentado obtener datos de canales de YouTube antes? ¿Os parece interesante? ¿Queréis más tutoriales de este estilo? Podéis dejar vuestros comentarios y sugerencias en este post más abajo.






