Neste repo, coleciono e exploro dados relacionados às faixas apresentadas nos gráficos do Spotify. Eu construo o trabalho que fiz neste repositório, onde já fiz muitas coisas. Infelizmente, o processamento de dados neste projeto foi realmente confuso, então decidi começar do zero para criar um conjunto de dados mais limpo.
Eu criei scripts da CLI para buscar dados relacionados aos gráficos do Spotify. Eles podem ser encontrados na subpasta cli_scripts deste projeto. Como o nome da pasta sugere, todos os scripts podem ser invocados diretamente da linha de comando. Você pode ligar para cada script com a opção -h para obter informações sobre os argumentos aceitos (exemplo: python cli_scripts/get_all.py -h ).
Primeiro, criei scripts para montar dados para faixas do Spotify Daily Top 200. Infelizmente, esses dados não estão disponíveis através da API. Além disso, é preciso baixar os arquivos CSV do gráfico para cada região e rastrear separadamente (navegando na página dos gráficos do Spotify e clicando no botão de download), o que é muito inconveniente.
No entanto, eu trabalhei em torno disso criando dois scripts (consulte a subpasta spotify_charts ):
download.py : automatiza o processo de download de arquivos CSV para várias regiões (todos ou um subconjunto especificado por argumentos) e um determinado intervalo (start + data final) usando selenium (requer Spotify Conta/Credenciais!)combine_charts.py : combina arquivos CSV do Spotify Bailt do Spotify, localizados no diretório especificado em um único arquivo .parquet Muitas informações e metadados interessantes sobre música no Spotify também podem ser recuperados da API oficial do Spotify. Todos os scripts usando a API do Spotify (através do invólucro da API spotipy Python) podem ser encontrados em spotify_api :
get_track_metadata.py : busca metadados de rastreamento do ponto de extremidade do /tracks a API para IDs de faixa exclusivos mencionados em um arquivo .parquet fornecido. Produz uma pasta de vários arquivos de metadados .parquetget_album_metadata.py : faz a mesma coisa que acima, apenas para álbuns em vez de faixas (usando o /albums )get_artist_metadata.py : busca metadados do artista para todos os IDs de artistas exclusivos entre vários arquivos de entrada (cada um com uma coluna artists_id ), também armazenando metadados em uma pasta como os outros scripts acimaget_all.py : combina todos os scripts, obtendo os metadados da faixa primeiro, depois os metadados do álbum para todos os álbuns associados a faixas e finalmente metadados do artista para todos os artistas de faixas e álbuns. Infelizmente, as informações para créditos de faixa (especificamente, compositores e produtores) também não estão disponíveis pela API do Public Spotify. No entanto, criei uma maneira de contornar isso. Pode -se extrair os cabeçalhos de solicitação usados para solicitações específicas feitas pelo aplicativo do Spotify Web, por exemplo, ao abrir o Show Credits pop -up em uma página de faixa e reutilizá -los para fazer outras solicitações para o mesmo endpoint da API (não oficial/interno).
Esta abordagem pode ser usada para
# download CSVs; might take a loooong time, can be interrupted and restarted/resumed later
python cli_scripts/spotify_charts/download.py -s 2022-01-01 -e 2022-12-31 -o data/scraper_downloads
# combine downloaded CSVs into single parquet file
python cli_scripts/spotify_charts/combine.py -o data/top200_2022python cli_scripts/spotify_api/get_all.py -i data/top200_2022/charts.parquetTODO: Adicione o comando adequado assim que os scripts estiverem 'acabados' (bom o suficiente)
Para fazer tudo funcionar, você pode seguir estas instruções (supondo que tenha uma versão recente do Python instalada)
Se você quiser, você pode criar um novo ambiente, por exemplo, com conda :
conda env create --name=spotify-charts-analysis
conda activate spotify-charts-analysis
Para fazer com que todos os scripts funcionem para fora da caixa, você pode simplesmente instalar o pacote helpers executando
pip install -e .
Como alternativa, você também pode instalar pacotes um por um enquanto está enfrentando problemas tentando executar coisas lol
As letras da faixa no Spotify podem estar incorretas, mesmo para músicas bastante populares (por exemplo, esta faixa instrumental que, por algum motivo, tem letras).