BC Charts tutorial

O presente texto tem por objetivo explicar como ocorre a confecção dos BC Charts, a partir dos dados dos usuários da BC que cadastraram seus users do Last. FM. O presente texto se encontra dividido em três pontos: (i) download da scrobbles dos usuários da BC via API do Last.FM no R; (ii) construção dos BC Charts; (iii) criação automática da playlist BC Hot 50 via Python, com as músicas mais escutadas pelos usuários da BC, no Spotify.

Download dos dados de scrobble dos usuários da Last.FM

Essa parte é toda realizada no software estatístico R, através de funções do pacote httr e jsonlite. Você precisará possuir uma chave de API do Last. FM, que você encontra aqui. A partir daí, a seguinte função get_scrobbles_my.r é usada para realizar o download dos scrobbles dos usuários em 7 dias (podendo ser mais dias ou menos dias a depender da necessidade do usuário), considerando o limite de 1000 scrobbles por request.

Construção dos BC Charts

Essa parte também é realizada no R e de posse dos scrobbles dos usuários da BC, o pacote dplyr é usado para contabilizar o número de plays por faixa, álbum e artista. No fim, é um simples exercício de contagem. O código abaixo mostra como isso é realizado para contabilizar as faixas mais populares. Lembrando que scrobbles respetidos consecutivamente não são considerados e que cada user pode contribuir no máximo com 2000 scrobbles na semana.


Playlist automática do Spotify

Essa parte é realizada no Python, via pacote Spotipy, e você precisará de uma chave API e chave secreta do Spotify que você pode criar com sua conta do Spotify aqui. Para criar a playlist automaticamente, é necessário inicialmente saber qual é o URI das músicas presente no BC Hot 50. O URI de uma música é sua identificação frente ao Spotify. Ele é visível publicamente. Assim, por exemplo, a música Right There — Live in London da Ariana Grande tem o seguinte URL: https://open.spotify.com/track/5J9jzskSfbSF7sTCWyoF93?si=b73fb4eb5ecf40e0. Seu URI, por outro lado, será: 5J9jzskSfbSF7sTCWyoF93. No caso, para uma playlist de 50 músicas, é necessário encontrar o URI para todas essas músicas. A função search do pacote Spotipy é usada da seguinte forma:


Em que df é a base de dados contendo o nome da faixa (track), nome do álbum (album) e artista (artist). Geralmente, apenas 4,5 em 50 músicas não são encontradas via busca do Spotipy e a identificação dessas faixas é feita manualmente.

De posse da identificação das 50 faixas da BC Hot 50, basta alterar a playlist do Spotify e o pacote Spotipy também possui funções para realizar de tal mudança, que pode ser visualizada no código abaixo.

Esse é basicamente o passo-a-passo da construção do BC Charts. Se você tiver alguma dúvida, você me encontra no Twitter, sob o handle:@b12563_e.