我已經找了一段時間爲這個答案,我無法弄清楚。我不確定這是否可行。是否有可能發揮與javascript搜索soundcloud的最佳結果
基本上,我有一個聲音雲搜索的網址(https://soundcloud.com/search?q=rick%20astley%20never%20gonna%20give%20you%20up),我想知道是否可以立即播放最高結果或下載最高結果。先進的謝謝!
我已經找了一段時間爲這個答案,我無法弄清楚。我不確定這是否可行。是否有可能發揮與javascript搜索soundcloud的最佳結果
基本上,我有一個聲音雲搜索的網址(https://soundcloud.com/search?q=rick%20astley%20never%20gonna%20give%20you%20up),我想知道是否可以立即播放最高結果或下載最高結果。先進的謝謝!
所以首先值得注意的是Soundcloud有一個開發者API,特別是JavaScript SDK with Search functionality。他們有如何做到這一點的文件。
但是,我不想爲許多項目註冊App路線。雖然這可能不是推薦的路線,但無論如何我都會將其添加爲答案。如果你看看網絡標籤,你可以看到有很多請求,你真正關心的是api-v2
相關的請求。你應該找一個有這樣的事情作爲一個請求URL:
這是您的SoundCloud使得在幕後專門爲它的搜索API的API請求的URL,你可以看到它傳入一堆GET參數。我有我的具體憑據,但作爲一個用戶,你有自己的client_id
和app_version
,所以你需要簡單地把你的。
如果你願意,你可以手動去這個網址,或只是通過AJAX進行GET請求,並得到什麼返回是一個巨大的JSON這樣的:
和潛水進去,您會看到有一個collection
數組屬性,其中包含結果。因爲你只是想第一個,我們就可以看的陣列中出來是像這樣的指數:
{
"artwork_url": "https://i1.sndcdn.com/artworks-000074083588-q3fg6e-large.jpg",
"commentable": true,
"comment_count": 113,
"created_at": "2014-03-05T01:47:32Z",
"description": "",
"downloadable": true,
"download_count": 100,
"download_url": "https://api.soundcloud.com/tracks/137970300/download",
"duration": 266996,
"full_duration": 266996,
"embeddable_by": "all",
"genre": "Mashup",
"has_downloads_left": false,
"id": 137970300,
"kind": "track",
"label_name": "",
"last_modified": "2017-04-26T13:01:05Z",
"license": "all-rights-reserved",
"likes_count": 6307,
"permalink": "rick-astley-never-gonna-give",
"permalink_url": "https://soundcloud.com/andreasedstr-m/rick-astley-never-gonna-give",
"playback_count": 596829,
"public": true,
從這裏,你有兩個選擇 - 如果你願意,你可以下載它通過查看屬性download_url
或者你可以「玩它」。這部分你可能想澄清你的定義是什麼。你可以打開Soundcloud頁面,它應該自動播放我相信,或者你可以將它嵌入你的頁面,然後以某種方式觸發一個播放。無論哪種情況,都可以使用。
要做到這一點通過JavaScript,你可能只是對上面的URL做GET請求。我截斷了下面的URL。記住你需要提供你的client_id
和app_version
。
$.ajax({
method: 'GET',
url: 'https://api-v2.soundcloud.com/search?q=rick%20astley%20never%20gonna%20give%20you%20up',
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function (data) {
// do stuff here
// as mentioned because you care about the first index in the property above
// you would most likely interact with it by accessing data.collection[0]
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
最後一件事,如果你運行CORS它,因爲該服務沒有看到你作爲一個實際的人。見here
希望這有助於。
非常感謝!感謝這一點,我能夠完成我的項目! – user6124043