我已经找了一段时间为这个答案,我无法弄清楚。我不确定这是否可行。是否有可能发挥与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