0

关于将 API 与 Soundcloud 一起使用的另一个问题(我正在使用 PHP)。

我将上传大量的声音,其中一些是在 1994 年左右录制的。我希望能够使用搜索 API 来检索具有此日期的文件。

我可以看到轨道资源具有 [release_day] 、 [release_month] 和 [release_year] - 但这些字段似乎不能用作查询中的过滤器,对吗?

因此,如果我无法使用这些字段按日期搜索,我能想到的唯一其他选择是使用 [created_at] 字段,因为它可以在搜索中使用。

只有 - 我已经尝试过,但我似乎无法使用 API 修改那段数据。我成功地修改了元数据的其他部分,但是,例如(使用 PHP 片段):

$client->put('tracks/' . $track->id, array(
        'track[created_at]' => "1994/03/14 07:35:57 +0000",
        'track[description]' => 'This track was recorded in Berlin'

));

这没有效果,我认为这意味着我不能做我需要做的事情?

我该如何解决这个问题,并允许我网站上的用户搜索 1994 年录制的声音文件或类似文件?

非常感谢。

4

1 回答 1

0

首先,根据文档,通过以下方式查询轨道:

created_at[from] date   (yyyy-mm-dd hh:mm:ss) return tracks created at this date or later
created_at[to]  date    (yyyy-mm-dd hh:mm:ss) return tracks created at this date or earlier

目前不起作用,与 SoundCloud 上的许多其他查询一样。

除了作为查询被破坏之外,created_at 时间戳是在上传曲目时添加的,并且不可修改。按发布参数搜索的唯一方法是首先搜索其子资源之一,例如:

GET     /users/{id}/tracks  list of tracks of the user
GET     /users/{id}/playlists   list of playlists (sets) of the user
GET     /tracks/{id}/comments   comments for the track
GET     /tracks/{id}/comments/{comment-id}  a comment for the track
GET     /tracks/{id}/favoriters     users who favorited the track
GET     /tracks/{id}/favoriters/{user-id}   a user who has favorited to the track
GET     /tracks/{id}/shared-to/users    users who have access to the track
GET     /tracks/{id}/shared-to/emails   email addresses who are invited to the track

然后根据轨道的发布属性过滤结果。例如,您可以按 /users/{id}/playlists 进行搜索,然后按发布日期过滤该播放列表中曲目的结果。

于 2013-03-15T07:19:16.727 回答