Acesse o README em português aqui.
Spotify is the most popular western music streaming service with more than 270 million active users in 79 countries. The platform, and its competitors, had a big impact on how the music industry functions in the past 10 years.
The company provides daily and weekly data for the Top 200 songs, filtered by geographical region, on Spotify Charts.
This repo consolidates brazilian daily data of 2019, i.e. scrapes every single day of 2019 and converts the data into a dataframe containing songs, access stats and audio features (key, mode, tempo, danceability, etc.).
This analysis would be impossible without the spotifyr R package, that provides an elegant way of scraping songs features through Spotify's Official API.
It's also important to say that the code for scraping Spotify Charts was almost entirely based on the work of Nathaniel Lao. Make sure to check his analysis!
install.packages("spotifyr") # Allows for extracting metadata for songs
install.packages("dplyr") # DF manipulation
install.packages("readr") # Fil reading
install.packages("stringr") # For string manipulation
install.packages("ggplot2") # Plotting
install.packages("ggdark") # Plotting themes
The analysis was divided in three parts (markdown file):
- Spotify Scraping: Spotify Charts scraping, dataframe manipulation and songs features scraping via Spotify's Official Website.
- Spotify Objective Analysis: analysis of songs objective features, such as position, key, mode, duration and tempo.
- Spotify Subjective Analysis: short analysis of subjective features, such as danceability, energy, acousticness, etc.
Check Código for the entire code.
It's hard to find a specific factor that completely explains the success of a song, since the music market is complex and is impacted by many different variables, many of them being impossible to quantify. Still, it's possible to understand some of the main trends in the brazilian music market.
Find below some of the analysis' results.