Tarantulla-YouTube: uma nova forma de extrair dados do YouTube

Nesse post vamos falar sobre um dos módulos da suíte Tarantulla: o Tarantulla-YouTube, responsável pela extração dos dados dessa plataforma de vídeos. Se você ainda não conhece o Tarantulla, pode dar uma lida nesse outro post, em que já explicamos a ideia geral por trás da solução.

Para que o Tarantulla-Youtube funcione é necessária uma chave de acesso à YouTube Data API, Python (>=3.5) e, opcionalmente, o Pentaho Data Integration 8 (caso você deseje organizar os dados retornados pelo Tarantulla em um banco de dados).

A solução deve retornar os seguintes campos:

  • título
  • ID do canal
  • nome do canal
  • data de publicação
  • descrição
  • ID da playlist
  • ID do vídeo
  • números de visualizações do vídeo
  • número de likes do vídeo
  • número de dislikes do vídeo
  • número de comentários do vídeo
  • língua
  • local
  • categoria
  • nome do publisher
  • engajamento

Mas vamos ao que interessa: mostrar como o Tarantulla-YouTube funciona na prática. Para isso, selecionamos 3 publishers: o Engadget (https://www.youtube.com/user/engadget), o AndroidPIT.com (https://www.youtube.com/user/AndroidPITcom) , canais dos Estados Unidos, e o GizmodoBR (https://www.youtube.com/user/GizmodoBR ), nosso representante brasileiro.

Primeiramente investigamos a quantidade média de visualizações de vídeos para cada canal. Percebemos que os vídeos do Engadget possuem, em média, uma quantidade de visualizações muito superior à dos outros dois canais, contabilizando uma média de 40.094,56 visualizações contra 12.280,51 do GizmodoBR e 32.034,8 do AndroidPIT.com.

Vale ressaltar, no entanto, que o Engadget também possui uma quantidade muito superior de inscritos. São 519k, contra apenas 4k do GizmodoBR e 29k do AndroidPIT.com, o que sugere que o canal pode ser mais popular, levando a uma maior quantidade de visualizações por vídeo.

Outras métricas analisadas foram: a quantidade média de comentários e likes nos vídeos de cada canal.

Observamos que o Engadget continua liderando em termos de popularidade, seguido pelo AndroidPIT.com. Interessante notar que os gráficos mostram percentagens parecidas para cada canal em ambas as métricas analisadas. Poderíamos até supor que a quantidade de likes e de comentários possam estar relacionadas de alguma forma.

Tivemos também a curiosidade de investigar os top 10 vídeos com mais views e, como era de se esperar, todos eles são do Engadget! Dentre os temas abordados estão: sex robots, Google Glass, iPhone X, IBM Watson, PlayStation 4, Samsung Galaxy Gear, Sony Xperia e CES.

E aí? Achou interessante? Acredita que pode utilizar o Tarantulla-Youtube para alcançar os objetivos de sua aplicação? Se sim, acompanha o post. Explicaremos, brevemente, como você pode configurar e executar a solução.


Configurando o Tarantulla-YouTube

Se você deseja saber detalhes sobre o deploy da solução, sugerimos que visite a página da Oncase no Github:

Vamos seguir alguns passos para a configuração e deploy da solução. São basicamente 3 passos:

  1. Clonar repositório Git
  2. Ajustar arquivo de publishers
  3. Ajustar arquivo com chaves da API

E, caso deseje integrar os resultados com um banco de dados, temos dois passos adicionais:

4. Ajustar arquivos com informações sobre o banco de dados

5. Executar script SQL

Vale ressaltar que a integração com o banco de dados é feita através do PDI — Pentaho Data Integration — uma plataforma para acelerar a construção de fluxos de processamento de dados.

Dito isto, vamos explicar cada passo:

  1. Inicialmente, clone o repositório, preferencialmente em ‘/opt/git’.
  2. Agora precisamos ajustar o arquivo config-users.json. Nele encontram-se informações importantes para que a solução saiba de quais páginas deve recuperar os dados (publishers), bem como onde deve armazenar os dados recuperados (temp_output). Além disso, é importante definir o python que deverá ser utilizado (python-command), principalmente se você possuir mais de um python em sua máquina. O arquivo é como no exemplo abaixo:
{
"temp_output": "/../data/",
"python-command":"python3",
"publishers":
[
{
"_youtube_user": "AndroidPITcom",
"name": "AndroidPIT US",
"isChannel": false
}
]
}

3. Ajustar arquivo api-keys.json

Você deve possuir as chaves de acesso da API, que serão utilizadas pelo Tarantulla-YouTube. Edite o arquivo api-keys.json, informando suas chaves.

Será necessário informar a YTAPIKEY, que guarda a chave de acesso à API.

Vale lembrar que a Youtube Data API possui um limite de requisições baseado em unidades, sendo que cada operação da API consome uma quantidade própria de unidades. Essa quantidade por operação pode ser conferida em: https://developers.google.com/youtube/v3/determine_quota_cost. A API limita 1.000.000 de unidades por dia ou 30.000 unidades por segundo por usuário ou 3.000.000 de unidades por 100 segundos.

4. Ajustar arquivo config-db.json

Edite o arquivo config-db.json informando o nome do banco, nome de schema e da tabela que serão utilizados, bem como a senha e outras características relevantes.

5. Executar script SQL

O script SQL possui uma cláusula CREATE TABLE que será responsável por criar a tabela. Lembre-se de alterar esse script de acordo com o nome do schema e da tabela que deseja utilizar.

Executando o Tarantulla-YouTube

Pronto! Agora basta rodar o Tarantulla-Youtube para obter os dados desejados.

Se quiser executar com o PDI, insira o comando:

$ <PDI_HOME>/./kitchen.sh  -file="<YOUR TARANTULLA YOUTUBE FOLDER>/etl/main.kjb"

Caso você tenha configurado PDI_HOME para /opt/Pentaho/design-tools/data-integration é suficiente executar:

$ <YOUR TARANTULLA YOUTUBE FOLDER>/scripts/etl.sh job ../etl/main.kjb

E sem PDI:

$ python3 statsMain.py

Espero que o post tenha sido útil para você. Se tiver qualquer dúvida, não hesite em entrar em contato! Vejo vocês na próxima!