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ísticas1. 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:

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.