2016-10-16 12 views
2

Spotify의 개발자 앱 섹션에서 클라이언트 ID와 비밀 키를 만들었습니다. 이 문서를 참조하면서 여러 아티스트를 선택하여이 문서를 확장하려고합니다.여러 예술가를위한 Spotify API에 액세스 R

1) 어떻게 작가의 ID가 아닌 아티스트 이름을 얻을 수 있습니까,이 예에서

https://www.r-bloggers.com/the-eurovision-2016-song-contest-in-an-r-shiny-app/

, 그들은 단지 1 명 아티스트 ID를 선택하고 있지만, 일부 구멍이에있다 '내가 할 수 있기 때문에 아티스트 ID에 대한 용어집 키를 어디에서 찾을 수 있습니까?

2) 하나가 아닌 여러 아티스트를 어떻게 선택합니까?

예를 들어 Frank Sinatra와 Elvis Presley는 어떻게 선택합니까?

코드는 다음과 같습니다 : 여기

library(httr) 

clientID = '#############################' 
secret = '########################' 

response = POST(
    'https://accounts.spotify.com/api/token', 
    accept_json(), 
    authenticate(clientID, secret), 
    body = list(grant_type = 'client_credentials'), 
    encode = 'form', 
    verbose() 
) 

mytoken = content(response)$access_token 
## Frank Sinatra spotify artist ID 
artistID = '1Mxqyy3pSjf8kZZL4QVxS0' 

HeaderValue = paste0('Bearer ', mytoken) 

URI = paste0('https://api.spotify.com/v1/artists/', artistID) 
response2 = GET(url = URI, add_headers(Authorization = HeaderValue)) 
Artist = content(response2) 
Artist 

내 목표는 danceability 같은 예술가의 각각의 곡에 대한 모든 속성을 얻을 수 있습니다, 등

어떤 도움이 좋은 것입니다, 감사합니다!

답변

1

당신이, 당신이 이런 식으로 그래서 당신은 당신의 질문에 작성한 응답 개체의 아티스트 이름을 얻을 할 수 얻을 방법을 요청하는 경우 :

> Artist$name 

"프랭크시나"

아티스트 이름으로 API를 쿼리하는 방법을 묻는 경우 해당 endpoint은 아티스트 검색으로 이름으로 검색 할 수 있습니다 (API는 검색 기능 이외의 ID를 기반로하므로 ' 필요합니다) :

여러 예술가를 얻을 수 17,451,515,
/v1/search?type=artist 

endpoint은 다음과 같습니다

http://jsfiddle.net/JMPerez/0u0v7e1b/

이 검색 :

/v1/artists?ids={ids} 

그들은 실제로 이름에 따라 (단일) 아티스트 검색의 좋은 jsFiddle 예제를 제공합니다 문서 페이지는 검색 URI를 작성하는 방법을 보여줍니다.

01 23,

여기 R.에서 아티스트 이름을 기반으로 검색하는 완전히 동작하는 예제입니다

종합하기의 우리가이트 크레커를 검색하고 싶은 말은하자 괴상한 랩 왕 :

artistName = 'ytcracker' 

HeaderValue = paste0('Bearer ', mytoken) 

URI = paste0('https://api.spotify.com/v1/search?query=', artistName,'&offset=0&limit=20&type=artist') 
response2 = GET(url = URI, add_headers(Authorization = HeaderValue)) 
Artist = content(response2) 
Artist 

Artist 목적이있는 ID이를 위해 스포티 파이 API의 나머지 부분을 탐구하기에 충분, URI, 장르, 추종자의 번호 및 기타 정보 작가 자신의 앨범 및 관련 예술가, 등, 등 : 나는 검색 결과의 크기에 선택적인 제한을 설정

$artists 
$artists$href 
[1] "https://api.spotify.com/v1/search?query=ytcracker&offset=0&limit=20&type=artist" 

$artists$items 
$artists$items[[1]] 
$artists$items[[1]]$external_urls 
$artists$items[[1]]$external_urls$spotify 
[1] "https://open.spotify.com/artist/1x82Mu3wakMkldMW5kEiP4" 


$artists$items[[1]]$followers 
$artists$items[[1]]$followers$href 
NULL 

$artists$items[[1]]$followers$total 
[1] 2386 


$artists$items[[1]]$genres 
$artists$items[[1]]$genres[[1]] 
[1] "nerdcore" 


$artists$items[[1]]$href 
[1] "https://api.spotify.com/v1/artists/1x82Mu3wakMkldMW5kEiP4" 

$artists$items[[1]]$id 
[1] "1x82Mu3wakMkldMW5kEiP4" 

$artists$items[[1]]$images 
$artists$items[[1]]$images[[1]] 
$artists$items[[1]]$images[[1]]$height 
[1] 640 

$artists$items[[1]]$images[[1]]$url 
[1] "https://i.scdn.co/image/da66c87cfb6f7e400979b53f12c0b0cb029424a8" 

$artists$items[[1]]$images[[1]]$width 
[1] 640 


$artists$items[[1]]$images[[2]] 
$artists$items[[1]]$images[[2]]$height 
[1] 300 

$artists$items[[1]]$images[[2]]$url 
[1] "https://i.scdn.co/image/4055cb39744f85c94838841eecc74563b94a00d1" 

$artists$items[[1]]$images[[2]]$width 
[1] 300 


$artists$items[[1]]$images[[3]] 
$artists$items[[1]]$images[[3]]$height 
[1] 64 

$artists$items[[1]]$images[[3]]$url 
[1] "https://i.scdn.co/image/d46121137f358701b55dcdd03ba9a632ea7e4879" 

$artists$items[[1]]$images[[3]]$width 
[1] 64 



$artists$items[[1]]$name 
[1] "YTCracker" 

$artists$items[[1]]$popularity 
[1] 31 

$artists$items[[1]]$type 
[1] "artist" 

$artists$items[[1]]$uri 
[1] "spotify:artist:1x82Mu3wakMkldMW5kEiP4" 


$artists$items[[2]] 
$artists$items[[2]]$external_urls 
$artists$items[[2]]$external_urls$spotify 
[1] "https://open.spotify.com/artist/2RnAr4QItmKW4vFKip3m8v" 


$artists$items[[2]]$followers 
$artists$items[[2]]$followers$href 
NULL 

$artists$items[[2]]$followers$total 
[1] 36 


$artists$items[[2]]$genres 
list() 

$artists$items[[2]]$href 
[1] "https://api.spotify.com/v1/artists/2RnAr4QItmKW4vFKip3m8v" 

$artists$items[[2]]$id 
[1] "2RnAr4QItmKW4vFKip3m8v" 

$artists$items[[2]]$images 
list() 

$artists$items[[2]]$name 
[1] "YTCracker & Hairetsu" 

$artists$items[[2]]$popularity 
[1] 9 

$artists$items[[2]]$type 
[1] "artist" 

$artists$items[[2]]$uri 
[1] "spotify:artist:2RnAr4QItmKW4vFKip3m8v" 



$artists$limit 
[1] 20 

$artists$`next` 
NULL 

$artists$offset 
[1] 0 

$artists$previous 
NULL 

$artists$total 
[1] 2 

참고. 또한 jsFiddle 예와 같이 동일한 검색 결과를 사용하여 앨범 아트 이미지와 같은 항목을 쿼리 할 수 ​​있습니다.

여러 Arists

OK, 그래서 지금은 내 검색 및 질문에서시나의 ID를 기반으로이트 크레커의 ID를 가지고 있고, 나는 동시에 예술가에 대한 API를 조회 할. 나는 다음과 같이 그것을 할 수있다. ID가있는 한 2 명 이상의 아티스트에게이 작업을 수행 할 수 있습니다.

URI = paste0('https://api.spotify.com/v1/artists?ids=', Artist$artists$items[[2]]$id,",", '1Mxqyy3pSjf8kZZL4QVxS0') 
response2 = GET(url = URI, add_headers(Authorization = HeaderValue)) 
Artists = content(response2) 
$artists 
$artists[[1]] 
$artists[[1]]$external_urls 
$artists[[1]]$external_urls$spotify 
[1] "https://open.spotify.com/artist/2RnAr4QItmKW4vFKip3m8v" 


$artists[[1]]$followers 
$artists[[1]]$followers$href 
NULL 

$artists[[1]]$followers$total 
[1] 36 


$artists[[1]]$genres 
list() 

$artists[[1]]$href 
[1] "https://api.spotify.com/v1/artists/2RnAr4QItmKW4vFKip3m8v" 

$artists[[1]]$id 
[1] "2RnAr4QItmKW4vFKip3m8v" 

$artists[[1]]$images 
list() 

$artists[[1]]$name 
[1] "YTCracker & Hairetsu" 

$artists[[1]]$popularity 
[1] 9 

$artists[[1]]$type 
[1] "artist" 

$artists[[1]]$uri 
[1] "spotify:artist:2RnAr4QItmKW4vFKip3m8v" 


$artists[[2]] 
$artists[[2]]$external_urls 
$artists[[2]]$external_urls$spotify 
[1] "https://open.spotify.com/artist/1Mxqyy3pSjf8kZZL4QVxS0" 


$artists[[2]]$followers 
$artists[[2]]$followers$href 
NULL 

$artists[[2]]$followers$total 
[1] 1204440 


$artists[[2]]$genres 
$artists[[2]]$genres[[1]] 
[1] "adult standards" 

$artists[[2]]$genres[[2]] 
[1] "brill building pop" 

$artists[[2]]$genres[[3]] 
[1] "christmas" 

$artists[[2]]$genres[[4]] 
[1] "easy listening" 

$artists[[2]]$genres[[5]] 
[1] "jazz christmas" 

$artists[[2]]$genres[[6]] 
[1] "lounge" 

$artists[[2]]$genres[[7]] 
[1] "mellow gold" 

$artists[[2]]$genres[[8]] 
[1] "soft rock" 

$artists[[2]]$genres[[9]] 
[1] "soul" 

$artists[[2]]$genres[[10]] 
[1] "swing" 

$artists[[2]]$genres[[11]] 
[1] "vocal jazz" 


$artists[[2]]$href 
[1] "https://api.spotify.com/v1/artists/1Mxqyy3pSjf8kZZL4QVxS0" 

$artists[[2]]$id 
[1] "1Mxqyy3pSjf8kZZL4QVxS0" 

$artists[[2]]$images 
$artists[[2]]$images[[1]] 
$artists[[2]]$images[[1]]$height 
[1] 650 

$artists[[2]]$images[[1]]$url 
[1] "https://i.scdn.co/image/fc4e0f474fb4c4cb83617aa884dc9fd9822d4411" 

$artists[[2]]$images[[1]]$width 
[1] 999 


$artists[[2]]$images[[2]] 
$artists[[2]]$images[[2]]$height 
[1] 416 

$artists[[2]]$images[[2]]$url 
[1] "https://i.scdn.co/image/883de3e492364891543bc0313ffe516626778a16" 

$artists[[2]]$images[[2]]$width 
[1] 640 


$artists[[2]]$images[[3]] 
$artists[[2]]$images[[3]]$height 
[1] 130 

$artists[[2]]$images[[3]]$url 
[1] "https://i.scdn.co/image/810f29651e05c9eae5a31f8151c2e05dc46390f9" 

$artists[[2]]$images[[3]]$width 
[1] 200 


$artists[[2]]$images[[4]] 
$artists[[2]]$images[[4]]$height 
[1] 42 

$artists[[2]]$images[[4]]$url 
[1] "https://i.scdn.co/image/a283ecdc6252ae305c53d283846cae2e8b22e94c" 

$artists[[2]]$images[[4]]$width 
[1] 64 



$artists[[2]]$name 
[1] "Frank Sinatra" 

$artists[[2]]$popularity 
[1] 77 

$artists[[2]]$type 
[1] "artist" 

$artists[[2]]$uri 
[1] "spotify:artist:1Mxqyy3pSjf8kZZL4QVxS0" 
+1

이 중대하다, 나는 별도의 게시물이 요청할 수 있습니다 당신에게 –

+0

감사하지만 어떻게 당신은 예술가 노래의 오디오 기능을 얻을? https://developer.spotify.com/web-api/get-several-audio-features/이지만 R @ Hack-R에서 사용하는 데 문제가 있다는 것을 알고 있습니다. –