Analisando dados do Spotify no R

Todo ano os cientistas de dados do Spotify criam uma retrospectiva musical dos seus usuários. Essa apresentação é compartilhada por muitas pessoas nas redes sociais, que debatem acerca das suas preferências. A plataforma permite o acesso a alguns destes dados por meio de uma API. Para acessa-la com facilidade, podemos utilizar o pacote {spotifyr}.

Primeiramente, deve ser feito um cadastro no site do Spotify (https://developer.spotify.com/). Assim, podemos obter a chave pessoal para acessar a API. Basta colocar o ID e essa chave da seguinte maneira:

library(tidyverse)
library(spotifyr)
library(ggridges)

Sys.setenv(SPOTIFY_CLIENT_ID = 'xxxxxxxx')
Sys.setenv(SPOTIFY_CLIENT_SECRET = 'xxxxxxx')

access_token <- get_spotify_access_token()

Existem várias funções diferentes que podemos fazer neste pacote. Podemos obter características sonoras, datas de lançamento, popularidade, entre outras coisas. É possível também obter seus próprios dados de consumo. Por exemplo, a função "get_my_saved_albuns", retorna todos os álbuns das músicas que você curtiu. Esta função possui um limite de 50 álbuns, assim como outras semelhantes. Assim é preciso utilizar um loop para obter todos os seus álbuns.

No caso, selecionei os meus álbuns com as variáveis de data de lançamento e popularidade. Com esta categoria, criei uma variável binária para separar os álbuns entre populares e não-populares, utilizando um limite de 50 na escala do aplicativo.

lista = list()

for (i in seq(0,10)){
  x = i*50

  lista[[i+1]] <- get_my_saved_albums(limit = 50, offset = x)

  if (nrow(lista[[i+1]]) < 50){
  break
  }
}

meus_albuns <- bind_rows(lista, .id = "column_label") %>%
select(album.artists, album.name, album.popularity, album.release_date) %>%
mutate(album.release_date = stringr::str_extract(album.release_date, "^.{4}")) %>%
mutate(faixa_popularidade = ifelse(album.popularity > 50,"Populares", "Não-Populares"))

Assim, é possível criar um gráfico para observar o seu gosto em relação aos anos de lançamento.

 


ggplot(meus_albuns) +
geom_histogram(aes(x = album.release_date, fill = faixa_popularidade),stat="count", alpha = 0.8) +
theme_minimal() +
scale_x_discrete(breaks=seq(1969, 2020, 5)) +
scale_fill_brewer(palette = "Dark2") +
ylab("Álbuns na playlist") +
xlab("Ano de lançamento")

 

Outra possibilidade interessante é extrair informações de bandas ou gêneros específicos. Podemos, por exemplo, selecionar a banda Pearl Jam para analisar alguma característica sonora do conjunto. Um dado interessante é observar a chamada "valência" das músicas. Basicamente, a valência descreve a positividade musical de uma canção. Músicas com valência mais altas soam mais positivas.

Assim, selecionamos os álbuns de estúdio da banda para acompanhar a distribuição das músicas pela valência, que parece aumentar ao longo dos anos.

 


PJ <- get_artist_audio_features('Pearl Jam') %>%
mutate(ano_album = paste0(album_release_year, " - ", album_name)) %>%
filter(album_name %in% c("Ten", "Vs.", "Vitalogy", "No Code",
"Yield", "Binaural", "Riot Act",
"Pearl Jam", "Backspacer", "Lightning Bolt",
"Gigaton"))

ggplot(PJ, aes(x = valence, y = ano_album, fill = ano_album)) +
geom_density_ridges(alpha = 0.5, jittered_points = TRUE) +
theme_ridges() +
guides(fill=FALSE,color=FALSE) +
ggtitle("Valência dos álbuns do Pearl Jam")

 

________________________

(*) Para entender mais sobre a linguagem R e suas ferramentas, confira nosso Curso de Introdução ao R para análise de dados.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como usar automação com Python e IA na análise de ações

No cenário atual, profissionais de finanças buscam formas mais rápidas, eficientes e precisas para analisar dados e tomar decisões. Uma das grandes revoluções para isso é o uso combinado de Python, automação e modelos de linguagem grande (LLMs), como o Google Gemini. O dashboard que criamos é um ótimo exemplo prático dessa integração, reunindo dados, cálculos, visualizações e análise textual em um único ambiente.

Análise de ações com IA - um guia inicial

Neste artigo, você vai aprender a integrar IA na análise de ações de forma automatizada utilizando Python. Ao final, você terá um pipeline completo capaz de coletar dados de mercado, gerar gráficos, elaborar relatórios com linguagem natural.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.