2016-10-16 9 views
2

SpotifyのデベロッパーアプリセクションでクライアントIDと秘密鍵を作成しました。私はこのドキュメントを参照しており、複数のアーティストを選んでこれを拡張したいと考えています。この例では複数のアーティスト向けSpotify APIへのアクセスR

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

、「私ができるので、どのようにして、アーティスト名ではなく、アーティストのIDを取得します)彼らは唯一の1つのアーティストのIDを選択しているが、これにはいくつかの穴があり、

1アーティストIDのどこにでも用語集キーがありますか?

2)1つではなく複数のアーティストをどのように選択しますか?

たとえば、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に基づいているため、それが必要です):

いくつかのアーティストを取得する
/v1/search?type=artist 

endpointは次のとおりです。

/v1/artists?ids={ids} 

彼らは実際には名前に基づいて(シングル)アーティスト検索の素敵なjsFiddle例を提供します。

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

この検索ドキュメントURIは、検索URIの構築方法を示しています。

https://developer.spotify.com/web-api/search-item/

ここで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オブジェクトは、このためにSpotifyはのAPIの残りの部分を探索するID、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で使用するのに問題があります。 –

関連する問題