http://developers.soundcloud.com/docs/api
API ドキュメントを見ると、
SC.stream("/tracks/293", function(sound){
sound.play();
});
アップロードしたトラックを見ると、パーマリンクしか表示されません。Web サイトからトラック ID を取得するにはどうすればよいですか? ID を取得するには、常に /resolve を実行する必要がありますか?
http://developers.soundcloud.com/docs/api
API ドキュメントを見ると、
SC.stream("/tracks/293", function(sound){
sound.play();
});
アップロードしたトラックを見ると、パーマリンクしか表示されません。Web サイトからトラック ID を取得するにはどうすればよいですか? ID を取得するには、常に /resolve を実行する必要がありますか?
これはおそらく /resolve よりも手動の手順ですが、「Web サイトから」です。サウンドに移動して「共有」をクリックすると、埋め込みコードにもサウンド ID が表示されます。
たとえば、サウンドページに移動すると、次のようになります。
https://soundcloud.com/lowcountrykingdom/another-ordinary-day
次に、「共有」をクリックすると、ポップアップが表示されます。[埋め込み] をクリックして埋め込みタブに切り替え、次のような埋め込みコードをコピーします。
<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/47580057&color=ff6600&auto_play=false&show_artwork=true"></iframe>
url クエリ パラメータの値の ID に注意してください。
url=https%3A//api.soundcloud.com/tracks/47580057
jquery ajax 呼び出しを使用して、Soundcloud からデータを取得します。変数 permalink_url と client_id を保存するとします。
$.get('http://api.soundcloud.com/resolve.json?url='+
permalink_url+'/tracks&client_id='+client_id , function (result) {
console.log(result);
});
これにより、曲の配列がログに記録されます。参照用にこのビンをチェックしてくださいhttp://jsbin.com/viviza/4/edit
更新:この回答はかなり古いものです。
サウンドクリックのドキュメントhttps://developers.soundcloud.com/docs/api#uploading
SC オブジェクトで ID を直接取得できるようになりました
SC.connect().then(function(){
return SC.get('/me/tracks');
}).then(function(tracks){
return tracks.map(function(track){
console.log("you can log the id here too: " + track.id")
return track.id
})
})
特定のユーザー ID からすべてのトラックを取得することもできます。次に、$.map() を使用して、各トラックを配列に配置します。SC.stream() を song[i].id で呼び出して、トラックの配列からランダムな曲を再生します。
SC.get('/users/123456/tracks/', function(tracks) {
// get an array of tracks
var song = $.map(tracks, function(i){
return i;
});
var i = Math.floor(Math.random() * song.length) // get a random value between 0 & the of songs in SC account -1
SC.stream(song[i].id, function(sound){
sound.play();
});
});