2017-05-03 65 views

回答

0

所以首先值得注意的是Soundcloud有一個開發者API,特別是JavaScript SDK with Search functionality。他們有如何做到這一點的文件。

但是,我不想爲許多項目註冊App路線。雖然這可能不是推薦的路線,但無論如何我都會將其添加爲答案。如果你看看網絡標籤,你可以看到有很多請求,你真正關心的是api-v2相關的請求。你應該找一個有這樣的事情作爲一個請求URL:

enter image description here

https://api-v2.soundcloud.com/search?q=rick%20astley%20never%20gonna%20give%20you%20up&facet=model&client_id=OMITTED&limit=10&offset=0&linked_partitioning=1&app_version=OMITTED

這是您的SoundCloud使得在幕後專門爲它的搜索API的API請求的URL,你可以看到它傳入一堆GET參數。我有我的具體憑據,但作爲一個用戶,你有自己的client_idapp_version,所以你需要簡單地把你的。

如果你願意,你可以手動去這個網址,或只是通過AJAX進行GET請求,並得到什麼返回是一個巨大的JSON這樣的:

enter image description here

和潛水進去,您會看到有一個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_idapp_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

希望這有助於。

+0

非常感謝!感謝這一點,我能夠完成我的項目! – user6124043

相關問題