Scrape YouTube Videos Using Python- Un enfoque fácil en 2024

Cómo hacerlo, Python, Scraping, Dic-23-20225 minutos de lectura

Por detrás de Google, YouTube es el segundo motor más popular del mundo. Es un servicio para compartir vídeos donde los usuarios pueden ver, compartir, gustar, comentar y subir vídeos. Es el hogar de vloggers, contenidos informativos, vídeos educativos y muchos otros datos. Algunas de las principales funciones de Youtube son: Con la ayuda del web scraping

Por detrás de Google, YouTube es el segundo motor más popular del mundo. Es un servicio para compartir vídeos donde los usuarios pueden ver, compartir, gustar, comentar y subir vídeos. Es el hogar de vloggers, contenidos informativos, vídeos educativos y muchos otros datos. Algunas de las principales funciones de Youtube son:

  • Buscar y ver vídeos
  • Crear un canal personal en Youtube
  • Subir vídeos a tu canal
  • Suscripción a otros canales y usuarios
  • Me gusta y comparto otros vídeos de Youtube
  • Crear listas de reproducción para organizar los vídeos

Con la ayuda del web scraping, puede extraer datos de Youtube y beneficiar a su organización mediante la obtención de información valiosa a partir de esos datos. Cuando aprenda a extraer datos de Youtube, es importante saber qué tipo de datos quiere. Por ejemplo, si quieres conocer las respuestas de la gente a tu trabajo, puedes raspar la sección de comentarios para analizar el sentimiento de los usuarios. Del mismo modo, si quieres hacer un seguimiento del éxito de un vídeo, puedes extraer los datos de rendimiento del vídeo. 

Antes de aprender cómo scrapear vídeos de Youtube, vamos a aprender por qué necesitamos scrapearlos.

Índice

¿Por qué scrapear vídeos de Youtube?

A continuación se mencionan dos razones principales para el scraping de datos de Youtube.

  • Datos sobre el rendimiento de los vídeos - Cuando se publican vídeos informativos para una marca, es importante hacer un seguimiento de cómo responde a ellos el público. El raspado de la página para un vídeo específico le ayudará a recibir el número de vistas, likes, dislikes, comentarios, suscriptores al canal y más. Debes tener en cuenta la proporción de cada una de estas métricas. Por ejemplo, un vídeo puede tener millones de visitas y tener más "no me gusta" que "me gusta". El número de visitas no es indicativo de que el vídeo guste o sea de alta calidad. En cambio, la relación entre visitas y me gusta/no me gusta puede ser una forma de análisis del sentimiento.
  • Datos del canal - Al raspar la página de un canal de Youtube, obtendrás datos relacionados con las listas de reproducción, el número de vídeos, los suscriptores y mucho más. Además, raspar las páginas de los canales de la competencia es útil e informativo para entender mejor si tu canal está al mismo nivel de influencia que el suyo. 
  • Consigue la automatización - Los robustos raspadores web te permiten extraer datos de Youtube de forma automática. Ahorra tiempo, ya que puedes recopilar datos en mayor volumen de lo que un ser humano jamás podría lograr. 
  • Inteligencia e información empresarial: puede hacerse una mejor idea de la actividad de sus competidores descargando, limpiando y analizando datos en volúmenes significativos, lo que le permitirá tomar mejores decisiones empresariales.

Scraping de vídeos de Youtube con Python

Veamos cómo extraer datos de vídeos de Youtube usando Selenium y Python. Selenium es una herramienta popular para automatizar navegadores web. Puedes programar fácilmente un script en Python para automatizar un navegador web usando Selenium. 

Selenium requiere un controlador para interactuar con el navegador elegido. Por ejemplo, Chrome requiere un ChromeDriver que debe instalarse antes de empezar a raspar.

Configuración del entorno Python

Paso 1 - Necesita abrir su terminal e instalar Selenium usando el siguiente comando.

$ pip install selenium

Paso 2 - Debe descargar Chrome WebDriver siguiendo los pasos que se indican a continuación.

  • Tienes que visitar https://sites.google.com/a/chromium.org/chromedriver/download.
  • Tienes que seleccionar el controlador compatible para tu versión de Chrome.
  • Debes comprobar la versión de Chrome que utilizas haciendo clic en los tres puntos verticales de la esquina superior derecha.
  • A continuación, tienes que ir a Ayuda -> Acerca de Google Chrome.

Paso 3 - Es necesario mover el archivo del controlador a un PATH.

Tienes que ir al directorio de descargas y hacer lo siguiente.

  • Descomprime el archivo.
  • Muévelo a usr/local/bin PATH.
$ cd Descargas
$ descomprimir chromedriver_linux64.zip
$ mv chromedriver /usr/local/bin/

Videos de Youtube

Vamos a raspar el ID de vídeo, título y descripción de una categoría particular de Youtube. Las categorías que podemos raspar son como:

  • Ciencia
  • Alimentación
  • Viajar
  • Fabricación, etc.

Bibliotecas de importación

Necesitas importar las librerías necesarias como Pandas y Selenium.

from selenium import webdriver 
import pandas como pd 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import condiciones_esperadas as CE

Configuración del controlador

Tienes que abrir Youtube en tu navegador. Escribe la categoría para la que quieres buscar vídeos y establece el filtro en "vídeos". Obtendrás vídeos relacionados con tu búsqueda. Ahora, tienes que copiar la URL.

Es necesario configurar el controlador para obtener el contenido de la URL de Youtube.

controlador = webdriver.Chrome() 
driver.get("YOUR_LINK_HERE")

Ahora, pega el enlace en la función driver.get("YOUR_LINK_HERE"). Ejecuta la celda y se abrirá una nueva ventana del navegador para ese enlace. Tienes que buscar los enlaces de vídeo presentes en esa página en particular. Puedes crear una lista para almacenar esos enlaces. Después, debes ir a la ventana del navegador y hacer lo siguiente.

  • Haga clic con el botón derecho en la página.
  • Seleccione el elemento "Inspeccionar".

Debes buscar la etiqueta anchor con id = "video-title". Haga clic con el botón derecho del ratón sobre ella -> Copiar -> XPath. El XPath se verá algo como esto

//*[@id=”video-title”]

Obtener los enlaces de vídeo de Youtube

Puede utilizar el código siguiente para obtener el atributo "href" de la etiqueta de anclaje que ha buscado.

user_data = driver.find_elements_by_xpath('//*[@id="video-title"]')
enlaces = []
for i in datos_usuario:
            links.append(i.get_attribute('href'))

 print(len(links))

Crear un DataFrame

Debe crear un marco de datos con las cuatro columnas siguientes.

  • enlace
  • título
  • descripción
  • categoría

En estas columnas puede almacenar los detalles de los vídeos de las distintas categorías.

df = pd.DataFrame(columnas = ['enlace', 'título', 'descripción', 'categoría'])

Usted está listo para raspar los detalles de vídeo de Youtube utilizando el código de Python a continuación.

wait = WebDriverWait(controlador, 10)
v_category = "NOMBRE_CATEGORÍA"
para x en enlaces:
            driver.get(x)
            v_id = x.strip('https://www.youtube.com/watch?v=')
            v_title = wait.until(EC.presence_of_element_located(
                           (By.CSS_SELECTOR,"h1.title yt-formatted-string")).text
            v_description = wait.until(EC.presence_of_element_located(
                                         (By.CSS_SELECTOR,"div#description 
                                         yt-formatted-string")).text
            df.loc[len(df)] = [v_id, v_title, v_description, v_category].

Toma,

  • wait ignora las instancias de NotFoundException encontradas por defecto en la condición "until". 
  • Los parámetros de la función wait son: driver - Es la instancia de WebDriver que se pasará a las condiciones esperadas.timeOutInSeconds - Es el tiempo de espera cuando se llama a la expectativa.
  • driver - Es la instancia de WebDriver que se pasará a las condiciones esperadas.
  • timeOutInSeconds - Es el tiempo de espera cuando se llama a la expectativa.
  • v_category se utiliza para almacenar video category_name.
  • Aplicamos el bucle for a la lista de enlaces creada anteriormente.
  • driver.get(x) realiza las siguientes funciones: recorre todos los enlaces uno a uno los abre en el navegador para obtener los detalles
  •  recorre todos los enlaces uno a uno
  • los abre en el navegador para obtener los detalles
  • v_id se utiliza para almacenar el ID de vídeo del enlace.
  • v_title almacena el título del vídeo obtenido mediante CSS_SELECTOR
  • Del mismo modo, v_description almacena la descripción del vídeo utilizando CSS_SELECTOR

Seguiremos los mismos pasos para el resto de categorías. Tendremos cuatro marcos de datos diferentes, y los fusionaremos en un único marco de datos. De esta forma, nuestro marco de datos final contendrá los detalles deseados de los vídeos de todas las categorías mencionadas anteriormente.

marcos = [df_viaje, df_ciencia, df_alimentación, df_fabricación]
df_copy = pd.concat(frames, axis=0, join='outer', join_axes=None, ignore_index=True, keys=None, levels=None, names=None, verify_integrity=False, copy=True)

Utilizar un proxy para extraer vídeos de Youtube

Puedes utilizar proxies de Youtube para las siguientes tareas:

  • Scraping - Puedes recopilar títulos de vídeos, comentarios y cualquier información de forma adecuada utilizando un proxy. También puedes utilizar un proxy para scrapear vídeos de Youtube que estén dentro del dominio Creative Commons. Por lo tanto, puede añadir vídeos a su sitio web sin utilizar Youtube como reproductor oficial.
  • Desbloquear Youtube - Muchas empresas intentan ocultar sus contenidos al público por motivos políticos o de otro tipo. Con la ayuda de los proxies, puedes subir y ver contenidos de Youtube desde un lugar donde tu acceso está restringido. Los proxies te ayudan a acceder a los vídeos de Youtube que tu escuela o lugar de trabajo ha bloqueado.

Los proxies residenciales son los mejores proxies para Youtube en comparación con los proxies de centros de datos. Es porque los proxies de centro de datos se detectan fácilmente, y usted tiene que hacer frente a una gran cantidad de Captchas mientras los usa. Por lo tanto, para evitar el bloqueo de IP y Captchas, proxies residenciales son los más adecuados para la automatización de Youtube.

¿Por qué usar proxies para scrapear Youtube?

Ya sabes que Youtube está lleno de miles de millones de datos valiosos. Puede analizar estos datos y utilizarlos para hacer muchas cosas, tales como:

  • Tomar decisiones empresariales
  • Decisiones de marketing
  • Investigación y estudios sociales

Necesitas proxies cuando haces scraping en Youtube. Esto se debe a que Youtube emplea técnicas avanzadas de ciberseguridad que detectan cuando intentas comprar varios artículos desde una misma dirección IP. Para eludir la detección, debes redirigir tu tráfico de Internet a través de varios servidores proxy. De esta forma, parecerá que el tráfico de red procede de distintos ordenadores.

Los proxies también actúan como escudo para los vendedores que utilizan bots de Youtube para aumentar el número de visitas de un vídeo, manipular el algoritmo de clasificación de Youtube y reclamar ingresos por anuncios.

¿Cuál es el mejor proxy para scrapear vídeos de YouTube?

ProxyScrape is one of the most popular and reliable proxy providers online. Three proxy services include dedicated datacentre proxy servers, residential proxy servers, and premium proxy servers. So, what is the best proxy to scrape YouTube videos? Before answering that questions, it is best to see the features of each proxy server.

Un proxy dedicado de centro de datos es el más adecuado para tareas en línea de alta velocidad, como la transmisión de grandes cantidades de datos (en términos de tamaño) desde varios servidores con fines de análisis. Es una de las principales razones por las que las organizaciones eligen proxies dedicados para transmitir grandes cantidades de datos en poco tiempo.

Un proxy dedicado de centro de datos tiene varias características, como ancho de banda ilimitado y conexiones concurrentes, proxies HTTP dedicados para facilitar la comunicación y autenticación IP para mayor seguridad. Con un tiempo de actividad del 99,9%, puede estar seguro de que el centro de datos dedicado siempre funcionará durante cualquier sesión. Por último, pero no por ello menos importante, ProxyScrape ofrece un excelente servicio de atención al cliente y le ayudará a resolver su problema en un plazo de 24-48 horas laborables. 

El siguiente es un proxy residencial. Residencial es un proxy para todos los consumidores en general. La razón principal es que la dirección IP de un proxy residencial se parece a la dirección IP proporcionada por el ISP. Esto significa que obtener el permiso del servidor de destino para acceder a sus datos será más fácil de lo habitual. 

La otra característica del proxy residencial de ProxyScrapees la rotación. Un proxy rotativo te ayuda a evitar un bloqueo permanente de tu cuenta porque tu proxy residencial cambia dinámicamente tu dirección IP, dificultando que el servidor de destino compruebe si estás usando un proxy o no. 

Aparte de eso, las otras características de un proxy residencial son: ancho de banda ilimitado, junto con la conexión concurrente, dedicado HTTP / s proxies, proxies en cualquier sesión de tiempo debido a los más de 7 millones de proxies en la piscina de proxy, nombre de usuario y contraseña de autenticación para mayor seguridad, y por último pero no menos importante, la capacidad de cambiar el servidor de país. Puede seleccionar el servidor que desee añadiendo el código del país a la autenticación del nombre de usuario. 

El último es el proxy premium. Los proxies premium son iguales que los proxies de centro de datos dedicados. La funcionalidad sigue siendo la misma. La principal diferencia es la accesibilidad. En los proxies premium, la lista de proxies (la lista que contiene los proxies) se pone a disposición de todos los usuarios de la red ProxyScrape. Por eso los proxies premium cuestan menos que los proxies de centro de datos dedicados.

Entonces, ¿cuál es el mejor proxy para scrapear vídeos de YouTube? La respuesta sería "proxyresidencial". La razón es sencilla. Como se dijo anteriormente, el proxy residencial es un proxy rotativo, lo que significa que tu dirección IP cambiaría dinámicamente durante un periodo de tiempo, lo que puede ser útil para engañar al servidor enviando muchas peticiones en un periodo de tiempo pequeño sin obtener un bloqueo de IP. 

A continuación, lo mejor sería cambiar el servidor proxy en función del país. Sólo tienes que añadir el país ISO_CODE al final de la autenticación IP o autenticación de nombre de usuario y contraseña. 

Lecturas recomendadas:

Scrape YouTube Comentarios - 5 Sencillos PasosProxy Para YouTube - 3 Tipos Importantes Y Beneficios

Preguntas frecuentes:

1. Cómo raspar vídeos de YouTube usando Python?
Puedes raspar vídeos de YouTube con la ayuda de una biblioteca python llamada selenium (raspa automáticamente los datos de YouTube) y pandas (almacena los datos raspados en un formato de marco de datos). Necesitas la última versión del controlador web para scrapear vídeos de YouTube.
2. ¿Es legal copiar vídeos de YouTube?
Es legal extraer de YouTube cualquier dato disponible públicamente siempre que el método o enfoque de extracción no perjudique en modo alguno al propietario del sitio web o del contenido.
3. ¿La API de YouTube está disponible para los usuarios normales?
Sí, YouTube ofrece su API a los usuarios normales de forma gratuita. Puedes utilizarla para interactuar directamente con los servidores de YouTube sin ninguna dificultad para acceder.

Final Thoughts on Scraping YouTube Videos Using Python:

Para las organizaciones y los creadores de Youtube que gestionan sus cuentas, Youtube alberga muchos datos útiles que pueden ser raspados para su análisis. Los scrapers de Youtube extraen datos relacionados con visualizaciones, me gusta/no me gusta, comentarios y mucho más, lo que facilita la toma de mejores decisiones empresariales. Puedes scrapear vídeos de Youtube utilizando Selenium y Python y ahorrar mucho tiempo. El uso de proxies es importante porque tu cuenta puede bloquearse si Youtube detecta múltiples peticiones desde una misma dirección IP. Los mejores proxies para Youtube son los proxies residenciales, ya que son super rápidos y no pueden ser detectados fácilmente.

Espero que hayas entendido cómo scrapear vídeos de Youtube usando Python.