Analisador simples para youtube em tabelas do google

Antecedentes


Havia uma tarefa de coletar dados em mais de 2000 vídeos do youtube, dos quais era necessário extrair o nome do vídeo, canal e idioma.

A função IMPORTXML, com a qual você pode executar a análise de sites, não ajudou, porque, como se descobriu mais tarde, o youtube armazena dados em arquivos JSON. Não queria resolver tantos vídeos com as mãos e comecei a procurar maneiras de automatizar ou, pelo menos, simplificar esta tarefa.

Encontrei um artigo antigo de 15 no Habré , que descreve como obter o número de visualizações de vídeos, mas a partir do momento de sua publicação o youtube atualizou a API e eu precisava obter dados um pouco diferentes.

No processo de solução do problema usando a API do youtube e as tabelas do Google, descobriu-se não apenas extrair dados de uma lista pré-preparada de URLs de vídeo, mas também analisar a saída do youtube por palavra-chave.

Sendo o maior prazer do resultado, decidi compartilhar minha experiência e descrever o processo com mais detalhes.

O método em si certamente não é ideal. Pode ser descrito como uma solução simples com pressa. Mas até eu começar a aprender Python (espero que esse dia chegue mais cedo ou mais tarde) eu tenho que fazer tudo da maneira antiga nas tabelas.

Preparação


Para que o analisador funcione, como no artigo original, precisamos do script ImportJSON e da API do youtube.

Importjson


Faça o download do script no github e instale na tabela através do editor de scripts tools >>.

API do YouTube


Obtemos nossa API - a chave da API de dados do YouTube V3 na biblioteca e criamos credenciais para ela. Anteriormente, é claro, criamos uma conta, se você ainda não está registrado no Google Cloud.

As informações sobre o vídeo são armazenadas em um arquivo JSON, disponível no link:
www.googleapis.com/youtube/v3/videos?id= {Video_ID} & key = {API_Key} & part = {Part_Parametr}
onde
Video_ID - identificador de vídeo
API_Key - a chave da API que você obtém no console
Part_Parametr - parte do arquivo no qual as informações são armazenadas
Partes de um arquivo podem ser de vários tipos:
snippet - contém quase todas as informações básicas sobre o vídeo:
1. data de publicação
2. título do vídeo
3. nome do canal
4. identificação do canal
5. descrição sob o vídeo (Descrição)
6. categoria de vídeo (número)
7. tags
contentDetails - contém a duração e a resolução do vídeo.
topicDetails - contém a categoria de vídeo na forma de um link da Wikipedia com o nome da categoria; no entanto, esta seção nem sempre é preenchida.
estatísticas
1. visualizações
2. número de comentários
3. curtidas
4. não gosta
Em geral, essas são as partes principais que você pode precisar, mas uma lista completa, se houver, está na ajuda .

Recuperando dados da lista de URLs


Considere o trabalho do analisador usando a revisão de mau humor como exemplo . Para obter informações sobre um vídeo, precisamos apenas de seu identificador ( Video_ID ); nesse caso, é EOWa0fmSGs8 .

Obtemos e estruturamos informações usando a fórmula ImportJSON e a linguagem de consulta XPath.

É assim que o arquivo JSON no servidor se parece:

imagem

A fórmula para obter o número de visualizações nas tabelas:
= ImportJSON ('' https://www.googleapis.com/youtube/v3/videos?id=EOWa0fmSGs8&key= {API_Key} & part = statistics ''; "/ items / statistics / viewCount"; '' noHeaders '')
Em princípio, XPath não pode ser usado na solicitação, mas você obterá todo o conteúdo do arquivo JSON, sem segmentação por parâmetros. Depois de criar o número necessário de fórmulas com os parâmetros XPath, você obterá apenas os dados necessários, que serão mais fáceis de processar.

Como obter uma lista de vídeos por palavra-chave


O princípio de analisar a saída é o mesmo do exemplo acima, mas a estrutura da solicitação muda um pouco.

Nesse caso, o arquivo JSON com os resultados do vídeo está localizado no link
www.googleapis.com/youtube/v3/search?part=snippet&q= {Your_Query} & type = video & key = {API_Key}
onde o parâmetro type indica exatamente o que obtemos na saída:

type = video - uma lista de vídeos relevantes para a solicitação
type = channel - lista de canais
type = playlist - lista de listas de reprodução
Você também pode especificar na solicitação:

1. data de publicação ou intervalo de datas
2. região e idioma da pesquisa
3. duração do vídeo
4. número de resultados (padrão 5, máximo 50), etc.

Uma lista completa de parâmetros e construtor de consultas está disponível aqui .

Para obter uma lista de IDs de badcomedian, use a fórmula:
= ImportJSON (" www.googleapis.com/youtube/v3/search?part=snippet&q=badcomedian&type=video&key= {API_Key}"; "/ items / id / videoId"; '' noHeaders '')
O ImportJSON funciona bem em conjunto com a função CONCEPT, que nos permite, alterando vários parâmetros, executar análise de massa ou análise de vídeo.

Um exemplo de como a tabela está organizada:



Método menos


Um ponto negativo menos importante desse método de análise de informações é o esgotamento rápido do limite diário de solicitações de API. Não encontrei uma maneira de limitar o número de solicitações ou criar uma chamada consistente para a API. Ou seja, uma tentativa de analisar informações em mais de 10 chaves ao mesmo tempo garante um erro - o fim do limite diário de consultas. Portanto, você deve dividir as palavras-chave em pequenos grupos e salvar os resultados como valores.

Source: https://habr.com/ru/post/pt443506/


All Articles