Olá! Quem me conhece sabe que sou um pouco viciada em música, e no contexto do R não poderia ser diferente! hahaha
Faz um tempo que venho mexendo com a API do Spotify no R. Primeiro comecei com o pacote Rspotify, e depois conheci o spotifyr (e foi aí que surtei de vez, descobri que dá pra fazer absolutamente tudo de dentro do R: criar playlists, adicionar músicas em playlists, ver quais foram as minhas últimas músicas escutadas, e tudo mais que você imaginar)
Como o acesso a esses pacotes não é nada trivial, resolvi escrever esse post pra mostrar de uma vez por todas como isso é feito (eu sofri bastante na época que comecei a mexer com eles). Vou mostrar como obter os tokens de acesso do Spotify, e falar um pouco sobre as funções do Rspotify
também.
Nesse post vou focar só nas funções do Rspotify
(por serem mais simples), mas pretendo fazer um post dedicado para o spotifyr
mais pra frente.
Obtendo os tokens de acesso do Spotify
Primeiro, instale o pacote Rspotify
através do comando
install.packages("Rspotify")
Agora, carregue o pacote
library(Rspotify)
Note que todas as funções do Rspotify
exigem o argumento token.
Para obter esse token, siga os seguintes passos:
(obs: estou assumindo que você possui uma conta no Spotify. Não precisa ser premium, então caso não possua ainda, é só criar uma)
1 - Entre nesse link
Você será redirecionado para essa página:
2 - Clique em Log in e faça o login com a sua conta do Spotify
3 - Agora, clique em Create an app
4 - Dê um nome e uma descrição para o seu app, assinale a caixinha de Termos de Uso, e então, clique em Create
5 - Depois de criar o app, você será redirecionado para essa tela. Clique em edit settings
6 - Preencha o campo Redirect URIs com “http://localhost:1410/” (sem as aspas), e clique em Add
A tela deve ficar assim:
7 - Agora, role até o final da página e clique em Save
8 - Clique no botão Show client secret
Veja que na tela estão o Client ID e o Client Secret. São esse dois tokens que usaremos para ter acesso às funções do Rspotify
.
Agora, com o R aberto e o pacote Rspotify
carregado, rode o seguinte código, substituindo o segundo e terceito argumentos pelos tokens Client ID e Client Secret, respectivamente:
keys <- spotifyOAuth("nome_qualquer_aqui",
"cole_aqui_seu_client_id",
"cole_aqui_seu_client_secret")
(obs: os três argumentos da função são do tipo character, então devem estar entre aspas; o primeiro argumento é livre)
Você será redirecionado para uma página de autorização do Spotify no seu navegador. Clique em Aceito e volte para o R.
Pronto! Agora é só usar as funções do Rspotify
, usando token = keys
como argumento em todas elas.
Conhecendo as funções do Rspotify
O funcionamento das funções está explicado na documentação do pacote, então vou mostrar só alguns exemplos, sem me preocupar em explicar cada função detalhadamente.
Para os exemplos, vou usar músicas e bandas brasileiras que gosto, então já fica aí a recomendação pra quem quiser! hahaha
searchArtist
A função searchArtist
pede como argumentos o nome do artista/banda, e o token (aquele que acabamos de obter). Ela retorna um data frame no qual cada linha é referente a um artista (relacionado com a busca feita). O id do artista é especialmente importante, pois algumas funções desse pacote exigem o id como argumento, como veremos em seguida.
searchArtist("O Grilo", token = keys)
artist | id | popularity | followers | genres | type |
---|---|---|---|---|---|
O Grilo | 22KEpOwThQ5q1DGochfayO | 49 | 74930 | rock alternativo brasileiro | artist |
Banda Cumade Selvira & Os Cantiga de Grilo | 504zftG42qkU6Gzw8Ai3mC | 0 | 15 | artist | |
kamaitachi | 1ISc8zhrqxd5WrJMkMMLSm | 61 | 1031552 | musica triste brasileira | artist |
O Grito | 0CzL84J7lB5sWycref43lN | 1 | 291 | artist | |
Grilo | 2s1cOPGtfbCeYvxibRHtew | 1 | 39 | artist | |
O Gringo Sou Eu | 7Da1dXVGp2bjqkVTKQ4W7L | 1 | 52 | artist | |
El Grilo Ensamble Vocal | 2NHB6zVcmBv8034ZNpBkzU | 2 | 295 | artist | |
O. Grimm | 59SQwI32qROXuzlHTu7RS8 | 1 | 1 | artist | |
O. Grinbergs | 2E2MSLcsX2lYOTVMr2DKcq | 1 | 668 | artist |
getArtist
Essa função pede como argumentos o id do artista, e o token. Ela retorna algumas informações sobre esse artista. No caso, estou usando o id da banda O Grilo, que foi obtido acima.
getArtist("22KEpOwThQ5q1DGochfayO", token = keys)
name | id | popularity | followers | genres |
---|---|---|---|---|
O Grilo | 22KEpOwThQ5q1DGochfayO | 49 | 74930 | rock alternativo brasileiro |
getTopTracks
Essa função pede como argumentos o id do artista, a especificação de um país, e o token. Ela retorna as músicas mais populares daquele artista no país em questão (e algumas informações sobre elas)
getTopTracks("22KEpOwThQ5q1DGochfayO", country = "BR", token = keys)
artist_id | name | popularity | duration_ms | track_number | available_markets |
---|---|---|---|---|---|
2DllnWTQNjh5NDN1A2ZtnH | Serenata Existencialista | 62 | 163209 | 5 | |
61keC2MVAbhqm3RoAVSfI6 | Sambinha | 50 | 180202 | 3 | |
43MdgqLdKQJl1Azdq0Shpc | Trela | 49 | 187482 | 1 | |
6btBKvH1OlMbwW9lU1RGIo | Herói do Futuro | 47 | 232373 | 1 | |
2JNXbqa8e0aQ7Trert8N8D | Meu Amor | 47 | 193440 | 8 | |
6zHoaw5RcWAcaWCSDzKdlj | Pra Você Gostar de Mim | 46 | 184799 | 1 | |
6aEQ365jPX55xfpA8OFfki | Onde Flor | 44 | 192546 | 12 | |
2682XIBY8wcjL9UJ9voUa8 | Contramão | 44 | 172623 | 3 | |
4aEDdWboWAKt5UYIFWqRwf | Inês | 43 | 173880 | 4 | |
5ayHgfHVet0M47OC4kTrTK | Tira a Roupa | 43 | 191899 | 1 |
getAlbums
A função getAlbums
pede como argumentos o id do artista/banda, e o token. Ela retorna um data frame no qual cada linha é referente a um album do artista/banda. O id de cada álbum também é importante caso queira obter mais informações sobre o álbum.
getAlbums("22KEpOwThQ5q1DGochfayO", token = keys)
id | name | album_type | available_markets |
---|---|---|---|
0I7bofr4iucY3LXUPKv9cz | Você Não Sabe de Nada | album |
getAlbumInfo
Essa função pede como argumentos o id do álbum, e o token. Ela retorna algumas informações sobre o álbum.
getAlbumInfo("0I7bofr4iucY3LXUPKv9cz", token = keys)
id | artist | name | label | popularity | release_date | album_type | track_total |
---|---|---|---|---|---|---|---|
0I7bofr4iucY3LXUPKv9cz | O Grilo | Você Não Sabe de Nada | Rockambole | 43 | 2021-03-26 | album | 13 |
getAlbum
Essa função pede como argumentos o id do álbum, e o token. Ela retorna informações sobre cada música do álbum.
getAlbum("0I7bofr4iucY3LXUPKv9cz", token = keys)
id | name | duration_ms | track_number | disc_number | available_markets | preview_url |
---|---|---|---|---|---|---|
43MdgqLdKQJl1Azdq0Shpc | Trela | 187482 | 1 | 1 | AD, AE, AG, AL, AM, AO, AR, AT, AU, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BN, BO, BR, BS, BT, BW, BY, BZ, CA, CD, CG, CH, CI, CL, CM, CO, CR, CV, CW, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, ES, FI, FJ, FM, FR, GA, GB, GD, GE, GH, GM, GN, GQ, GR, GT, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IN, IQ, IS, IT, JM, JO, JP, KE, KG, KH, KI, KM, KN, KR, KW, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MG, MH, MK, ML, MN, MO, MR, MT, MU, MV, MW, MX, MY, MZ, NA, NE, NG, NI, NL, NO, NP, NR, NZ, OM, PA, PE, PG, PH, PK, PL, PS, PT, PW, PY, QA, RO, RS, RW, SA, SB, SC, SE, SG, SI, SK, SL, SM, SN, SR, ST, SV, SZ, TD, TG, TH, TJ, TL, TN, TO, TR, TT, TV, TW, TZ, UA, UG, US, UY, UZ, VC, VE, VN, VU, WS, XK, ZA, ZM, ZW | https://p.scdn.co/mp3-preview/7fecbb599cb7f86dfd86f2f145ce9b1979a49d70?cid=d31252a2880546b3ba640d5d64b7e652 |
7fT4wCxnKI1FFb0QnQ4nX3 | Guitarrada | 154912 | 2 | 1 | AD, AE, AG, AL, AM, AO, AR, AT, AU, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BN, BO, BR, BS, BT, BW, BY, BZ, CA, CD, CG, CH, CI, CL, CM, CO, CR, CV, CW, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, ES, FI, FJ, FM, FR, GA, GB, GD, GE, GH, GM, GN, GQ, GR, GT, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IN, IQ, IS, IT, JM, JO, JP, KE, KG, KH, KI, KM, KN, KR, KW, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MG, MH, MK, ML, MN, MO, MR, MT, MU, MV, MW, MX, MY, MZ, NA, NE, NG, NI, NL, NO, NP, NR, NZ, OM, PA, PE, PG, PH, PK, PL, PS, PT, PW, PY, QA, RO, RS, RW, SA, SB, SC, SE, SG, SI, SK, SL, SM, SN, SR, ST, SV, SZ, TD, TG, TH, TJ, TL, TN, TO, TR, TT, TV, TW, TZ, UA, UG, US, UY, UZ, VC, VE, VN, VU, WS, XK, ZA, ZM, ZW | https://p.scdn.co/mp3-preview/c8ed5a257adac75a8fd7ef00202867baf71968cc?cid=d31252a2880546b3ba640d5d64b7e652 |
2682XIBY8wcjL9UJ9voUa8 | Contramão | 172623 | 3 | 1 | AD, AE, AG, AL, AM, AO, AR, AT, AU, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BN, BO, BR, BS, BT, BW, BY, BZ, CA, CD, CG, CH, CI, CL, CM, CO, CR, CV, CW, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, ES, FI, FJ, FM, FR, GA, GB, GD, GE, GH, GM, GN, GQ, GR, GT, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IN, IQ, IS, IT, JM, JO, JP, KE, KG, KH, KI, KM, KN, KR, KW, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MG, MH, MK, ML, MN, MO, MR, MT, MU, MV, MW, MX, MY, MZ, NA, NE, NG, NI, NL, NO, NP, NR, NZ, OM, PA, PE, PG, PH, PK, PL, PS, PT, PW, PY, QA, RO, RS, RW, SA, SB, SC, SE, SG, SI, SK, SL, SM, SN, SR, ST, SV, SZ, TD, TG, TH, TJ, TL, TN, TO, TR, TT, TV, TW, TZ, UA, UG, US, UY, UZ, VC, VE, VN, VU, WS, XK, ZA, ZM, ZW | https://p.scdn.co/mp3-preview/0156d027e420d79acb24faa0775547cd2f779eb8?cid=d31252a2880546b3ba640d5d64b7e652 |
2XXBtwtgdfQ3rGvgweteRF | Tudo e Mais um Pouco | 166390 | 4 | 1 | AD, AE, AG, AL, AM, AO, AR, AT, AU, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BN, BO, BR, BS, BT, BW, BY, BZ, CA, CD, CG, CH, CI, CL, CM, CO, CR, CV, CW, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, ES, FI, FJ, FM, FR, GA, GB, GD, GE, GH, GM, GN, GQ, GR, GT, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IN, IQ, IS, IT, JM, JO, JP, KE, KG, KH, KI, KM, KN, KR, KW, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MG, MH, MK, ML, MN, MO, MR, MT, MU, MV, MW, MX, MY, MZ, NA, NE, NG, NI, NL, NO, NP, NR, NZ, OM, PA, PE, PG, PH, PK, PL, PS, PT, PW, PY, QA, RO, RS, RW, SA, SB, SC, SE, SG, SI, SK, SL, SM, SN, SR, ST, SV, SZ, TD, TG, TH, TJ, TL, TN, TO, TR, TT, TV, TW, TZ, UA, UG, US, UY, UZ, VC, VE, VN, VU, WS, XK, ZA, ZM, ZW | https://p.scdn.co/mp3-preview/ef9a1f304dc853504e2867fb31c3a0acc114a232?cid=d31252a2880546b3ba640d5d64b7e652 |
5Vjhpp2vftIrYk3Fija7j7 | Meu Pior Amigo | 217737 | 5 | 1 | AD, AE, AG, AL, AM, AO, AR, AT, AU, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BN, BO, BR, BS, BT, BW, BY, BZ, CA, CD, CG, CH, CI, CL, CM, CO, CR, CV, CW, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, ES, FI, FJ, FM, FR, GA, GB, GD, GE, GH, GM, GN, GQ, GR, GT, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IN, IQ, IS, IT, JM, JO, JP, KE, KG, KH, KI, KM, KN, KR, KW, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MG, MH, MK, ML, MN, MO, MR, MT, MU, MV, MW, MX, MY, MZ, NA, NE, NG, NI, NL, NO, NP, NR, NZ, OM, PA, PE, PG, PH, PK, PL, PS, PT, PW, PY, QA, RO, RS, RW, SA, SB, SC, SE, SG, SI, SK, SL, SM, SN, SR, ST, SV, SZ, TD, TG, TH, TJ, TL, TN, TO, TR, TT, TV, TW, TZ, UA, UG, US, UY, UZ, VC, VE, VN, VU, WS, XK, ZA, ZM, ZW | https://p.scdn.co/mp3-preview/4b6d85f4de13e716ea1f9983aec5e349c777e737?cid=d31252a2880546b3ba640d5d64b7e652 |
6tjsjuI6eZX1XpwrehfRRg | Infinito (-1) | 204792 | 6 | 1 | AD, AE, AG, AL, AM, AO, AR, AT, AU, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BN, BO, BR, BS, BT, BW, BY, BZ, CA, CD, CG, CH, CI, CL, CM, CO, CR, CV, CW, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, ES, FI, FJ, FM, FR, GA, GB, GD, GE, GH, GM, GN, GQ, GR, GT, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IN, IQ, IS, IT, JM, JO, JP, KE, KG, KH, KI, KM, KN, KR, KW, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MG, MH, MK, ML, MN, MO, MR, MT, MU, MV, MW, MX, MY, MZ, NA, NE, NG, NI, NL, NO, NP, NR, NZ, OM, PA, PE, PG, PH, PK, PL, PS, PT, PW, PY, QA, RO, RS, RW, SA, SB, SC, SE, SG, SI, SK, SL, SM, SN, SR, ST, SV, SZ, TD, TG, TH, TJ, TL, TN, TO, TR, TT, TV, TW, TZ, UA, UG, US, UY, UZ, VC, VE, VN, VU, WS, XK, ZA, ZM, ZW | https://p.scdn.co/mp3-preview/46ee8ed72fdb8372b8d37ad206f4cf5b34ebd80e?cid=d31252a2880546b3ba640d5d64b7e652 |
6yPZTaETPJ6Juy00huOb55 | Você Não Sabe de Nada | 99378 | 7 | 1 | AD, AE, AG, AL, AM, AO, AR, AT, AU, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BN, BO, BR, BS, BT, BW, BY, BZ, CA, CD, CG, CH, CI, CL, CM, CO, CR, CV, CW, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, ES, FI, FJ, FM, FR, GA, GB, GD, GE, GH, GM, GN, GQ, GR, GT, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IN, IQ, IS, IT, JM, JO, JP, KE, KG, KH, KI, KM, KN, KR, KW, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MG, MH, MK, ML, MN, MO, MR, MT, MU, MV, MW, MX, MY, MZ, NA, NE, NG, NI, NL, NO, NP, NR, NZ, OM, PA, PE, PG, PH, PK, PL, PS, PT, PW, PY, QA, RO, RS, RW, SA, SB, SC, SE, SG, SI, SK, SL, SM, SN, SR, ST, SV, SZ, TD, TG, TH, TJ, TL, TN, TO, TR, TT, TV, TW, TZ, UA, UG, US, UY, UZ, VC, VE, VN, VU, WS, XK, ZA, ZM, ZW | https://p.scdn.co/mp3-preview/eac1f0862b5aa377cba6831398fba9cdbbf7e517?cid=d31252a2880546b3ba640d5d64b7e652 |
2JNXbqa8e0aQ7Trert8N8D | Meu Amor | 193440 | 8 | 1 | AD, AE, AG, AL, AM, AO, AR, AT, AU, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BN, BO, BR, BS, BT, BW, BY, BZ, CA, CD, CG, CH, CI, CL, CM, CO, CR, CV, CW, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, ES, FI, FJ, FM, FR, GA, GB, GD, GE, GH, GM, GN, GQ, GR, GT, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IN, IQ, IS, IT, JM, JO, JP, KE, KG, KH, KI, KM, KN, KR, KW, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MG, MH, MK, ML, MN, MO, MR, MT, MU, MV, MW, MX, MY, MZ, NA, NE, NG, NI, NL, NO, NP, NR, NZ, OM, PA, PE, PG, PH, PK, PL, PS, PT, PW, PY, QA, RO, RS, RW, SA, SB, SC, SE, SG, SI, SK, SL, SM, SN, SR, ST, SV, SZ, TD, TG, TH, TJ, TL, TN, TO, TR, TT, TV, TW, TZ, UA, UG, US, UY, UZ, VC, VE, VN, VU, WS, XK, ZA, ZM, ZW | https://p.scdn.co/mp3-preview/85df60a314644d579019ab11cd1d8574d9996a24?cid=d31252a2880546b3ba640d5d64b7e652 |
4KC49pnwukN8SVse2tzi7L | Vou Levar | 198197 | 9 | 1 | AD, AE, AG, AL, AM, AO, AR, AT, AU, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BN, BO, BR, BS, BT, BW, BY, BZ, CA, CD, CG, CH, CI, CL, CM, CO, CR, CV, CW, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, ES, FI, FJ, FM, FR, GA, GB, GD, GE, GH, GM, GN, GQ, GR, GT, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IN, IQ, IS, IT, JM, JO, JP, KE, KG, KH, KI, KM, KN, KR, KW, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MG, MH, MK, ML, MN, MO, MR, MT, MU, MV, MW, MX, MY, MZ, NA, NE, NG, NI, NL, NO, NP, NR, NZ, OM, PA, PE, PG, PH, PK, PL, PS, PT, PW, PY, QA, RO, RS, RW, SA, SB, SC, SE, SG, SI, SK, SL, SM, SN, SR, ST, SV, SZ, TD, TG, TH, TJ, TL, TN, TO, TR, TT, TV, TW, TZ, UA, UG, US, UY, UZ, VC, VE, VN, VU, WS, XK, ZA, ZM, ZW | https://p.scdn.co/mp3-preview/699e8e652d0c1bac360eb256940e48b491565f14?cid=d31252a2880546b3ba640d5d64b7e652 |
1BcrtC8bB8D0Dj0waoD6uy | e daí, eu sei lá ¯_(<U+30C4>)/¯ | 46566 | 10 | 1 | AD, AE, AG, AL, AM, AO, AR, AT, AU, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BN, BO, BR, BS, BT, BW, BY, BZ, CA, CD, CG, CH, CI, CL, CM, CO, CR, CV, CW, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, ES, FI, FJ, FM, FR, GA, GB, GD, GE, GH, GM, GN, GQ, GR, GT, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IN, IQ, IS, IT, JM, JO, JP, KE, KG, KH, KI, KM, KN, KR, KW, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MG, MH, MK, ML, MN, MO, MR, MT, MU, MV, MW, MX, MY, MZ, NA, NE, NG, NI, NL, NO, NP, NR, NZ, OM, PA, PE, PG, PH, PK, PL, PS, PT, PW, PY, QA, RO, RS, RW, SA, SB, SC, SE, SG, SI, SK, SL, SM, SN, SR, ST, SV, SZ, TD, TG, TH, TJ, TL, TN, TO, TR, TT, TV, TW, TZ, UA, UG, US, UY, UZ, VC, VE, VN, VU, WS, XK, ZA, ZM, ZW | https://p.scdn.co/mp3-preview/0c9b9c2db58981d27e6afb7c547e76ac64ae7d17?cid=d31252a2880546b3ba640d5d64b7e652 |
6e3BWdeIaXTt0mOkzKKHVA | Adeus | 262198 | 11 | 1 | AD, AE, AG, AL, AM, AO, AR, AT, AU, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BN, BO, BR, BS, BT, BW, BY, BZ, CA, CD, CG, CH, CI, CL, CM, CO, CR, CV, CW, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, ES, FI, FJ, FM, FR, GA, GB, GD, GE, GH, GM, GN, GQ, GR, GT, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IN, IQ, IS, IT, JM, JO, JP, KE, KG, KH, KI, KM, KN, KR, KW, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MG, MH, MK, ML, MN, MO, MR, MT, MU, MV, MW, MX, MY, MZ, NA, NE, NG, NI, NL, NO, NP, NR, NZ, OM, PA, PE, PG, PH, PK, PL, PS, PT, PW, PY, QA, RO, RS, RW, SA, SB, SC, SE, SG, SI, SK, SL, SM, SN, SR, ST, SV, SZ, TD, TG, TH, TJ, TL, TN, TO, TR, TT, TV, TW, TZ, UA, UG, US, UY, UZ, VC, VE, VN, VU, WS, XK, ZA, ZM, ZW | https://p.scdn.co/mp3-preview/9d9995ab4e0bdee69a1031f49497db5d6f9b3fce?cid=d31252a2880546b3ba640d5d64b7e652 |
6aEQ365jPX55xfpA8OFfki | Onde Flor | 192546 | 12 | 1 | AD, AE, AG, AL, AM, AO, AR, AT, AU, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BN, BO, BR, BS, BT, BW, BY, BZ, CA, CD, CG, CH, CI, CL, CM, CO, CR, CV, CW, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, ES, FI, FJ, FM, FR, GA, GB, GD, GE, GH, GM, GN, GQ, GR, GT, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IN, IQ, IS, IT, JM, JO, JP, KE, KG, KH, KI, KM, KN, KR, KW, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MG, MH, MK, ML, MN, MO, MR, MT, MU, MV, MW, MX, MY, MZ, NA, NE, NG, NI, NL, NO, NP, NR, NZ, OM, PA, PE, PG, PH, PK, PL, PS, PT, PW, PY, QA, RO, RS, RW, SA, SB, SC, SE, SG, SI, SK, SL, SM, SN, SR, ST, SV, SZ, TD, TG, TH, TJ, TL, TN, TO, TR, TT, TV, TW, TZ, UA, UG, US, UY, UZ, VC, VE, VN, VU, WS, XK, ZA, ZM, ZW | https://p.scdn.co/mp3-preview/d80e37677128ab1e0392904a241458e33036951f?cid=d31252a2880546b3ba640d5d64b7e652 |
70Sw1EWhOn9TUkUAAAFWAE | Malabarista de Granadas - Bonus Track | 176032 | 13 | 1 | AD, AE, AG, AL, AM, AO, AR, AT, AU, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BN, BO, BR, BS, BT, BW, BY, BZ, CA, CD, CG, CH, CI, CL, CM, CO, CR, CV, CW, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, ES, FI, FJ, FM, FR, GA, GB, GD, GE, GH, GM, GN, GQ, GR, GT, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IN, IQ, IS, IT, JM, JO, JP, KE, KG, KH, KI, KM, KN, KR, KW, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MG, MH, MK, ML, MN, MO, MR, MT, MU, MV, MW, MX, MY, MZ, NA, NE, NG, NI, NL, NO, NP, NR, NZ, OM, PA, PE, PG, PH, PK, PL, PS, PT, PW, PY, QA, RO, RS, RW, SA, SB, SC, SE, SG, SI, SK, SL, SM, SN, SR, ST, SV, SZ, TD, TG, TH, TJ, TL, TN, TO, TR, TT, TV, TW, TZ, UA, UG, US, UY, UZ, VC, VE, VN, VU, WS, XK, ZA, ZM, ZW | https://p.scdn.co/mp3-preview/a3ba0939a9d55cc315c459cfdf875873a43f50da?cid=d31252a2880546b3ba640d5d64b7e652 |
searchPlaylist
A função searchPlaylist
pede como argumentos o nome de uma playlist, e o token. Ela retorna um data frame no qual cada linha é referente a uma playlist (relacionada com a busca feita). Assim como os outros casos, o id da playlist também é importante caso queira obter mais informações sobre ela.
No caso, vamos procurar a playlist “Uma Música Por Dia”, que é uma playlist que atualizo diariamente. (obs: meu id de usuário no spotify é “therezzza”)
searchPlaylist("Uma Música Por Dia", token = keys)
id | name | tracks | owner |
---|---|---|---|
3buJd0YAjAM0kuPnrQMFJ7 | Uma Música por Dia | 731 | allanclaudino |
4faz4FVeL328piox0lz7UF | Uma Música Por Dia | 179 | therezzza |
575JlxqDooZLZGVQyPO5QV | Músicas para dormir, louvar, orar e devocional <U+0001F64F><U+0001F3FB><U+2728><U+2764><U+FE0F>#1 | 147 | 31slnxm43mhcf6lle5nqucq2inha |
26ZQg5BBS4cSgCQpskRaiO | Uma música por dia | 47 | oliveiraarnon |
2OCnbwpAiu1j0i2tWUj3w2 | Uma música por dia | 288 | 1193062474 |
2sC8NL6bwlecjjtHokZYns | Todo dia uma música em 2022 | 179 | 2c71zh1ergjwcfdilvypipwlx |
2BX2mKiEzgtAcbcwLR89iD | uma música por dia | 21 | nvymfjifcztrj905o6epne2at |
1sqHtyK0w3zZ5POn6ZayAE | Uma Musica Boa por Dia | 591 | thiagogsimonetti |
0B5jPflKKB2xxpOA9nlGYH | Uma música por dia | 90 | 31lkfpkfdkhaci2644cbwlokaspe |
0Wlh0n3NR4sDwWu1xqMemG | uma música por dia | 51 | 12167607547 |
Veja que a playlist que eu queria encontrar está na segunda linha do data frame, vou usá-la na próxima função!
getPlaylistSongs
Essa função pede como argumentos o id do usuário, o id da playlist e o token, e retorna um data frame com as músicas da playlist (e algumas informações adicionais sobre elas)
getPlaylistSongs("therezzza", "4faz4FVeL328piox0lz7UF", token = keys)
tracks | id | popularity | artist | artist_full | artist_id | album | album_id |
---|---|---|---|---|---|---|---|
Por Supuesto | 7xVSNhAUQhUIpwfR6lTOwA | 72 | Marina Sena | Marina Sena | 0nFdWpwl7h6fp3ADRyG14L | De Primeira | 6bN5oG5wKJJqO0j7OhXVNt |
Metamorfose Ambulante | 2Yk0HvfTaijA47aM0Fj88u | 62 | Raul Seixas | Raul Seixas | 7jrRQZg4FZq6dwpi3baKcu | “Krig-Ha, Bandolo” | 2xRddGxRH0KdDWLNE5b0iu |
Police Station | 6DfWymHzCYOH2ABUuHFaMe | 51 | Red Hot Chili Peppers | Red Hot Chili Peppers | 0L8ExT028jH3ddEcZwqJJ5 | I’m with You | 5wZtSIvijWCMc1vlPFqAyB |
Tremores | 5cCFZeltndzRmZ5cjtQdXs | 16 | Lau e Eu | Lau e Eu | 2gh3qTCBKZ5LwVj5zQha9e | Selma | 0u3OZX362nmVG918dwDUK1 |
E.C.T. | 4Wt9zi9hvsgiUACRmoN9Ak | 40 | Cássia Eller | Cássia Eller | 10naVTwNjE50daQVrN0bXh | Cássia Eller (1994) | 3JGRDTWHXpXNfoAPglI7Tr |
Bote | 1ZNV4geiDow8Wks8sKDQCc | 56 | Julio Secchin | Julio Secchin | 0B0FipO3fLbLbHQz5RfTUs | Bote | 5IJwNADxj5Kew8Yjdq7psH |
Enemy - From the series Arcane League of Legends | 5UlnuulVAVmmesw4VzqHdG | 82 | Imagine Dragons | Imagine Dragons feat. Arcane feat. League of Legends | 53XhwfbYqKCa1cC15pYq2q | Enemy (from the series Arcane League of Legends) | 2Y9Kal9IDz6JphsCfY6GzG |
6h 34 | 2gNPwfmBZMo2xzZFFPIt8P | 39 | Visconde | Visconde | 0ScxxqjnVMeXYqPl5AavFd | Visconde | 6XiK7cPd6XqlyiPN7NjTJO |
Sinusite | 1rEOoUHBbnmPnlFS4p5P9t | 40 | Rodrigo Alarcon | Rodrigo Alarcon | 6D3gtdoxrtRGO9ZDU5wWSQ | Parte | 1Q8UuqiYlAHTmkLlpVdACL |
Nossa Bossa | 2YynWd3NpoQC6NId0HPTeq | 30 | O Cinza | O Cinza | 2hhRYX2Zdh4jrvMLghsqGX | O Lugar Onde Envelhecemos | 3CBTykgeyVSdjc4zm7Mra6 |
searchTrack
A função searchTrack
pede como argumentos o nome de uma música (funciona como a busca do Spotify mesmo), e o token. Ela retorna um data frame no qual cada linha é referente a uma música (relacionada com a busca feita).
No exemplo, estou procurando a música “Geminis” da Julia Mestre.
searchTrack("Geminis Julia Mestre", token = keys)
display_name | id | popularity | artists | artists_IDs | type | |
---|---|---|---|---|---|---|
5 | Agora Só Falta Você | 5fGQXRu7c4gZ2lGO8zlL51 | 45 | Julia Mestre | 1FnGKreDca8xq3juSi5hAE | track |
1 | Geminis | 7w6IN6ebiY2AOQwZY50NOG | 33 | Julia Mestre | 1FnGKreDca8xq3juSi5hAE | track |
10 | KIMBALA | 0tPTI9u5fsapoRRf5dc7xC | 28 | Julia Mestre | 1FnGKreDca8xq3juSi5hAE | track |
8 | Cores e Nomes | 3OxGALD40vE750AQ7SLGZr | 25 | Julia Mestre | 1FnGKreDca8xq3juSi5hAE | track |
2 | Mudar o Mundo | 5SDERPI78k0GcVov3vkrRn | 21 | Julia Mestre | 1FnGKreDca8xq3juSi5hAE | track |
13 | el fuego del amor | 7w28YPENfQgVuqQxUeltL0 | 18 | Julia Mestre | 1FnGKreDca8xq3juSi5hAE | track |
4 | Batom | 0lVHrmfGdS2xoAkEKbEcCI | 13 | Julia Mestre | 1FnGKreDca8xq3juSi5hAE | track |
12 | Papai Me Empresta o Carro | 3C1iarbfPZ2bhWUVPUilSc | 13 | Julia Mestre | 1FnGKreDca8xq3juSi5hAE | track |
6 | Canto de Saudade | 1c39CBruWQ4EkY1npaNKwL | 11 | Julia Mestre | 1FnGKreDca8xq3juSi5hAE | track |
7 | Medo de Mim | 1UaDO9pwz7pZsudleZhbHR | 11 | Julia Mestre | 1FnGKreDca8xq3juSi5hAE | track |
getTrack
Essa função pede como argumentos o id da música, e o token. Ela retorna algumas informações sobre a música.
getTrack("7w6IN6ebiY2AOQwZY50NOG", token = keys)
track_id | name | explicit | popularity | artists | artists_id | album | album_id |
---|---|---|---|---|---|---|---|
7w6IN6ebiY2AOQwZY50NOG | Geminis | FALSE | 33 | Julia Mestre | 1FnGKreDca8xq3juSi5hAE | GEMINIS | 4y85scLBaZV25lBqLn0DC2 |
getFeatures
Essa função pede como argumentos o id da música, e o token. Ela retorna algumas informações mais específicas sobre a música (e é a parte que acho mais legal). Essa informações são algumas “métricas” da música, e dá pra fazer muitas coisas legais com elas, como por exemplo, ordenar uma playlist pelas músicas mais dançantes.
getFeatures("7w6IN6ebiY2AOQwZY50NOG", token = keys)
id | danceability | energy | key | loudness | mode | speechiness | acousticness | instrumentalness | liveness | valence | tempo | duration_ms | time_signature | uri | analysis_url |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
7w6IN6ebiY2AOQwZY50NOG | 0.614 | 0.29 | 11 | -10.721 | 0 | 0.0418 | 0.683 | 8.5e-06 | 0.115 | 0.385 | 148.273 | 141867 | 4 | spotify:track:7w6IN6ebiY2AOQwZY50NOG | https://api.spotify.com/v1/audio-analysis/7w6IN6ebiY2AOQwZY50NOG |
getUser
Essa função pede como argumentos o id de um usuário, e o token. Ela retorna algumas informações sobre esse usuário.
No caso, estou usando o id de uma conta minha no spotify, chamada “guiadosmusiqueiros”, que tem playlists de recomendações mais bem organizadas :)
getUser("bn5u195uotc5u95tfw24ct6uf", token = keys)
display_name | id | followers |
---|---|---|
guiadosmusiqueiros | bn5u195uotc5u95tfw24ct6uf | 51 |
getPlaylists
E por fim, a função getPlaylists
pede como argumentos o id de um usuário e o token. Ela retorna informações sobre cada playlist desse usuário!
getPlaylists("bn5u195uotc5u95tfw24ct6uf", token = keys)
id | name | ownerid | tracks |
---|---|---|---|
3KGktfVPwVBJGBnoCrUQK9 | Guia dos Musiqueiros | bn5u195uotc5u95tfw24ct6uf | 42 |
3RdNIPmldyUYDJvIyHk6oU | DUDA BEAT | bn5u195uotc5u95tfw24ct6uf | 7 |
191YgBaCVYbTksKDhj2P4c | Lau e Eu | bn5u195uotc5u95tfw24ct6uf | 7 |
5ONYYUGvooOe8OoGIqICg2 | PLUMA | bn5u195uotc5u95tfw24ct6uf | 7 |
5kSoTjqYeRbYWDxJfGvyRU | Marina Sena | bn5u195uotc5u95tfw24ct6uf | 7 |
54XmEFNjzqXRQULMRWSgEZ | Der Baum | bn5u195uotc5u95tfw24ct6uf | 7 |
5ys3bqipFkmdqppTF8pZk4 | Mariana Froes | bn5u195uotc5u95tfw24ct6uf | 7 |
0j3ZjUaasSzektT6nShKPz | Toco | bn5u195uotc5u95tfw24ct6uf | 7 |
7LUYIRlOPsqD1gJa9jX3do | Seu Pereira e Coletivo 401 | bn5u195uotc5u95tfw24ct6uf | 7 |
4I0EHR3LKqmZB9JUzSX0sn | Letrux | bn5u195uotc5u95tfw24ct6uf | 7 |
Por hoje é só, pessoal! Espero que o tutorial tenha ficado claro :)