2017-05-03 60 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

相关问题