Posted on

YouTool es una aplicación creada por un pequeño equipo de estudiantes durante el Máster de Big Data & Business Analytics de la Universidad Complutense de Madrid entre los que me encontraba. La aplicación consistía en minería de datos de Youtube y su posterior procesado para la predicción de diferentes valores (visitas, likes, etc.) de un vídeo concreto.

Me encargué de forma casi íntegra de la parte de minería de datos de Youtube mediante su API y el almacenamiento de estos datos para su posterior procesado. En el proyecto el almacenamiento y procesado se hizo en la nube de Google:

No obstante, aquí por simplificar y por tener disponible un servidor doméstico disponible, todo lo trataré como hecho en localhost.

Youtube API

Los datos se extraen mediante la API de Youtube, que pertenece al ecosistema de Google. Para usarla necesitaremos:

Y ya podemos obtener los datos. Teniendo la clave de la API no necesitamos nada más.

Base de datos

Una vez extraídos los datos deberemos plantearnos dónde los almacenaremos. En este caso yo me he decidido por guardar los datos en CSV como copia de seguridad y en un servidor MySql (MariaDB) que tengo levantado para el acceso a los datos.

Empezamos creando un usuario, un conjunto y la tabla a la que se irán añadiendo los datos. Esto se puede hacer simplemente utilizando el script SQL que tengo subido a GitHub: CREATE TABLE Trending_videos.sql

Añadimos también un usuario que será el encargado de manejar esta base de datos y le damos permisos desde localhost: CREATE USER.sql. No olvidar que hay que añadir una contraseña entre las comillas simples en IDENTIFIED BY ‘PASSWORD’

Data Mining

Partiendo y tomando como apoyo el siguiente código en kaggle: https://www.kaggle.com/datasnaek/youtube-new

Teniendo definidas estas partes solo queda crear el script de python que generará las tablas de datos:

GitHub:YouTool/Source

En ese repositorio de GitHub se encuentran los archivos necesarios para generar la extracción de datos. Tan solo es necesario rellenar los huecos del archivo config.py. Y ejecutar el archivo youtool.py

Este script realizará las siguientes tareas:

  1. Extrae los datos que nos interesan de los trending vídeos de los países seleccionados: Los 200 vídeos tendencia de cada uno de los 4 países (Estados unidos, Gran Bretaña, Canadá y España).
  2. Guarda estos datos en archivos CSV, uno por día y país.
  3. Lee estos datos de nuevo y vuelve a llamar a la API para extraer los datos que nos interesa de los canales a los que pertenecen estos vídeos.
  4. Guarda estos datos en los mismos archivos CSV.
  5. Por último añade los datos al servidor MySql, manteniendo los CSV como copia segura.

El resultado es algo tal y como esto:

Tabla que ya podremos empezar a utilizar con nuestras queries y añadir a cualquier aplicación o arquitectura con la que queramos explotar los datos.

Implementación

En este caso, y como con aplicaciones anteriores, me he decantado a ejecutar este código de forma periódica en mi propio servidor doméstico.

He programado una ejecución diaria mediante cron y lo he aislado del sistema mediante entorno virtual. De tal manera que en contab he incluido el siguiente código:

42 12 * * * . /home/[user]/python-virtual-environments/env-youtool/bin/activate && python3 /[path]/youtool.py

De tal manera, que todos los días a las 12:42 se realiza la ejecución del código, añadiendo 4 nuevos archivos CSV con la información y se añade al servidor de MySQL toda la información extraída.

RepositorioGitHub: YouTool

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.