Extraindo dados estruturados do YouTube com o Google Gemini
Uma prova de conceito baseada no canal Sexto Round do YouTube.
O sonho de todo programador é um dado estruturado: sem erros, de preferência formatado de modo a ser facilmente parseado pelo seu código: JSON, XML, CSV, são alguns exemplos de formatos comuns que adoramos trabalhar.
A tragédia é que a maior parte dos dados não vem assim, empacotada. Eles precisam ser desvelados, quase como conquistados. Quando estudei na University of Melbourne, Australia, tínhamos uma disciplina chamada data mining – termo que hoje em dia pouco vejo falar, mas que representa bem o espírito dessa caça aos dados.
Isso porque na era digital tudo é um dado: comentários, notícias, sentimentos, preços de ativos e produtos, tweets, fotos, PDFs, etc. Analisar essa gama diversa de fonte de dados é um trabalho muito difícil.
IA e a revolução dos dados não-estruturados
No entanto, à medida que as Inteligências Artificiais vão se desenvolvendo, cada vez mais conseguimos formatar esses dados não-estruturados nos nossos formatos preferidos, como o bom e velho JSON.
Isso porque as IAs, por "compreenderem" linguagem natural, conseguem extrair o conteúdo de um determinado resource. Por exemplo, passa-se um OCR num PDF, extrai-se textos e imagens, executa-se uma análise semântica, e pronto, você transformou um formato extremamente complexo em algo formatado (por curiosidade, o Mistral AI é uma das empresas que se especializou nessa análise de PDFs).
Extraindo dados diretamente de vídeos
Portanto, foi com bastante animação que vi a notícia de que o Google Gemini, modelo de IA do Google, pode agora extrair dados de vídeos do YouTube!
Até o momento, o melhor que conseguíamos era transcrever o vídeo (copiando o próprio transcript do YouTube ou usando um modelo de voice-to-text como Whisper) e passar o texto para as IAs. Ou seja, era uma análise de texto como outra qualquer.
No entanto, com esse novo recurso do Gemini, agora a IA é capaz de usar seu “native video understanding”, ou seja, analisar o vídeo como um todo, incluindo as imagens ali presentes. Melhor ainda, no momento que escrevo esse artigo, o uso é gratuito (com algumas limitações de RPM, mas que ainda são mais que suficientes para prototipações e pequenos projetos).
Por que isso é relevante?
Porque agora qualquer vídeo do YouTube é facilmente scraped, ou seja, analisado em seu contexto, e se combinado com os recursos das IAs de retornar um structured output – por exemplo, um JSON – abre-se um vasto horizonte onde dados anteriormente "escondidos" em vídeos podem ser utilizados no dia a dia.
MMA Trends: um exemplo prático
Para provar esse conceito, iniciei um projeto chamado MMA Trends.
Nesse projeto, decidi analisar os vídeos do maior canal de MMA brasileiro, o Sexto Round, por 2 motivos:
Por ser muito fã do canal (inclusive assino seu clube de membros há anos);
Pela consistência (vídeos diários) e tamanho (entre 7-10 minutos).
Cada vídeo consome cerca de 80-100k tokens, o que é mais do que suficiente para o contexto gigante (1M tokens) do Gemini.
O resultado desse projeto pode ser visto em mmatrends.com.br e um walk-through do app, do processo, e de como você mesmo pode implementar algo similar (inclusive mostrando na prática como fazê-lo através do AI Studio) está em nosso YouTube:
Aplicando a outros domínios
Sei que o público dessa newsletter é majoritariamente focado em análise quantitativa, mas mesmo que você não seja fã de MMA, entenda o projeto como uma prova de conceito que pode ser aplicada em outros domínios. Por exemplo:
Análise semântica de earning calls de empresas;
Extrair dados estruturados dessas calls (qual foi o aumento da receita? O ROE caiu? Expectativa de dividendos?);
Análise de sentimento de ações através de canais que cubram o mercado financeiro;
Extraindo minutagem precisa (timestamps)
O mais importante, por ter a análise do vídeo como um todo, não somente a transcrição, a IA é capaz de dizer exatamente em qual timestamp algo foi dito. No MMA Trends, mostrei essa funcionalidade na prática extraindo a minutagem onde cada lutador ou personalidade é mencionado. Isso significa que não somente você é capaz de extrair informações, mas referenciá-la, o que é crucial para determinar se a IA está cometendo erros.
Resultados e escalabilidade
No geral, analisei mais de 700 vídeos, cada um pelo menos 3 vezes (usei isso para gerar um consensus threshold, onde um timestamp só seria válido se estivesse presente na maioria das runs, ou seja, em 2 das 3). O processo funcionou sem erros, e de novo, ao custo de 0 reais.
Conclusão
Diante de tudo isso, só me resta declarar que fazer scraping de vídeos do YouTube é um problema resolvido. E se você, assim como eu, é fã de MMA, não deixe de acompanhar o MMA Trends. Exciting times ahead!