Tudo sobre o pacote {Rspotify}

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

getRelated

A função getRelated pede como argumentos o nome do artista/banda, e o token. Ela retorna algumas informações sobre os artistas relacionados com o artista especificado.

getRelated("O Grilo", token = keys)
name id popularity type followers
Walfredo em Busca da Simbiose 6PzQC3kTcWcJcH8p4d7yJl 29 artist 8842
Abacaxepa 37YBTVhchsMr6ekdUHEKRy 40 artist 15088
Daparte 6D5hUhZncLiNMeE3gq9BhL 41 artist 17384
Lupa 7yct0AdXUgrHi83xwSt902 30 artist 7405
Nanasai 67PBrqP0nECUumF2AQ8G6S 36 artist 25626
Selvagens à Procura de Lei 093ybF4c81CndQe6qWtc8S 42 artist 125164
Scatolove 0icMce3ZQU1HdA8gGHo5Rg 37 artist 88050
Cidade Dormitório 3hnNIsiWatVyHen6mz79sf 32 artist 30869
Terno Rei 7c8kQb9AUntvapfnuC3IhF 50 artist 89239
Zimbra 11xX6bMCvpstEFOyx8lxYg 43 artist 111790

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 :)

comments powered by Disqus