Utilizando data science para fazer a playlist mais feliz do Radiohead

Utilizando o atributo de positividade de uma música para selecionar as menos depressivas do Radiohead

Radiohead é uma das bandas que eu mais gosto e escuto. Porém as pessoas costumam dizer que a música deles é depressiva. Olha, eu não posso mentir… Mas nem todas as músicas são assim.

Na tentativa de provar para os meus amigos que a banda não é só chororô e dá sim pra dançar e se sentir feliz eu resolvi criar este estudo em R, baseado na experiência do RCharlie.

Nos meus últimos posts eu abordei muito a utilização do Python, então para este post resolvi fazer alguma coisa em R.

Pra começar, eu fiz o download do package ‘spotifyr’, que, de uma maneira mais rápida, possibilita com que eu pegue as informações da discografia inteira de uma banda através da api do Spotify. Além dele também precisaremos do ‘dplyr’ e do ‘ggplot2’.

## Instalando e carregando os pacotes dplyr, spotifyr e ggplot2
install.package("dplyr")
install.package("spotifyr")
install.package("ggplot2")
library(dplyr)
library(spotifyr)
library(ggplot2)

O próximo passo foi colocar as minhas credenciais e fazer a autorização da API do Spotify.

## Autorizando a API
Sys.setenv(SPOTIFY_CLIENT_ID = 'xxxxxxxxxxxxx')
Sys.setenv(SPOTIFY_CLIENT_SECRET = 'xxxxxxxxxxxxx')

Depois disso foi a hora de selecionar apenas as colunas que me interessavam no dataset por meio do pacote ‘dplyr’.

## Buscando as features relacionadas ao Radiohead
spotify_df <- get_artist_audio_features('radiohead')
str(spotify_df)

A api do Spotify possui um atributo para cada música chamado ‘valence’, que vai de 0 a 1, e estima a positividade de uma música. Músicas com uma valência alta, são consideradas mais positivas. Mais detalhes sobre isso você pode conferir na documentação da api.

## Selecionando os atributos
track_df <- spotify_df %>%
select(track_name, valence, duration_ms, album_name)

Assim, tendo a valência como base, organizei uma lista com as 13 músicas com o maior valor de toda a discografia do Radiohead (incluindo remasterizações, remixes, etc…)

## Organizando a lista com as 13 músicas mais animadas da banda
selected <- track_df %>% 
select(valence, track_name) %>%
arrange(-valence) %>%
slice(1:13)
## Plotando o gráfico de valência com o ggplot
m <- ggplot(selected, aes(x = track_name, y = valence))
m +geom_bar(stat = "identity", fill = "#FF6666") +
theme(axis.text.x=element_text(angle=90,hjust=1,vjust=0.5)) +
ggtitle("Gráfico de valência") +
labs(x="Músicas",y="Valência") +
theme(plot.title = element_text(color="#666666", face="bold", size=20, hjust=0)) +
theme(axis.title = element_text(color="#666666", face="bold", size=14))

E, desta lista, nasceu essa playlist maravilhosa:


Fique a vontade para compartilhar suas opiniões aqui nos comentários do post. Para acompanhar um pouco mais do meu trabalho em publicidade, marketing e data science, siga-me no Linkedin e no Twitter.