/vagalumeR

R package to access the Vagalume API

Primary LanguageR

Travis-CI Build Status

vagalumeR: Access the Vagalume API via R

This package allows you to access the Vagalume API via R. You can get information about specific artists/bands, as their related artists, and information about the lyrics, as the top lyrics of an artist/band and the text of a song itself.

The vagalumeR package is developed under control version using Git and is hosted in GitHub. You can download it from GitHub using devtools:

# install.packages("devtools")
devtools::install_github("brunaw/vagalumeR")

For exploring the content of the package, you may try:

library(vagalumeR)
packageVersion("vagalumeR")
ls("package:vagalumeR")
help(package = "vagalumeR")

Some examples of the usage of this package are below:

First of all, you'll need one API key, that can be obtained at the Vagalume Website. You'll need to register at the Website for that.

# Copy and paste your api key at the following object:
key <- "putyourapikeyhere"

#-----------
artists <- c("the-beatles", "madonna", "chico-buarque",
             "the-rolling-stones", "molejo")

library(tidyverse)
library(plyr)

ldply(map(artists, artistInfo), data.frame)
#>                  id           name views pos period uniques points
#> 1 3ade68b3gce86eda3    The Beatles 47167  28 201709   20796   37.7
#> 2 3ade68b3g1f86eda3        Madonna 12893 190 201709    6131   11.1
#> 3 3ade68b4g66c6eda3  Chico Buarque 74462  78 201709   37391   21.2
#> 4 3ade68b6g28c9eda3 Rolling Stones 25933 253 201709   13616    7.7
#> 5 3ade68b5g2f48eda3         Molejo  5362 849 201709    3052    1.9

#                  id           name  views pos period uniques points
# 1 3ade68b3gce86eda3    The Beatles 115586  24 201706   57221   42.5
# 2 3ade68b3g1f86eda3        Madonna   1519 169 201707     767   10.9
# 3 3ade68b4g66c6eda3  Chico Buarque   4603 109 201707    2124   15.2
# 4 3ade68b6g28c9eda3 Rolling Stones  28633 265 201706   15997    7.1
# 5 3ade68b5g2f48eda3         Molejo   7843 826 201706    4652    1.9

Where:

  • id is the identifier of the artist/band;
  • name is the name of the artist/band;
  • views is the number of views received by the artist/band at the Vagalume Website;
  • pos is the position of the artist/band at the Vagalume Ranking;
  • period is the period of evaluation;
  • uniques counts the number of unique views of the artist/band;
  • points is the pontuation of the artist/band at the Vagalume Ranking;
disc <- ldply(map(artists, discography), data.frame)

disc[sample(nrow(disc), 10), ]
#>              album.id                                          album.name
#> 42  3ade68b6g12b6fda3                                        Ray of Light
#> 52  3ade68b6gc408fda3 Who's That Girl: Original Motion Picture Soundtrack
#> 40  3ade68b6g48eafda3                                                GHV2
#> 66  3ade68b6g6638fda3                                       Chico Buarque
#> 97  3ade68b6g9166fda3                                            Stripped
#> 70  3ade68b6g8775fda3                                       Chico Buarque
#> 135 3ade68b6gcd18fda3                            The Rolling Stones No. 2
#> 125 3ade68b6g8683fda3                                 Between the Buttons
#> 136 3ade68b6g9c55fda3                                                12x5
#> 57  3ade68b6g5b88fda3                                               Chico
#>                                       label date                id
#> 42                                      wea 1998 3ade68b3g1f86eda3
#> 52                      Sire / London/Rhino 1987 3ade68b3g1f86eda3
#> 40  Maverick Records / Warner Bros. Records 2001 3ade68b3g1f86eda3
#> 66                                      RCA 1989 3ade68b4g66c6eda3
#> 97                                          1995 3ade68b6g28c9eda3
#> 70                                Universal 1984 3ade68b4g66c6eda3
#> 135                                   DECCA 1965 3ade68b6g28c9eda3
#> 125                                         1967 3ade68b6g28c9eda3
#> 136                                         1964 3ade68b6g28c9eda3
#> 57                            Biscoito Fino 2011 3ade68b4g66c6eda3
#>               name
#> 42         Madonna
#> 52         Madonna
#> 40         Madonna
#> 66   Chico Buarque
#> 97  Rolling Stones
#> 70   Chico Buarque
#> 135 Rolling Stones
#> 125 Rolling Stones
#> 136 Rolling Stones
#> 57   Chico Buarque

#              album.id                     album.name
# 32  3ade68b6g9758fda3         Sticky and Sweet: Live
# 155 3ade68b6g94c7fda3                   Polivalência
# 36  3ade68b6g8408fda3 I'm Going to Tell You a Secret
# 25  3ade68b6g5ff5fda3               Beatles for Sale
# 147 3ade68b6gcd18fda3       The Rolling Stones No. 2
# 38  3ade68b6g1a14fda3            Remixed & Revisited
# 27  3ade68b6g3ff5fda3               With the Beatles
# 90  3ade68b6gf8d6fda3              Meus Caros Amigos
# 89  3ade68b6g3638fda3                  Chico Buarque
# 109 3ade68b6g9166fda3                       Stripped
#                      label date                id           name
# 32                Maverick 2010 3ade68b3g1f86eda3        Madonna
# 155                        2000 3ade68b5g2f48eda3         Molejo
# 36                     wea 2006 3ade68b3g1f86eda3        Madonna
# 25                     EMI 1964 3ade68b3gce86eda3    The Beatles
# 147                  DECCA 1965 3ade68b6g28c9eda3 Rolling Stones
# 38                     wea 2003 3ade68b3g1f86eda3        Madonna
# 27                     EMI 1963 3ade68b3gce86eda3    The Beatles
# 90         Universal Music 1976 3ade68b4g66c6eda3  Chico Buarque
# 89  Universal Music Brasil 1978 3ade68b4g66c6eda3  Chico Buarque
# 109                        1995 3ade68b6g28c9eda3 Rolling Stones

xtabs(~name, disc)
#> name
#>  Chico Buarque        Madonna         Molejo Rolling Stones    The Beatles 
#>             32             27              8             50             28

# name
#  Chico Buarque        Madonna         Molejo Rolling Stones 
#             44             27              8             50 
#    The Beatles 
#             28 

Where:

  • album.id is the identifier of album;
  • album.name is the name of the album;
  • label is the record label of the album;
  • date is the of release of the album;
rel <- ldply(map(artists, relatedInfo), data.frame)

rel[sample(nrow(rel), 10), ]
#>                   id           name            rel.id           related
#> 50 3ade68b5g2f48eda3         Molejo 3ade68b5g5458eda3            Pixote
#> 43 3ade68b5g2f48eda3         Molejo 3ade68b5g6a58eda3 Só Pra Contrariar
#> 3  3ade68b3gce86eda3    The Beatles 3ade68b5gb7a8eda3   George Harrison
#> 22 3ade68b4g66c6eda3  Chico Buarque 3ade68b5gf7e7eda3      Gilberto Gil
#> 41 3ade68b5g2f48eda3         Molejo 3ade68b3g5d86eda3        Katinguelê
#> 19 3ade68b3g1f86eda3        Madonna 3ade68b7g61c31ea3              Glee
#> 11 3ade68b3g1f86eda3        Madonna 3ade68b7gc2b61ea3       Nicki Minaj
#> 27 3ade68b4g66c6eda3  Chico Buarque 3ade68b5gf808eda3    Caetano Veloso
#> 28 3ade68b4g66c6eda3  Chico Buarque 3ade68b5g65d7eda3      Zeca Baleiro
#> 38 3ade68b6g28c9eda3 Rolling Stones 3ade68b5gc5a8eda3     Elvis Presley

#                   id           name            rel.id
# 23 3ade68b4g66c6eda3  Chico Buarque 3ade68b5gac58eda3
# 24 3ade68b4g66c6eda3  Chico Buarque 3ade68b5gfe48eda3
# 38 3ade68b6g28c9eda3 Rolling Stones 3ade68b5gc5a8eda3
# 42 3ade68b5g2f48eda3         Molejo 3ade68b3g9d86eda3
# 28 3ade68b4g66c6eda3  Chico Buarque 3ade68b5g65d7eda3
# 1  3ade68b3gce86eda3    The Beatles 3ade68b3gee86eda3
# 34 3ade68b6g28c9eda3 Rolling Stones 3ade68b5g5018eda3
# 5  3ade68b3gce86eda3    The Beatles 3ade68b6g28c9eda3
# 26 3ade68b4g66c6eda3  Chico Buarque 3ade68b5g7d48eda3
# 13 3ade68b3g1f86eda3        Madonna 3ade68b5g8be7eda3
#                         related
# 23                    Tom Jobim
# 24            Milton Nascimento
# 38                Elvis Presley
# 42                  Art Popular
# 28                 Zeca Baleiro
# 1                   John Lennon
# 34 Creedence Clearwater Revival
# 5                Rolling Stones
# 26               Maria Bethânia
# 13              Michael Jackson

Where:

  • rel.id is the identifier of the related band/artist;
  • related is the name of the related band/artist;
#---------
library(network)
df <- data.frame(rel$name, rel$related)
net <- network(df)
plot(net, label = network.vertex.names(net))

songs <- ldply(map(artists, songNames), data.frame)

songs[sample(nrow(songs), 10), ]
#>                     id           name           song.id
#> 1423 3ade68b6g28c9eda3 Rolling Stones 3ade68b7ga65b3ea3
#> 351  3ade68b3g1f86eda3        Madonna 3ade68b8ga81950b3
#> 1583 3ade68b5g2f48eda3         Molejo 3ade68b7g30c38ea3
#> 447  3ade68b3g1f86eda3        Madonna 3ade68b7gc6770ea3
#> 761  3ade68b4g66c6eda3  Chico Buarque 3ade68b7g21475ea3
#> 193  3ade68b3gce86eda3    The Beatles 3ade68b8g32739fa3
#> 1263 3ade68b6g28c9eda3 Rolling Stones 3ade68b7gfe4b3ea3
#> 303  3ade68b3gce86eda3    The Beatles 3ade68b6g92edfda3
#> 181  3ade68b3gce86eda3    The Beatles 3ade68b6gbfddfda3
#> 1570 3ade68b5g2f48eda3         Molejo 3ade68b6gfe52fda3
#>                                                          song
#> 1423            Shang A Doo Lang (recorded by Adrienne Posta)
#> 351                                                    Ariosa
#> 1583                                                  Família
#> 447                                                He's A Man
#> 761                                             Choro Bandido
#> 193  Medley: Rip It Up/shake Rattle And Roll/blue Suede Shoes
#> 1263                                                Hip Shake
#> 303                                                      Wait
#> 181                                               Lovely Rita
#> 1570                                             Doce Inimigo

#                     id           name           song.id
# 1173 3ade68b6g28c9eda3 Rolling Stones 3ade68b7gca4b3ea3
# 197  3ade68b3gce86eda3    The Beatles 3ade68b6geaddfda3
# 1156 3ade68b6g28c9eda3 Rolling Stones 3ade68b7gd94b3ea3
# 1234 3ade68b6g28c9eda3 Rolling Stones 3ade68b6g320feda3
# 1220 3ade68b6g28c9eda3 Rolling Stones 3ade68b7g6d4b3ea3
# 972  3ade68b4g66c6eda3  Chico Buarque 3ade68b7g8c788ea3
# 308  3ade68b3gce86eda3    The Beatles 3ade68b6gbcddfda3
# 755  3ade68b4g66c6eda3  Chico Buarque 3ade68b7g8fce9ea3
# 1112 3ade68b6g28c9eda3 Rolling Stones 3ade68b8gdb34b0b3
# 1154 3ade68b6g28c9eda3 Rolling Stones 3ade68b7ga94b3ea3
#                            song
# 1173                 Crazy Mama
# 197  Money (That's What I Want)
# 1156          Child Of The Moon
# 1234      Good Times, Bad Times
# 1220             Fortune Teller
# 972                Partido Alto
# 308    What's The New Mary Jane
# 755                Cem Mil Réis
# 1112           All Of Your Love
# 1154             Chantilly Lace

Where:

  • song.id is the identifier of the song;
  • song is the name of the song;
lyr <- ldply(map(songs$song.id[1:5], lyrics, type = "id", key = key),
             data.frame)

lyr[sample(nrow(lyr), 2), ]
#>                  id        name           song.id
#> 4 3ade68b3gce86eda3 The Beatles 3ade68b6gbdddfda3
#> 2 3ade68b3gce86eda3 The Beatles 3ade68b4g4f96eda3
#>                         song language
#> 4 A Shot of Rhythm and Blues        2
#> 2         A Hard Day's Night        2
#>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           text
#> 4 Well, if your hands start a-clapping and your fingers start a-popping And your feet start a-moving around And if you start to swing and sway when the band start to play A real cool and way-out sound And if you get the can't help it, when you can't sit down You feel like you gotta move around  You get a shot of rhythm and blues With just a little rock and roll on the side Just for good measure You get a pair of dancing shoes Well, with your lover by your side Don't you know you're gonna have a lot of pleasure?  Don't you worry 'bout a thing, when you start to dance and sing Until bumps come up on you And if the rhythm finally gets you and the beat gets her, too Well, here's the thing for you to do  Get a shot of rhythm and blues With just a little rock and roll on the side Just for good measure Get a pair of dancing shoes Well, with your lover by your side Don't you know you're gonna have a lot of pleasure?  Don't you worry 'bout a thing, when you start to dance and sing Until bumps come up on you And if the rhythm finally gets you and the beat gets her, too Well, here's the thing for you to do  Get a shot of rhythm and blues Get a pair of dancing shoes Get a shot of rhythm and blues Well, with your lover by your side Don't you know you're gonna have a lot of pleasure?  Don't you worry 'bout a thing, when you start to dance and sing Until bumps come up on you And if the rhythm finally gets you and the beat gets her, too Well, here's the thing for you to do Well, here's the thing for you to do
#> 2                                                                                                                                                                                                                                                                                                                                                     It's been a hard day's night And I've been workin' like a dog It's been a hard day's night I should be sleepin' like a log.  But when I get home to you, I find the things that you do Will make me feel alright.  You know I work all day To get you money to buy you things And it's worth it just to hear you say, You're gonna give me everything.  So why on earth should I moan? 'Cause when I get you alone, You know I feel okay.  When I'm home, Everything seems to be right. When I'm home, Feeling you holding me tight. Tight, yeah.  It's been a hard day's night And I've been workin' like a dog It's been a hard day's night I should be sleepin' like a log.  But when I get home to you, I find the things that you do Make me feel alright.  So why on earth should I moan? 'Cause when I get you alone, You know I feel okay.  When I'm home, Everything seems to be right. When I'm home, Feeling you holding me tight. Tight, yeah.  It's been a hard day's night And I've been workin' like a dog It's been a hard day's night I should be sleepin' like a log.  But when I get home to you, I find the things that you do Make me feel alright You know I feel alright You know I feel alright.
#>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         tr.text
#> 4 [Uma Dose de Rhythm And Blues] Se suas mãos começam a bater e seus dedos a estalarem E se os seus pés começarem a se mexer pra lá e pra cá E se você começa a balançar  quando a banda começa a tocar Um som realmente maneiro E se você não consegue se segurar e nem ficar sentado Você sente que precisa se mexer  Você tem uma boa dose de 'rhythm and blues' Com apenas um pouco de rock and roll na borda Só para acompanhar Pegue um par de sapatos de dança E aí, com o seu amor do seu lado Já sacou que você vai se divertir um bocado?  Não ligue pra nada quando começar a dançar e a cantar Até ficar todo arrepiado E se o ritmo finalmente se apossa de você e a batida dela Bem, aí é contigo mesmo  Sirva-se de uma boa dose de 'rhythm and blues' Com apenas um pouco de rock and roll na borda Só para acompanhar Pegue um par de sapatos de dança E aí, com o seu amor do seu lado Já sacou que você vai se divertir um bocado?  Não ligue pra nada quando começar a dançar e a cantar Até ficar todo arrepiado E se o ritmo finalmente se apossa de você e a batida dela Bem, aí é contigo mesmo  Sirva-se de uma boa dose de 'rhythm and blues' Pegue um par de sapatos de dança Sirva-se de uma boa dose de 'rhythm and blues' E aí, com o seu amor ao seu lado Já sacou que você vai se divertir um bocado?  Não ligue pra nada quando começar a dançar e a cantar Até ficar todo arrepiado E se o ritmo finalmente se apossa de você e a batida dela Bem, aí é contigo mesmo Bem, aí é contigo mesmo
#> 2                                                                                                                                                                                                                                                                 [Um Dia Difícil]   Hoje foi um dia difícil E eu tenho trabalhado como um cachorro Hoje foi um dia difícil Eu deveria estar dormindo como uma pedra  Mas quando eu chego em casa  Eu descubro que você Me faz sentir tão bem  Você sabe que eu trabalho o dia todo Para ganhar dinheiro para você para comprar as suas coisas E vale a pena só de ouvir você dizer Que você vai me dar de tudo  Então porque diabos eu deveria me importar? Porque quando eu te pego sozinha Eu me sinto tão bem  Quando estou em casa Tudo parece uma maravilha Quando estou em casa Abraçando você forte Forte  Hoje foi um dia difícil E eu tenho trabalhado como um cachorro Hoje foi um dia difícil Eu deveria estar dormindo como uma pedra  Mas quando eu chego em casa  Eu descubro que você Me faz sentir tão bem  Então porque diabos eu deveria me importar? Porque quando eu te pego sozinha Eu me sinto bem  Quando estou em casa Tudo parece uma maravilha Quando estou em casa Abraçando você forte Forte  Hoje foi um dia difícil E eu tenho trabalhado como um cachorro Hoje foi um dia difícil Eu deveria estar dormindo como uma pedra  Mas quando eu chego em casa  Eu descubro que você Me faz sentir tão bem Me faz sentir tão bem Me faz sentir tão bem

#                  id        name           song.id
# 1 3ade68b3gce86eda3 The Beatles 3ade68b4gdc96eda3
# 4 3ade68b3gce86eda3 The Beatles 3ade68b6gbdddfda3
#                         song language
# 1          A Day In The Life        2
# 4 A Shot of Rhythm and Blues        2
#                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ... <truncated>
# 1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  I read the news today oh boy About a lucky man who made the grave And though the news was rather sad Well I just had to laugh I saw the photograph  He blew his mind out in a car He didn't notice that the lights had changed A crowd of people stood and stared They'd seen his face before Nobody was really sure if he was from the House of Lords.  I saw a film today oh boy The English Army had just won the war A crowd of people turned away But I just had a look Having read the book, I'd love to turn y... <truncated>
# 4 Well, if your hands start a-clapping and your fingers start a-popping And your feet start a-moving around And if you start to swing and sway when the band start to play A real cool and way-out sound And if you get the can't help it, when you can't sit down You feel like you gotta move around  You get a shot of rhythm and blues With just a little rock and roll on the side Just for good measure You get a pair of dancing shoes Well, with your lover by your side Don't you know you're gonna have a lot of pleasure?  Don't you worry 'bout a thing, when you start to dance and sing Until bumps come up on you And if the rhythm finally gets you and the beat gets her, too Well, here's the thing for you to do  Get a shot of rhythm and blues With just a little rock and roll on the side Just for good measure Get a pair of dancing shoes Well, with your lover by your side Don't you know you're gonna have a lot of pleasure?  Don't you worry 'bout a thing, when you start to dance and sing Until bumps c... <truncated>
#                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ... <truncated>
# 1                                                                                                                                                                                                                                                                                                                                                                                                                      [Um Dia na Vida]   Eu li as notícias hoje, caramba Sobre um sortudo que morreu E apesar de as notícias serem tristes Eu tive que rir Eu vi a foto  Ele estourou a cabeça em um carro Ele não percebeu que o sinal tinha mudado Uma grupo de pessoas parou e olhou Elas já tinham visto seu rosto antes Ninguém tinha certeza se ele era da Casa dos Lordes  Eu vi um filme hoje, caramba O Exército Inglês havia ganhado a guerra Um grupo de pessoas se retirou Mas eu tive que olhar Tendo lido o livro, eu adoraria te excitar  Acordei, caí da cama Passei um pente pela cabeça Encontrei meu caminho em baix... <truncated>
# 4 [Uma Dose de Rhythm And Blues] Se suas mãos começam a bater e seus dedos a estalarem E se os seus pés começarem a se mexer pra lá e pra cá E se você começa a balançar  quando a banda começa a tocar Um som realmente maneiro E se você não consegue se segurar e nem ficar sentado Você sente que precisa se mexer  Você tem uma boa dose de 'rhythm and blues' Com apenas um pouco de rock and roll na borda Só para acompanhar Pegue um par de sapatos de dança E aí, com o seu amor do seu lado Já sacou que você vai se divertir um bocado?  Não ligue pra nada quando começar a dançar e a cantar Até ficar todo arrepiado E se o ritmo finalmente se apossa de você e a batida dela Bem, aí é contigo mesmo  Sirva-se de uma boa dose de 'rhythm and blues' Com apenas um pouco de rock and roll na borda Só para acompanhar Pegue um par de sapatos de dança E aí, com o seu amor do seu lado Já sacou que você vai se divertir um bocado?  Não ligue pra nada quando começar a dançar e a cantar Até ficar todo arrepiado E ... <truncated>

Where:

  • language is the language of the song;
  • song is the name of the song;
  • language is the language of the song (1 = portuguese, 2 = english)
  • text is the lyrics text of the song;
  • tr.text is the translation text of the song;
library(tm)
# Creates the Corpus
m <- lyr[lyr$name == "The Beatles", ]

cps <- VCorpus(VectorSource(m$text),
                 readerControl = list(language = "en"))

cps <- tm_map(cps, FUN = content_transformer(tolower))
cps <- tm_map(cps, FUN = removePunctuation)
cps <- tm_map(cps, FUN = removeNumbers)
cps <- tm_map(cps, FUN = stripWhitespace)
cps <- tm_map(cps,
                FUN = removeWords,
                words = stopwords("english"))
dtm <- DocumentTermMatrix(cps)

frq <- slam::colapply_simple_triplet_matrix(dtm, FUN = sum)
frq <- sort(frq, decreasing = TRUE)

library(lattice)
# Shows the most common words in songs from The Beatles
barchart(head(frq, n = 45), xlim = c(0, NA),
          col =  "violet", 
          xlab = "Frequency",
          ylab = "Words",
          strip = strip.custom(bg = "white"))