【问题标题】:Filtering tracks by streamable = true in Soundcloud在 Soundcloud 中通过 streamable = true 过滤曲目
【发布时间】:2016-03-22 03:04:39
【问题描述】:

我正在尝试使用适用于 Soundcloud 的 javascript SDK 返回可流式传输的曲目列表。

我的问题是:如何使用 javascript SDK 仅过滤可流式歌曲的搜索结果?

以下示例将返回不可流式播放的歌曲:

SC.get('/tracks', {q: 'mat zo', filter: 'streamable'}).then(function (tracks) { 
    console.log(tracks); 
});

这是请求的结果:

api.soundcloud.com/tracks?q=mat+zo&filter=streamable&format=json&client_id=[XXX]

我注意到此响应中的第一首曲目具有 streamable=false。
响应的 sn-p:

...
可流式传输:假
tag_list:“混音 Mat Zo Burn Ellie Goulding”
标题:“燃烧(Mat Zo Remix)”
轨道类型:“”
...

查看 Soundcloud SDK 文档,我没有看到这样做的方法,因为“过滤器”查询参数只接受“(全部、公共、私人)”。

https://developers.soundcloud.com/docs/api/reference#tracks (我在看过滤器)

同样未回答的问题: stackoverflow.com/questions/23791711/filtering-tracks-by-streamable-in-soundcloud

提前致谢,这是我的第一个问题。我可以根据要求提供更多代码。

【问题讨论】:

  • 您是想通过更改对 Soundcloud SDK 的请求还是通过处理请求返回的数据来实现它?
  • 我在问如何改变对服务器的请求,只给我一个 streamable=true 歌曲的响应。感谢您的澄清。

标签: javascript soundcloud


【解决方案1】:

API 上的流式处理属性没有(记录在案的)过滤器。但是,您可以自己轻松过滤掉无法流式传输的曲目:

SC.get('/tracks', {q: 'mat zo'}).then(function (tracks) { 
    for(var i = 0; i < tracks.length; i++) {
        if(!(tracks[i].streamable)) {           
        tracks.splice(i,1);
      } 
    }
    console.log(tracks); 
});

【讨论】:

  • 谢谢哈特格。我希望有办法让服务器做到这一点,但我可以这样做。
【解决方案2】:

如果没有要测试的令牌,很难判断。但是,“搜索”周围的documentation 似乎暗示声音可以直接按属性过滤:

某些资源类型(例如声音)可以按许可、持续时间或 tag_list 等字段进行过滤。

  // find all sounds of buskers licensed under 'creative commons share alike'
SC.get('/tracks', {
  q: 'buskers', license: 'cc-by-sa'
}).then(function(tracks) {
  console.log(tracks);
});

在您的情况下,您应该将 license 替换为 streamable 并将 'cc-by-sa' 替换为 'true'。

【讨论】:

  • 我试过了,得到了与我的第一个示例相同的 json 响应。 :( `SC.get('/tracks', {q: 'mat zo', streamable: true}).then(function (tracks) { console.log(tracks); }); stream_url: "api.soundcloud.com/tracks/104236584/stream" streamable: false tag_list: "Remix Mat Zo Burn Ellie Goulding" title: "Burn (Mat Zo Remix)" track_type: ""`
  • 这是一个可以使用的客户端 ID:429600260189ef2f5faf0ae09ea502f7
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2015-12-15
  • 1970-01-01
  • 2016-08-13
相关资源
最近更新 更多