R Package to Get Multiple Information from Spotify API.
::install_github('https://github.com/AlbertoAlmuinha/DSpoty') devtools
You need to get your Spotify API Client ID and Secret ID. You can get yours here . The best way to authenticate is to set your ID’s to system environment variables (client_id and secret_id). If you prefer, you can use your ID’s en each function to call the function get_spotify_access_token, but it’s not recomendable.
Sys.setenv(client_id = 'client_id')
Sys.setenv(client_secret = 'client_secret')
<- DSpoty::get_spotify_access_token() access_token
You can get an artist Spotify information with the function get_artists. This function returns data like the name of the artist, links to open in spotify, popularity, number of followers or musical genre.
<- get_artist('Arctic Monkeys') artist
artist_name |
artist_uri |
artist_img |
num_followers |
spotify_url |
popularity |
musical_genre |
---|---|---|---|---|---|---|
Arctic Monkeys |
7Ln80lUS6He07XvHI8qqHH |
https://i.scdn.co/image/ed0552e9746ed2bbf04ae4bcb5525700ca31522d |
8780891 |
86 |
garage_rock-modern_rock-permanent_wave-rock-sheffield_indie |
Another option is to search artists by musical genre. You can choose the number of artists returned and the year. The information returned is the same that with get_artists function.
<- get_artists_by_genre('rock', limit = 20, year = 2019) artists_by_genre
artist_name |
artist_uri |
artist_img |
num_followers |
spotify_url |
popularity |
musical_genre |
---|---|---|---|---|---|---|
Queen |
1dfeR4HaWDbWqFHLkxsg1d |
https://i.scdn.co/image/b040846ceba13c3e9c125d68389491094e7f2982 |
22469906 |
93 |
glam_rock-rock |
|
The Beatles |
3WrFJ7ztbogyGnTHbHJFl2 |
https://i.scdn.co/image/6b2a709752ef9c7aaf0d270344157f6cd2e0f1a7 |
14688077 |
91 |
british_invasion-merseybeat-psychedelic_rock-rock |
|
Twenty One Pilots |
3YQKmKGau1PzlVlkL1iodx |
https://i.scdn.co/image/19e8f3bc875b7a4b9cf0041a5ee696c4be5478aa |
15682408 |
88 |
modern_rock-rock |
|
Maroon 5 |
04gDigrS5kc9YWfZHwBETP |
https://i.scdn.co/image/608c7b23420c9556a7eabd9097f7e171a91d3871 |
21450933 |
94 |
pop-pop_rock |
|
Imagine Dragons |
53XhwfbYqKCa1cC15pYq2q |
https://i.scdn.co/image/01b36ca0f45f2f15117022a2754287a6ca1acdcc |
24260851 |
92 |
modern_rock |
Finally, you can search related artists. In this case, you need the artist ID (and not the name) to use the function. You can get this information from the function get_artists or artists_by_genre. You will get the top 20 related artist.
<-get_related_artists(artist_uri = artist$artist_uri) related_artists
artist_name |
artist_uri |
popularity |
url_img |
---|---|---|---|
The Kooks |
1GLtl8uqKmnyCWxHmw9tL4 |
73 |
https://i.scdn.co/image/0a3dfed5bce0e6d14703011ec52a42ae719c0d4b |
Alex Turner |
1ctkBmvz80MGyi72Ix055S |
66 |
https://i.scdn.co/image/ab67616d0000b273672951d44a35cb08092f2c1f |
The Last Shadow Puppets |
2Z7UcsdweVlRbAk5wH5fsf |
65 |
https://i.scdn.co/image/1e721c9502da1663fe9dd0b9f8a90519546f0a9f |
Blossoms |
22RISwgVJyZu9lpqAcv1F5 |
66 |
https://i.scdn.co/image/b0722b13be43495b793d3911ef90403d62eb5d7b |
Kasabian |
11wRdbnoYqRddKBrpHt4Ue |
69 |
https://i.scdn.co/image/8ef02a528dfa5496a410aa80e8b0316574ca95b7 |
You can get the whole discography of an artist in few seconds with the function get_artists_albums. You must select one of the next options to the parameter album_type (default option is album):
<- get_artist_albums('Arctic Monkeys')
albums
<- get_artist_albums('Arctic Monkeys', album_type = 'appears_on', limit = 20) albums
album_uri |
album_name |
rel_album_artista |
album_type |
album_img |
album_url |
release_date |
release_date_precision |
total_tracks |
available_markets |
popularity |
---|---|---|---|---|---|---|---|---|---|---|
1nXwgYOolvutEaVWfGbP4w |
Isles Of Wonder: Music For The Opening Ceremony Of The London 2012 Olympic Games |
appears_on |
compilation |
https://i.scdn.co/image/852299f998fe2b5c1e34450600c5bc8e4d432eef |
2012-01-01 |
day |
36 |
CA |
14 |
|
1GvWtv7m3NX1vZ1Lk4i13M |
The BRIT Awards 2012 |
appears_on |
compilation |
https://i.scdn.co/image/209b4066a831af140c232d4bf6a3eadab013945d |
2012-01-01 |
day |
61 |
GB |
29 |
|
5GaeDKlnZggETclP0Y3FfE |
Domino Sampler ’11 |
appears_on |
compilation |
https://i.scdn.co/image/ab67616d0000b273d20f68791889d57d61a8400e |
2011-12-20 |
day |
18 |
CA |
9 |
|
4jqIQ4srPIBcTcPdGFxdGF |
All The Rage |
appears_on |
compilation |
https://i.scdn.co/image/ab67616d0000b2737c4f2e686a2fa77227fb5b53 |
2008-02-01 |
day |
15 |
AD |
29 |
|
3Vx8n3WCI0s0l2mvS0IMg3 |
Again & Again |
appears_on |
single |
https://i.scdn.co/image/ab67616d0000b273549cf94db1362c3939806e7e |
2008 |
year |
4 |
JP |
0 |
Firstly, you can get all the tracks of an artist. This can be done with the next function:
<- get_artist_tracks('Arctic Monkeys') tracks
track_name |
track_uri |
album_uri |
artist_uri |
disc_number |
track_duration_ms |
explicit |
spotify_url |
track_mp3_30s |
track_number |
---|---|---|---|---|---|---|---|---|---|
Star Treatment |
0FgNSsaSZTvbLXUumSO8LQ |
1jeMiSeSnNS0Oys375qegp |
7Ln80lUS6He07XvHI8qqHH |
1 |
354640 |
FALSE |
1 |
||
One Point Perspective |
2AKwcNHeGAqCpD6etK425X |
1jeMiSeSnNS0Oys375qegp |
7Ln80lUS6He07XvHI8qqHH |
1 |
208640 |
FALSE |
2 |
||
American Sports |
0mQiDbYxHElUp1eNpLZXaY |
1jeMiSeSnNS0Oys375qegp |
7Ln80lUS6He07XvHI8qqHH |
1 |
158040 |
FALSE |
3 |
||
Tranquility Base Hotel & Casino |
7co8zvT6HJuyT81IDukyID |
1jeMiSeSnNS0Oys375qegp |
7Ln80lUS6He07XvHI8qqHH |
1 |
212093 |
TRUE |
4 |
||
Golden Trunks |
3NmndGYOIYocA5OTHMVoaw |
1jeMiSeSnNS0Oys375qegp |
7Ln80lUS6He07XvHI8qqHH |
1 |
173626 |
FALSE |
5 |
You can also get all the tracks features information (like danceability, mode, acousticness, speechness, valence, loudness…) for an artist:
<- get_artist_tracks_features('Arctic Monkeys') features
track_uri |
danceability |
energy |
key |
loudness |
mode |
speechiness |
acousticness |
instrumentalness |
liveness |
valence |
tempo |
time_signature |
popularity |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0FgNSsaSZTvbLXUumSO8LQ |
0.581 |
0.767 |
7 |
-5.026 |
0 |
0.0527 |
0.24300 |
1.31e-03 |
0.141 |
0.6730 |
120.070 |
4 |
60 |
2AKwcNHeGAqCpD6etK425X |
0.714 |
0.585 |
8 |
-4.570 |
1 |
0.0419 |
0.05700 |
4.44e-03 |
0.144 |
0.8420 |
77.104 |
4 |
59 |
0mQiDbYxHElUp1eNpLZXaY |
0.372 |
0.865 |
7 |
-4.288 |
0 |
0.0513 |
0.00169 |
2.93e-03 |
0.127 |
0.5940 |
176.689 |
3 |
53 |
7co8zvT6HJuyT81IDukyID |
0.584 |
0.835 |
9 |
-4.326 |
0 |
0.0297 |
0.04110 |
1.47e-02 |
0.199 |
0.7810 |
142.200 |
4 |
60 |
3NmndGYOIYocA5OTHMVoaw |
0.492 |
0.564 |
2 |
-5.811 |
1 |
0.0278 |
0.12900 |
1.73e-05 |
0.131 |
0.0896 |
92.544 |
4 |
54 |
You can also search for tracks recommendations based on another track. You can choose the number of recommended tracks returned:
<- get_tracks_recommendations_by_name('Arctic Monkeys', 'Do I Wanna Know?', limit = 10) recommended_songs
track_name |
popularity |
artist_name |
track_duration_ms |
track_mp3_30s |
track_url |
artist_url |
artist_uri |
track_uri |
---|---|---|---|---|---|---|---|---|
Let It Happen |
76 |
Tame Impala |
467586 |
NULL |
5INjqkS1o8h1imAzPqGZBb |
2X485T9Z5Ly0xyaghN73ed |
||
Somebody Told Me |
70 |
The Killers |
197160 |
NULL |
0C0XlULifJtAgn6ZNCW2eu |
59XNy4523UcEvQfYM8fdQB |
||
Clint Eastwood |
69 |
Gorillaz |
340920 |
3AA28KZvwAUcZuOKwyblJQ |
7yMiX7n9SBvadzox8T5jzT |
|||
I Want It All |
62 |
Arctic Monkeys |
185406 |
7Ln80lUS6He07XvHI8qqHH |
1j9rezdE3YeC7yktZXC1em |
|||
24/7 |
59 |
The Neighbourhood |
219973 |
77SW9BnxLY8rJ0RciFqkHh |
4Cdb1dE3pfiWlqnAIcImyQ |
You can also search an spotify item (artist, album or track) by name with the function get_spotify_item. We can use it in four different ways:
<- get_spotify_item(name = 'Arctic Monkeys', type = 'artist') search_artist
artist_name |
artist_uri |
artist_img |
num_followers |
spotify_url |
popularity |
musical_genre |
---|---|---|---|---|---|---|
Arctic Monkeys |
7Ln80lUS6He07XvHI8qqHH |
https://i.scdn.co/image/ed0552e9746ed2bbf04ae4bcb5525700ca31522d |
8780891 |
86 |
garage_rock-modern_rock-permanent_wave-rock-sheffield_indie |
<- get_spotify_item(name = 'Nuclear', type = 'album') search_album
album_uri |
album_name |
album_type |
album_img |
album_url |
release_date |
release_date_precision |
total_tracks |
available_markets |
popularity |
---|---|---|---|---|---|---|---|---|---|
3tgTuhdTPvaka7LUU4gzdb |
Bang! Pow! Boom! Nuclear |
album |
https://i.scdn.co/image/ab67616d0000b273b6e01aed96a03d8706c91931 |
2010-04-01 |
day |
23 |
AD |
49 |
<- get_spotify_item(name = 'Nuclear', type = 'album', limit = 5) search_album_with_limit
album_uri |
album_name |
album_type |
album_img |
album_url |
release_date |
release_date_precision |
total_tracks |
available_markets |
popularity |
---|---|---|---|---|---|---|---|---|---|
3tgTuhdTPvaka7LUU4gzdb |
Bang! Pow! Boom! Nuclear |
album |
https://i.scdn.co/image/ab67616d0000b273b6e01aed96a03d8706c91931 |
2010-04-01 |
day |
23 |
AD |
49 |
|
0am24qfT1RsxWY2bxhcrJB |
Not Animal |
album |
https://i.scdn.co/image/ab67616d0000b2733365b7ae7c208abc36ede955 |
2008-10-07 |
day |
12 |
AD |
49 |
|
2azrcCM9HIS232wphRkTTG |
Nuclear Bonds |
single |
https://i.scdn.co/image/ab67616d0000b273d0a1f24ca9fb845889433591 |
2015-10-13 |
day |
9 |
AD |
41 |
|
1T2uKSyUf7DBWOABtsmYLM |
Nuclear |
album |
https://i.scdn.co/image/ab67616d0000b27313c4ca893a92d3a81e0cb3e8 |
2019-03-22 |
day |
12 |
AD |
71 |
|
3MDHsd4SZfMtCdM8Clihqp |
THE DUST OF RETREAT (EXPLICIT) |
album |
https://i.scdn.co/image/ab67616d0000b273c455808106bb65b0cff01bde |
2005 |
year |
12 |
US |
39 |
<- get_spotify_item(artist = 'Leiva', album = 'Nuclear', type = 'album') search_album_2
album_uri |
album_name |
album_type |
album_img |
album_url |
release_date |
release_date_precision |
total_tracks |
available_markets |
popularity |
---|---|---|---|---|---|---|---|---|---|
1T2uKSyUf7DBWOABtsmYLM |
Nuclear |
album |
https://i.scdn.co/image/ab67616d0000b27313c4ca893a92d3a81e0cb3e8 |
2019-03-22 |
day |
12 |
AD |
71 |
<- get_spotify_item(name = 'Do I Wanna Know?' , type = 'track') search_track
track_name |
track_uri |
artist_name |
artist_uri |
disc_number |
track_duration_ms |
explicit |
spotify_url |
track_mp3_30s |
track_number |
---|---|---|---|---|---|---|---|---|---|
Do I Wanna Know? |
5FVd6KXrgO9B3JPmC8OPst |
Arctic Monkeys |
7Ln80lUS6He07XvHI8qqHH |
1 |
272394 |
FALSE |
1 |
If you find some type of error, bug or doubt, please, let me know it here .
The DSpoty App is an R Shiny Dashboard that shows multiple information based on DSpoty R package. You can access this App from here .
This package (DSpoty) is licensed under the MIT License.
A short and simple permissive license with conditions only requiring preservation of copyright and license notices. Licensed works, modifications, and larger works may be distributed under different terms and without source code.