Raspar vídeos do YouTube usando Python - uma abordagem fácil em 2024

Como fazer, Python, Raspagem, Mar-06-20245 minutos de leitura

A seguir ao Google, o YouTube é o segundo motor de busca mais popular do mundo. É um serviço de partilha de vídeos onde os utilizadores podem ver, partilhar, gostar, comentar e carregar vídeos. É o lar de vloggers, conteúdos informativos, vídeos educativos e muitos outros dados. Algumas das principais funções do Youtube são: Com a ajuda de web scraping

A seguir ao Google, o YouTube é o segundo motor de busca mais popular do mundo. É um serviço de partilha de vídeos onde os utilizadores podem ver, partilhar, gostar, comentar e carregar vídeos. É o lar de vloggers, conteúdos informativos, vídeos educativos e muitos outros dados. Algumas das principais funções do Youtube são:

  • Procurar e ver vídeos
  • Criar um canal pessoal no Youtube
  • Carregar vídeos para o seu canal
  • Subscrição de outros canais e utilizadores
  • Gostar e partilhar outros vídeos do Youtube
  • Criar listas de reprodução para organizar vídeos em conjunto

Com a ajuda da raspagem da Web, pode extrair dados do YouTube e beneficiar a sua organização ao obter informações valiosas a partir desses dados. Quando se aprende a extrair dados do Youtube, é importante saber que tipo de dados se pretende. Por exemplo, se pretender conhecer as reacções das pessoas ao seu trabalho, pode extrair a secção de comentários para analisar o sentimento do utilizador. Da mesma forma, se quiser acompanhar o sucesso de um vídeo, pode extrair dados de desempenho do vídeo. 

Antes de aprendermos a extrair vídeos do Youtube, vamos saber porque é que precisamos de os extrair.

Índice

Porquê fazer scraping de vídeos no Youtube?

Abaixo são mencionadas duas razões principais para a recolha de dados do Youtube.

  • Dados de desempenho do vídeo - Quando publica vídeos informativos para uma marca, é importante acompanhar a reação do seu público. A recolha da página de um vídeo específico ajudá-lo-á a receber o número de visualizações, gostos, não gostos, comentários, subscritores do canal e muito mais. É preciso ter em mente a proporção de cada uma dessas métricas. Por exemplo, um vídeo pode ter milhões de visualizações e ter mais não gostos do que gostos. O número de visualizações não é indicativo de um vídeo bem apreciado ou de alta qualidade. Em vez disso, o rácio de visualizações para gostos/desgostos pode ser uma forma de análise de sentimentos.
  • Dados do canal - Ao fazer scraping da página de um canal do Youtube, obterá dados relacionados com as listas de reprodução, o número de vídeos, os subscritores e muito mais. Além disso, a recolha das páginas de canais concorrentes é útil e informativa para perceber melhor se o seu canal está no mesmo nível de influência que o deles. 
  • Obter automatização - Os web scrapers robustos permitem-lhe extrair automaticamente dados do YouTube. Poupa tempo, uma vez que pode recolher dados em maior volume do que um ser humano alguma vez poderá conseguir. 
  • Business Intelligence e Insights - Pode obter uma melhor imagem da atividade dos seus concorrentes descarregando, limpando e analisando dados em volumes significativos, o que conduz a uma melhor tomada de decisões empresariais.

Raspagem de vídeos do Youtube usando Python

Vamos ver como extrair dados de vídeo do Youtube usando Selenium e Python. O Selenium é uma ferramenta popular para automatizar navegadores da Web. Pode programar facilmente um script Python para automatizar um navegador Web utilizando o Selenium. 

O Selenium requer um driver para interagir com o navegador escolhido. Por exemplo, o Chrome requer um ChromeDriver que precisa de ser instalado antes de começar a fazer scraping.

Configurando o ambiente Python

Passo 1 - É necessário abrir o terminal e instalar o Selenium utilizando o comando abaixo.

$ pip install selenium

Passo 2 - É necessário descarregar o Chrome WebDriver seguindo os passos abaixo.

  • Tem de visitar https://sites.google.com/a/chromium.org/chromedriver/download.
  • Tem de selecionar o controlador compatível com a sua versão do Chrome.
  • É necessário verificar a versão do Chrome que está a utilizar, clicando nos três pontos verticais no canto superior direito.
  • Depois, tem de ir a Ajuda -> Acerca do Google Chrome.

Passo 3 - É necessário mover o ficheiro do controlador para um PATH.

É necessário ir ao diretório de transferências e fazer o seguinte.

  • Descompacte o ficheiro.
  • Mova-o para usr/local/bin PATH.
$ cd Downloads
$ descompactar chromedriver_linux64.zip
$ mv chromedriver /usr/local/bin/

Extração de vídeos do YouTube

Iremos recolher o ID do vídeo, o título e a descrição de uma determinada categoria do Youtube. As categorias que podemos extrair são as seguintes:

  • Ciência
  • Alimentação
  • Viagens
  • Fabrico, etc.

Importar bibliotecas

É necessário importar as bibliotecas necessárias, como o Pandas e o 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

Configurar o driver

Tem de abrir o Youtube no seu browser. Digite a categoria para a qual pretende pesquisar vídeos e defina o filtro para "vídeos". Irá obter vídeos relacionados com a sua pesquisa. Agora, tem de copiar o URL.

É necessário configurar o controlador para ir buscar o conteúdo do URL ao Youtube.

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

Agora, cole a ligação na função driver.get("YOUR_LINK_HERE"). Execute a célula e abrir-se-á uma nova janela do navegador para essa ligação. É necessário ir buscar as ligações de vídeo presentes nessa página específica. Pode criar uma lista para armazenar essas ligações. Depois, tem de ir para a janela do browser e fazer o seguinte.

  • Clique com o botão direito do rato na página.
  • Selecionar o elemento "Inspecionar".

Deve procurar a etiqueta de ancoragem com id = "video-title". Clique com o botão direito do rato sobre ela -> Copiar -> XPath. O XPath terá o seguinte aspeto:

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

Obter os links de vídeo do Youtube

Pode utilizar o código abaixo para obter o atributo "href" da etiqueta âncora que pesquisou.

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

 print(len(links))

Criar um DataFrame

É necessário criar um quadro de dados com as quatro colunas abaixo.

  • ligação
  • título
  • descrição
  • categoria

Pode guardar os detalhes dos vídeos de diferentes categorias nestas colunas.

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

Está pronto para extrair os detalhes do vídeo do Youtube utilizando o código Python abaixo.

wait = WebDriverWait(driver, 10)
v_category = "CATEGORY_NAME" (nome dacategoria)
para x em 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]

Aqui,

  • wait ignora as instâncias de NotFoundException encontradas por defeito na condição "until". 
  • Os parâmetros da função wait são: driver - É a instância do WebDriver a ser passada para as condições esperadas.timeOutInSeconds - É o tempo limite quando a expetativa é chamada.
  • driver - É a instância do WebDriver a ser passada para as condições esperadas.
  • timeOutInSeconds - É o tempo limite quando a expetativa é chamada.
  • v_category é utilizado para armazenar o nome da categoria do vídeo.
  • Aplicámos o ciclo for à lista de ligações criada acima.
  • driver.get(x) executa as seguintes funções: percorre todas as ligações uma a umaabre-as no browser para obter os detalhes
  •  percorre todas as ligações uma a uma
  • abre-os no browser para obter os detalhes
  • v_id é utilizado para armazenar o ID de vídeo em faixas da ligação.
  • v_title armazena o título do vídeo obtido através da utilização de CSS_SELECTOR
  • Do mesmo modo, v_description armazena a descrição do vídeo utilizando CSS_SELECTOR

Seguiremos os mesmos passos para as restantes categorias. Teremos quatro quadros de dados diferentes e vamos juntá-los num único quadro de dados. Desta forma, o nosso dataframe final conterá os detalhes desejados dos vídeos de todas as categorias mencionadas acima.

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)

Usar um proxy para extrair vídeos do YouTube

Pode utilizar os proxies do Youtube para as seguintes tarefas:

  • Scraping - Pode recolher títulos de vídeos, comentários e qualquer informação de forma adequada utilizando um proxy. Também pode usar um proxy para recolher vídeos do Youtube que estejam no domínio Creative Commons. Assim, pode adicionar vídeos ao seu sítio Web sem utilizar o Youtube como leitor oficial.
  • Desbloquear o Youtube - Muitas empresas tentam esconder o seu conteúdo do público por razões políticas ou outras. Com a ajuda dos proxies, pode carregar e ver conteúdos do YouTube a partir de um local onde o seu acesso é restrito. Os proxies ajudam-no a aceder aos vídeos do Youtube que a sua escola ou local de trabalho bloqueou.

Os proxies residenciais são os melhores proxies para o Youtube em comparação com os proxies de centros de dados. Isto deve-se ao facto de os proxies do centro de dados serem facilmente detectados e de ter de enfrentar muitos Captchas ao utilizá-los. Assim, para evitar o bloqueio de IP e Captchas, os proxies residenciais são mais adequados para a automação do Youtube.

Por que usar proxies para raspar o Youtube?

Sabe que o Youtube está repleto de milhares de milhões de dados valiosos. Pode analisar estes dados e utilizá-los para fazer muitas coisas, tais como:

  • Tomar decisões comerciais
  • Decisões de marketing
  • Investigação e estudos sociais

É necessário ter proxies quando se faz scraping no Youtube. Isto deve-se ao facto de o Youtube utilizar técnicas avançadas de cibersegurança que detectam quando se tenta comprar vários artigos a partir de um único endereço IP. Para contornar a deteção, é necessário redirecionar o tráfego da Internet através de vários servidores proxy. Desta forma, parecerá que o tráfego de rede está a vir de computadores diferentes.

Os proxies também actuam como um escudo para os profissionais de marketing que utilizam bots do Youtube para aumentar a contagem de visualizações de um vídeo, manipular o algoritmo de classificação do Youtube e reclamar receitas de anúncios.

Qual é o melhor proxy para extrair vídeos do 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.

Um proxy de centro de dados dedicado é mais adequado para tarefas online de alta velocidade, como a transmissão de grandes quantidades de dados (em termos de tamanho) de vários servidores para fins de análise. Esta é uma das principais razões pelas quais as organizações escolhem proxies dedicados para transmitir grandes quantidades de dados num curto espaço de tempo.

Um proxy de centro de dados dedicado tem várias características, tais como largura de banda ilimitada e ligações simultâneas, proxies HTTP dedicados para facilitar a comunicação e autenticação IP para maior segurança. Com 99,9% de tempo de atividade, pode ter a certeza de que o centro de dados dedicado funcionará sempre durante qualquer sessão. Por último, mas não menos importante, ProxyScrape fornece um excelente serviço de apoio ao cliente e ajudá-lo-á a resolver o seu problema no prazo de 24-48 horas úteis. 

O próximo é um proxy residencial. O proxy residencial é um proxy de referência para todos os consumidores em geral. A principal razão é que o endereço IP de um proxy residencial se assemelha ao endereço IP fornecido pelo ISP. Isto significa que obter permissão do servidor de destino para aceder aos seus dados será mais fácil do que o habitual. 

A outra caraterística do proxy residencial do ProxyScrapeé uma funcionalidade rotativa. Um proxy rotativo ajuda-o a evitar uma proibição permanente da sua conta porque o seu proxy residencial altera dinamicamente o seu endereço IP, tornando difícil para o servidor de destino verificar se está a utilizar um proxy ou não. 

Para além disso, as outras características de um proxy residencial são: largura de banda ilimitada, juntamente com ligação simultânea, proxies HTTP/s dedicados, proxies em qualquer sessão de tempo devido aos mais de 7 milhões de proxies no pool de proxies, autenticação de nome de utilizador e palavra-passe para maior segurança e, por último, mas não menos importante, a capacidade de mudar o servidor do país. Pode selecionar o servidor pretendido anexando o código do país à autenticação do nome de utilizador. 

O último é o proxy premium. Os proxies premium são iguais aos proxies dedicados de centros de dados. A funcionalidade permanece a mesma. A principal diferença é a acessibilidade. Nos proxies premium, a lista de proxies (a lista que contém proxies) é disponibilizada a todos os utilizadores da rede ProxyScrape. É por isso que os proxies premium custam menos do que os proxies dedicados de centros de dados.

Então, qual é o melhor proxy para recolher vídeos do YouTube? A resposta seria "proxy residencial". A razão é simples. Como dito acima, o proxy residencial é um proxy rotativo, o que significa que seu endereço IP seria alterado dinamicamente durante um período de tempo, o que pode ser útil para enganar o servidor enviando muitas solicitações dentro de um pequeno período de tempo sem obter um bloqueio de IP. 

Em seguida, o melhor seria alterar o servidor proxy com base no país. Basta acrescentar o ISO_CODE do país no final da autenticação IP ou da autenticação de nome de utilizador e palavra-passe. 

Leituras sugeridas:

Raspar comentários do YouTube - 5 passos simplesProxy para YouTube - 3 tipos e benefícios importantes

Perguntas frequentes:

1. Como fazer o scraping de vídeos do YouTube usando Python?
Pode recolher vídeos do YouTube com a ajuda de uma biblioteca python chamada selenium (recolhe automaticamente os dados do YouTube) e pandas (armazena os dados recolhidos num formato de quadro de dados). É necessária a versão mais recente do controlador Web para recolher vídeos do YouTube.
2. É legal fazer scraping de vídeos do YouTube?
É legal extrair quaisquer dados publicamente disponíveis do YouTube, desde que o seu método ou abordagem de extração não prejudique de forma alguma o proprietário do sítio Web ou o proprietário do conteúdo.
3. A API do YouTube está disponível para os utilizadores normais?
Sim, o YouTube oferece a sua API aos utilizadores normais sem qualquer custo. Pode utilizá-la para interagir diretamente com os servidores do YouTube sem qualquer dificuldade de acesso.

Final Thoughts on Scraping YouTube Videos Using Python:

Para as organizações e os criadores do Youtube que gerem as suas contas, o Youtube contém muitos dados úteis que podem ser extraídos para análise. Os scrapers do Youtube extraem dados relacionados com visualizações, gostos/desgostos, comentários e muito mais, facilitando a tomada de melhores decisões de negócio. Pode extrair vídeos do Youtube utilizando Selenium e Python e poupar muito tempo. O uso de proxies é importante porque sua conta pode ser bloqueada se o Youtube detetar várias solicitações de um único endereço IP. Os melhores proxies para o Youtube são os proxies residenciais, pois são super rápidos e não podem ser detectados facilmente.

Espero que tenhas percebido como extrair vídeos do Youtube usando Python.