library(httr); library(jsonlite); library(dplyr); library(readr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# Top 100 Songs - United States
url <- "https://rss.applemarketingtools.com/api/v2/us/music/most-played/100/songs.json"
res <- GET(url); stop_for_status(res)
j <- fromJSON(content(res, as="text", encoding="UTF-8"), flatten=TRUE)
charts <- as_tibble(j$feed$results) %>%
transmute(rank = row_number(), title = name, artist = artistName, id)
write_csv(charts, "apple_music_charts_api.csv")
print(head(charts, 100))
## # A tibble: 100 × 4
## rank title artist id
## <int> <chr> <chr> <chr>
## 1 1 Safe (feat. Kehlani) Cardi B 1821…
## 2 2 Golden HUNTR/X, EJAE, AUDREY NUNA, REI … 1820…
## 3 3 Magnet Cardi B 1821…
## 4 4 Pretty & Petty Cardi B 1821…
## 5 5 Dead (feat. Summer Walker) Cardi B 1821…
## 6 6 Hello Cardi B 1821…
## 7 7 Pick It Up (feat. Selena Gomez) Cardi B 1821…
## 8 8 Soda Pop Saja Boys, Andrew Choi, Neckwav,… 1820…
## 9 9 Folded Kehlani 1818…
## 10 10 Bodega Baddie Cardi B 1821…
## # ℹ 90 more rows