Análise de Dados do YouTube com VBA – Usando a API do YouTube
Quer aprender a fazer uma análise de dados do YouTube com VBA para automatizar e facilitar esse processo do seu canal?
Em resumo: para fazer análise de dados do YouTube com VBA, você usa a API do YouTube para buscar informações de um canal ou vídeo (visualizações, curtidas, comentários, inscritos) direto para o Excel via VBA, organizando os dados na planilha. Assim dá para automatizar o acompanhamento das métricas do canal sem coletar tudo manualmente.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!
O que você aprende neste vídeo
Resposta rápida: Nesta aula de VBA, o Diego ensina a analisar os dados de um canal do YouTube usando a API, direto do Excel. Ele mostra como fazer a requisição para a API do YouTube, tratar a resposta (percorrendo os vídeos com uma estrutura de repetição), extrair as informações que interessam (título, descrição, curso relacionado) e ainda lidar com o consumo de cota e o tratamento de erros.
Neste vídeo (47 min):
- 0:00 - O objetivo: analisar os dados de um canal do YouTube com a API, usando VBA.
- 7:00 - Editar e preparar as informações que serão buscadas.
- 14:00 - A estrutura de repetição para percorrer os vídeos.
- 21:00 - O consumo de cota da API conforme a resposta que se pede.
- 42:00 - Classificar os vídeos por curso e o tratamento de erros.
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Análise de Dados do YouTube com VBA – Usando a API do YouTube
Fala, Impressionadores! Na aula de hoje vamos mostrar como fazer algo muito legal que vocês podem ter que fazer alguma vez se lidam com Youtube: análise de dados do YouTube com VBA!
A ideia da aula de hoje é fazer uma análise de dados do YouTube com VBA. Está preparado?
Nós já temos um outro post aqui no Blog de como usar API no VBA, que complementa e detalha muito do que vamos mostrar na aula de hoje. É altamente recomendável que você assista essa aula antes do post de hoje.
Inicialmente, temos uma tabela pré-montada no Excel, e queremos retornar uma resposta que vai nos dar 500 vídeos do canal da Hashtag ordenados por mais visualizações é da “categoria” VBA, ou não.
Essas informações serão retornadas a partir dos vídeos e seus respectivos IDs do site do Youtube, mais especificamente falando das descrições dos vídeos.
Abaixo mostramos a tabela com as informações “esperadas” vazias, antes de executarmos o código, que vai receber as informações. Veja:

Ativar referências no VBA
Importantíssimo para a aula de hoje, e para o desempenho da API da forma como esperamos, teremos que ativar duas referências dentro do VBA.
Mais especificamente falando, serão as referências “Microsoft WinHTTP Services” (destacada abaixo) e também a “Microsoft Scripting Runtime”

Após ativá-las, poderemos partir para o código que vai desempenhar a API do Youtube no VBA, que está a seguir:
<strong>Sub APIYouTube()</strong>
<strong>'https://developers.google.com/youtube/v3/getting-started?hl=pt-br</strong>
<strong>'https://console.cloud.google.com/</strong>
<strong>
Dim requisicao As New WinHttpRequest</strong>
<strong>Dim resposta As Object</strong>
<strong>Dim url As String, parametros As String</strong>
<strong>lin = 2</strong>
<strong>Do While Cells(lin, 1).Value <> ""</strong>
<strong> idVideo = Cells(lin, 1).Value</strong>
<strong> 'chaveAPIYouTube = "Colocar sua chave da API aqui"</strong>
<strong> ' Definir a URL e os parâmetros</strong>
<strong> url = "https://www.googleapis.com/youtube/v3/videos"</strong>
<strong> parametros = "?key=" & chaveAPIYouTube & "&id=" & idVideo & "&part=snippet&fields=items(snippet(description))"</strong>
<strong> ' Enviar a requisição</strong>
<strong> requisicao.Open "Get", url & parametros</strong>
<strong> 'requisicao.SetRequestHeader</strong>
<strong> requisicao.Send</strong>
<strong> ' Tratamento de erros</strong>
<strong> If requisicao.Status <> 200 Then</strong>
<strong> MsgBox "Erro: " & requisicao.ResponseText</strong>
<strong> Exit Sub</strong>
<strong> End If</strong>
<strong> ' Converter o JSON</strong>
<strong> Set resposta = JsonConverter.ParseJson(requisicao.ResponseText)</strong>
<strong> ' Tratar as informações</strong>
<strong> Dim itens As Collection</strong>
<strong> Set itens = resposta("items") </strong>
<strong> On Error GoTo TratamentoDeErros</strong>
<strong> Set videoYT = itens(1)</strong>
<strong> On Error GoTo 0</strong>
<strong> If InStr(videoYT("snippet")("description"), "CURSO COMPLETO VBA IMPRESSIONADOR") > 0 Or InStr(videoYT("snippet")("description"), "esperavbaimpressionador") > 0 Then</strong>
<strong> Cells(lin, 4).Value = "Sim"</strong>
<strong> Else</strong>
<strong> Cells(lin, 4).Value = "Não"</strong>
<strong> End If </strong>
<strong>VoltarTratamentoErro:</strong>
<strong> lin = lin + 1</strong>
<strong>Loop</strong>
<strong>Exit Sub</strong>
<strong>TratamentoDeErros:</strong>
<strong> Resume VoltarTratamentoErro</strong>
<strong>End Sub</strong>Explicações e comentários a respeito do código acima (APIYoutube):
- Dimensionar:
- a variável “requisicao” como sendo do tipo um novo objeto do tipo WinHttpRequest, que é um objeto da biblioteca que ativamos, a “Microsoft WinHTTP Services”
- a variável “resposta” como um objeto
- as variáveis “url” e “parametros” do tipo texto
- Armazenar o valor 2 na variável “linha”, porque a tabela de informações começa na 2ª linha
- Abrir uma estrutura de repetição do tipo Do While, com a condição “padrão” para continuar for verdadeira: o valor da primeira coluna, linha a linha (representada pela variável “lin”) for diferente de vazio (linha sem preenchimento). Ela vai fazer as seguintes ações repetidamente até essa condição ser falsa:
- Armazenar na variável “idVideo” o que estiver na primeira coluna, linha a linha
- Armazenar na variável “chaveAPIYoutube” a sua chave API do Youtube conseguida no site que indicamos
- Armazenar na variável “url” o texto que corresponde ao site exatamente que vamos acessar para pegar as informações, que é o link disponibilizado
- Armazenar na variável “parametros” os parâmetros variáveis do link da API, levando em consideração a “chaveAPIYoutube”, e o “idVideo”
- Abrir (do inglês “open”) o objeto que é representado pela variável “requisicao”, passando os argumentos “url” e “parametros”, dos quais ela vai pegar informações (get, em inglês)
- Passar para o cabeçalho da “requisicao” os parâmetros “padrão” informados pela API
- Dar o comando de “enviar” requisição (send, em inglês), que é de fato quando o VBA envia a requisição para o site
- Com um simples tratamento de erro, vamos verificar através de uma estrutura If se a propriedade “Status” da variável “requisicao” é diferente de 200 (porque essa resposta é a esperada quando uma resposta válida é retornada pela API). Caso o “Status” seja diferente de 200:
- Uma mensagem será gerada na tela informando “Erro”.
- A sub vai ser abortada, pela instrução Exit Sub
- Configurar a variável “resposta” para receber o objeto da biblioteca JSON, que vai ser responsável por retornar a resposta, em texto, da “requisicao”
- Dimensionar a variável “itens” como uma variável do tipo “Collection”, da biblioteca JSON
- Configurar a variável “itens” como sendo o termo “items” da requisição “resposta”
- Utilizar um tratamento de erros:
- Se der algum erro a partir desse comando, o código será levado diretamente para o “ponto” chamado de “TratamentoDeErros”, ao final do código
- Configurar a variável “videoYT” para receber o primeiro item da coleção “itens” (que vai ser o “snippet”, pois passamos somente ele como parâmetro)
- Não dando nenhum erro, o tratamento é “desconfigurado”. A linha “On Error GoTo 0” vai fazer o VBA a retornar para o tratamento de erros padrão do VBA, onde resume em caixas os erros apontados pelo próprio VBA, em relação ao código

- Tudo dando certo, seguiremos com o código utilizando de uma função InStr, que vai nos dar o indicativo da presença de um texto dentro de um texto, atrelada a uma estrutura If, que vai fazer uma comparação. Se na descrição do “snippet” (termo da coleção resposta da consulta da API) tivermos a cadeia de texto “CURSO COMPLETO VBA IMPRESSIONADOR” ou “esperavbaimpressionador” (textos esperados para uma descrição de vídeo do VBA do canal da Hashtag):
- Escrever “Sim” como resultado, na 4ª coluna da tabela, na linha representada pela variável “lin”
- Caso não existam as cadeias de texto em questão na resposta da requisição, escrever “Não” na na 4ª coluna da tabela, na linha representada pela variável “lin”

-
- Normalmente o código vai armazenar na variável “lin” o valor dela própria e mais uma unidade
- Caso ocorra um erro lá em cima no ponto “TratamentoDeErros”, o código vai “estar” lá embaixo e o código vai “voltar” para o ponto “VoltarTratamentoErro”, voltando à configuração original (“resetando”) o tratamento de erros
- Se encerra o código
- OBS: Para entender melhor sobre os tipos de dados no VBA, visite esse link oficial.
- OBS2: Lembrando que o site da API utilizada aqui na aula de hoje está nesse link.
- OBS3: Lembrando também que o site para conseguir a chave da API é esse aqui.
- OBS4: Para entender melhor sobre coleções, indicamos esse outro post aqui do Blog!
Rodando o código, e exibindo um resultado para a variável “videoYT” exemplo na caixa de verificação imediata do VBA, teremos:

Deixando o código rodar de uma vez só (sem pausas), teremos o seguinte resultado final:

Conclusão – Análise de Dados do YouTube com VBA
Hoje você aprendeu a lidar com a análise de dados do Youtube com VBA!
Mais especificamente conseguimos entender e ver como uma API no VBA para entender detalhes (a descrição) dos vídeos aqui do canal, e fazer verificações e análises diretamente deles!
Usamos conceitos importantes além de lidar com APIs, que foram: função de texto InStr, Estrutura If, Estrutura de repetição Do While; entre outras estruturas que falamos em outros posts aqui do Blog também!
Valeu, Impressionadores! Fique ligado no nosso canal do Youtube para mais conteúdo de VBA! Até o próximo post!
Perguntas frequentes
1. Como puxar dados do YouTube para o Excel?
Você usa a API do YouTube (YouTube Data API) com o VBA para fazer requisições e trazer métricas como visualizações, curtidas, comentários e inscritos direto para a planilha. Os dados chegam em JSON e o VBA os organiza nas células.
2. Preciso de chave de API para acessar o YouTube?
Sim. É preciso criar um projeto no Google Cloud e gerar uma chave da YouTube Data API. O uso tem uma cota diária gratuita, suficiente para análises de canais e relatórios sem custo na maioria dos casos.
Hashtag Treinamentos
Para acessar outras publicações de VBA, clique aqui!

