Scraper des vidéos YouTube avec Python - Une approche facile en 2024

Comment faire, Python, Scraping, Mar-06-20245 minutes de lecture

Derrière Google, YouTube est le deuxième moteur de recherche le plus populaire au monde. Il s'agit d'un service de partage de vidéos où les utilisateurs peuvent regarder, partager, aimer, commenter et télécharger des vidéos. On y trouve des blogueurs, des contenus informatifs, des vidéos éducatives et de nombreuses autres données. Voici quelques-unes des principales fonctions de Youtube : Avec l'aide du web scraping

Derrière Google, YouTube est le deuxième moteur de recherche le plus populaire au monde. Il s'agit d'un service de partage de vidéos où les utilisateurs peuvent regarder, partager, aimer, commenter et télécharger des vidéos. On y trouve des blogueurs, des contenus informatifs, des vidéos éducatives et de nombreuses autres données. Voici quelques-unes des principales fonctions de Youtube :

  • Rechercher et regarder des vidéos
  • Créer une chaîne Youtube personnelle
  • Chargement de vidéos sur votre chaîne
  • Abonnement à d'autres chaînes et utilisateurs
  • Aimer et partager d'autres vidéos Youtube
  • Création de listes de lecture pour organiser les vidéos ensemble

Avec l'aide du web scraping, vous pouvez extraire des données de Youtube et en faire profiter votre organisation en obtenant des informations précieuses à partir de ces données. Lorsque vous apprenez à extraire des données de Youtube, il est important de savoir quel type de données vous souhaitez obtenir. Par exemple, si vous voulez connaître les réactions des gens à votre travail, vous pouvez extraire la section des commentaires pour analyser le sentiment des utilisateurs. De même, si vous souhaitez suivre le succès d'une vidéo, vous pouvez extraire les données relatives aux performances de la vidéo. 

Avant d'apprendre à récupérer des vidéos Youtube, nous allons voir pourquoi nous avons besoin de les récupérer.

Table des matières

Pourquoi récupérer des vidéos sur Youtube ?

Voici les deux principales raisons pour lesquelles il est nécessaire de récupérer les données de Youtube.

  • Données sur les performances des vidéos - Lorsque vous publiez des vidéos d'information pour une marque, il est important de suivre les réactions de votre public. La consultation de la page d'une vidéo spécifique vous permettra de connaître le nombre de vues, d'appréciations, de commentaires, d'abonnés à la chaîne, etc. Vous devez garder à l'esprit le ratio de chacune de ces mesures. Par exemple, une vidéo peut être visionnée des millions de fois et avoir plus de "dislikes" que de "likes". Le nombre de vues n'est pas le signe d'une vidéo appréciée ou de qualité. En revanche, le rapport entre le nombre de vues et le nombre de likes/dislikes peut constituer une forme d'analyse du sentiment.
  • Données sur les chaînes - Lorsque vous scrapez la page d'une chaîne Youtube, vous obtenez des données relatives aux listes de lecture, au nombre de vidéos, aux abonnés, etc. En outre, il est utile et instructif de récupérer les pages des chaînes concurrentes pour mieux comprendre si votre chaîne se situe au même niveau d'influence que la leur. 
  • Automatisation - Des scrappeurs web robustes vous permettent d'extraire automatiquement des données de Youtube. Vous gagnez du temps car vous pouvez collecter des données à un volume supérieur à celui qu'un être humain pourrait espérer atteindre. 
  • Business Intelligence et Insights - Vous pouvez obtenir une meilleure image de l'activité de vos concurrents en téléchargeant, en nettoyant et en analysant des données à des volumes importants, ce qui permet d'améliorer la prise de décisions commerciales.

Récupération de vidéos Youtube avec Python

Voyons comment extraire les données vidéo de Youtube en utilisant Selenium et Python. Selenium est un outil populaire pour automatiser les navigateurs web. Vous pouvez facilement programmer un script Python pour automatiser un navigateur web à l'aide de Selenium. 

Selenium nécessite un pilote pour interfacer avec le navigateur choisi. Par exemple, Chrome nécessite un pilote ChromeDriver qui doit être installé avant de commencer le scraping.

Configuration de l'environnement Python

Étape 1 - Vous devez ouvrir votre terminal et installer Selenium en utilisant la commande ci-dessous.

pip install selenium

Étape 2 - Vous devez télécharger Chrome WebDriver en suivant les étapes ci-dessous.

  • Vous devez vous rendre sur le site https://sites.google.com/a/chromium.org/chromedriver/download.
  • Vous devez sélectionner le pilote compatible avec votre version de Chrome.
  • Vous devez vérifier la version de Chrome que vous utilisez en cliquant sur les trois points verticaux dans le coin supérieur droit.
  • Ensuite, vous devez aller dans Aide -> À propos de Google Chrome.

Étape 3 - Vous devez déplacer le fichier du pilote dans un PATH.

Vous devez aller dans le répertoire des téléchargements et faire ce qui suit.

  • Décompressez le fichier.
  • Déplacez-le dans le PATH usr/local/bin.
$ cd Téléchargements
$ dézippez chromedriver_linux64.zip
$ mv chromedriver /usr/local/bin/

Récupération de vidéos sur Youtube

Nous allons récupérer l'ID de la vidéo, le titre et la description d'une catégorie particulière de Youtube. Les catégories que nous pouvons récupérer sont les suivantes :

  • La science
  • Alimentation
  • Voyage
  • Fabrication, etc.

Importer des bibliothèques

Vous devez importer les bibliothèques nécessaires comme Pandas et Selenium.

from selenium import webdriver 
import pandas as pd 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC

Configuration du pilote

Vous devez ouvrir Youtube dans votre navigateur. Tapez la catégorie dans laquelle vous souhaitez rechercher des vidéos et définissez le filtre sur "vidéos". Vous obtiendrez des vidéos en rapport avec votre recherche. Il ne vous reste plus qu'à copier l'URL.

Vous devez configurer le pilote pour qu'il récupère le contenu de l'URL de Youtube.

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

Collez maintenant le lien dans la fonction driver.get("YOUR_LINK_HERE"). Exécutez la cellule et une nouvelle fenêtre de navigateur s'ouvrira pour ce lien. Vous devez récupérer les liens vidéo présents sur cette page particulière. Vous pouvez créer une liste pour stocker ces liens. Ensuite, vous devez aller dans la fenêtre du navigateur et faire ce qui suit.

  • Cliquez avec le bouton droit de la souris sur la page.
  • Sélectionnez l'élément "Inspecter".

Vous devez rechercher la balise d'ancrage avec id = "video-title". Cliquez dessus avec le bouton droit de la souris -> Copier -> XPath. Le XPath ressemblera à quelque chose comme ceci :

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

Récupérer les liens vers les vidéos Youtube

Vous pouvez utiliser le code ci-dessous pour récupérer l'attribut "href" de la balise d'ancrage que vous avez recherchée.

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

 print(len(links))

Créer un DataFrame

Vous devez créer un cadre de données avec les quatre colonnes ci-dessous.

  • lien
  • titre
  • description
  • catégorie

Vous pouvez enregistrer les détails des vidéos pour différentes catégories dans ces colonnes.

df = pd.DataFrame(columns = ['link', 'title', 'description', 'category'])

Vous êtes prêt à récupérer les détails de la vidéo Youtube en utilisant le code Python ci-dessous.

wait = WebDriverWait(driver, 10)
v_category = "NOM_CATÉGORIE"
pour x dans links :
            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]

Ici,

  • wait ignore les cas de NotFoundException rencontrés par défaut dans la condition "jusqu'à". 
  • Les paramètres de la fonction wait sont les suivants driver - Il s'agit de l'instance de WebDriver à transmettre aux conditions attendues.timeOutInSeconds - Il s'agit du délai d'attente lorsque l'attente est appelée.
  • driver - Il s'agit de l'instance de WebDriver à transmettre aux conditions attendues.
  • timeOutInSeconds - C'est le délai d'attente lorsque l'attente est appelée.
  • v_category est utilisé pour stocker le nom de la catégorie de la vidéo.
  • Nous avons appliqué la boucle for à la liste de liens créée ci-dessus.
  • driver.get(x) exécute les fonctions suivantes : parcourt tous les liens un par un les ouvre dans le navigateur pour en extraire les détails
  •  parcourt tous les liens un par un
  • les ouvre dans le navigateur pour en obtenir les détails
  • v_id est utilisé pour stocker l'identifiant vidéo de la liaison.
  • v_title stocke le titre de la vidéo récupéré à l'aide de CSS_SELECTOR
  • De même, v_description stocke la description de la vidéo en utilisant CSS_SELECTOR

Nous suivrons les mêmes étapes pour les autres catégories. Nous aurons quatre cadres de données différents et nous les fusionnerons en un seul cadre de données. De cette façon, notre cadre de données final contiendra les détails souhaités des vidéos de toutes les catégories mentionnées ci-dessus.

frames = [df_travel, df_science, df_food, df_manufacturing]
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)

Utilisation d'un proxy pour récupérer des vidéos Youtube

Vous pouvez utiliser Youtube proxys pour les tâches suivantes :

  • Scraping - Vous pouvez collecter les titres des vidéos, les commentaires et toutes les informations appropriées en utilisant un proxy. Vous pouvez également utiliser un proxy pour récupérer des vidéos Youtube qui sont dans le domaine Creative Commons. Vous pouvez donc ajouter des vidéos à votre site web sans utiliser Youtube comme lecteur officiel.
  • Débloquer Youtube - De nombreuses entreprises essaient de cacher leur contenu au public pour des raisons politiques ou autres. Avec l'aide de proxys, vous pouvez télécharger et regarder du contenu Youtube à partir d'un endroit où votre accès est restreint. proxys vous aide à accéder aux vidéos Youtube que votre école ou votre lieu de travail a bloquées.

Les proxys résidentiels sont les meilleurs proxys pour Youtube par rapport aux proxys des centres de données. En effet, les proxys du centre de données sont facilement détectés et vous devez faire face à de nombreux Captchas lorsque vous les utilisez. Ainsi, pour éviter le blocage d'IP et les Captchas, les proxys résidentiels sont les mieux adaptés à l'automatisation de Youtube.

Pourquoi utiliser proxys pour scraper Youtube ?

Vous savez que Youtube contient des milliards de données précieuses. Vous pouvez analyser ces données et les utiliser pour faire de nombreuses choses, telles que :

  • Prendre des décisions commerciales
  • Décisions de marketing
  • Recherche et études sociales

Vous devez vous rendre sur le site proxys lorsque vous faites du scraping sur Youtube. En effet, Youtube utilise des techniques de cybersécurité avancées qui détectent les tentatives d'achat de plusieurs articles à partir d'une même adresse IP. Pour contourner la détection, vous devez réacheminer votre trafic internet par le biais de plusieurs serveurs proxy. De cette manière, le trafic réseau semblera provenir d'ordinateurs différents.

proxys servent également de bouclier aux spécialistes du marketing qui utilisent des robots de Youtube pour augmenter le nombre de vues d'une vidéo, manipuler l'algorithme de classement de Youtube et s'approprier des recettes publicitaires.

Quel est le meilleur proxy pour récupérer des vidéos 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 de centre de données dédié est mieux adapté aux tâches en ligne à grande vitesse, telles que la transmission en continu de grandes quantités de données (en termes de taille) à partir de divers serveurs à des fins d'analyse. C'est l'une des principales raisons pour lesquelles les organisations choisissent proxys pour transmettre de grandes quantités de données en peu de temps.

Un proxy dédié à un centre de données possède plusieurs caractéristiques, telles qu'une bande passante illimitée et des connexions simultanées, un site HTTP dédié proxys pour faciliter la communication et une authentification IP pour plus de sécurité. Avec un temps de disponibilité de 99,9 %, vous pouvez être assuré que le centre de données dédié fonctionnera toujours, quelle que soit la session. Enfin, ProxyScrape offre un excellent service à la clientèle et vous aidera à résoudre votre problème dans les 24-48 heures ouvrables. 

La prochaine est une procuration résidentielle. Le proxy résidentiel est le proxy de référence pour tous les consommateurs. La raison principale est que l'adresse IP d'un proxy résidentiel ressemble à l'adresse IP fournie par le FAI. Cela signifie qu'il sera plus facile d'obtenir l'autorisation du serveur cible pour accéder à ses données. 

L'autre caractéristique du proxy résidentiel de ProxyScrapeest une fonction rotative. Un proxy rotatif vous permet d'éviter une interdiction permanente de votre compte car votre proxy résidentiel change dynamiquement votre adresse IP, ce qui rend difficile pour le serveur cible de vérifier si vous utilisez un proxy ou non. 

En outre, les autres caractéristiques d'un proxy résidentiel sont les suivantes : bande passante illimitée, connexion simultanée, HTTP/s dédié proxys, proxys à tout moment de la session en raison des 7 millions de proxys dans le pool de proxy, authentification par nom d'utilisateur et mot de passe pour plus de sécurité, et enfin, la possibilité de changer le serveur du pays. Vous pouvez sélectionner le serveur de votre choix en ajoutant le code du pays à l'authentification du nom d'utilisateur. 

Le dernier est le proxy premium. Les proxys Premium sont les mêmes que les proxys dédiés aux centres de données. La fonctionnalité reste la même. La principale différence est l'accessibilité. Dans le cas du proxy premium proxys, la liste des mandataires (la liste qui contient proxys) est mise à la disposition de tous les utilisateurs du réseau ProxyScrape. C'est pourquoi le premium proxys coûte moins cher que le centre de données dédié proxys.

Quel est donc le meilleur proxy pour récupérer des vidéos YouTube ? La réponse est "proxy résidentiel". La raison en est simple. Comme nous l'avons dit plus haut, le proxy résidentiel est un proxy rotatif, ce qui signifie que votre adresse IP change dynamiquement sur une période donnée, ce qui peut être utile pour tromper le serveur en envoyant un grand nombre de requêtes dans un court laps de temps sans obtenir un blocage de l'IP. 

Ensuite, la meilleure chose à faire est de changer le serveur proxy en fonction du pays. Il suffit d'ajouter l'ISO_CODE du pays à la fin de l'authentification IP ou de l'authentification par nom d'utilisateur et mot de passe. 

Lectures suggérées :

Scraper les commentaires sur YouTube - 5 étapes simplesProxy pour YouTube - 3 types importants et avantages

FAQs :

1. Comment récupérer des vidéos YouTube à l'aide de Python ?
Vous pouvez récupérer des vidéos YouTube à l'aide d'une bibliothèque python appelée selenium (qui récupère automatiquement les données de YouTube) et pandas (qui stocke les données récupérées dans un format de trame de données). Vous avez besoin de la dernière version du pilote web pour récupérer les vidéos de YouTube.
2. Est-il légal d'extraire des vidéos de YouTube ?
Il est légal de récupérer toute donnée publiquement disponible sur YouTube tant que votre méthode ou approche de récupération ne porte pas préjudice au propriétaire du site web ou au propriétaire du contenu sous quelque forme que ce soit.
3. L'API de YouTube est-elle accessible aux utilisateurs normaux ?
Oui, YouTube offre gratuitement son API aux utilisateurs normaux. Vous pouvez l'utiliser pour interagir directement avec les serveurs de YouTube sans aucune difficulté d'accès.

Final Thoughts on Scraping YouTube Videos Using Python:

Pour les organisations et les créateurs de Youtube qui gèrent leurs comptes, Youtube contient de nombreuses données utiles qui peuvent être extraites à des fins d'analyse. Les scrapers Youtube extraient les données relatives aux vues, aux likes, aux commentaires et autres, ce qui permet de prendre de meilleures décisions. Vous pouvez extraire des vidéos Youtube en utilisant Selenium et Python et gagner ainsi beaucoup de temps. L'utilisation de proxys est importante car votre compte peut être bloqué si Youtube détecte plusieurs requêtes provenant d'une même adresse IP. Les meilleurs proxys pour Youtube sont residential proxys, car ils sont très rapides et ne peuvent pas être détectés facilement.

J'espère que vous avez compris comment récupérer des vidéos Youtube en utilisant Python.