我们使用SoundCloud API用PHP上传音轨。这一切都工作完美,但我们希望能够更新与SoundCloud API的轨道封面artwork。当我们最初上传曲目时,我们已经上传了封面,但是当我们尝试在初始上传后修改它时,它似乎不起作用(我们没有得到任何错误,它只是没有得到更新,并保持与之前相同)。
这是SoundCloud API的故意限制还是我错过了什么?
编辑1:我已经给SoundCloud API团队发了邮件,询问他们是否可以通过API来更新音轨图像,但我没有得到任何回应(到目前为止大约48小时)。
编辑2 - 2014-07-08:4天过去了,SoundCloud API团队还没有回复?我是否无知地认为这是一个简单的"是的,它应该工作"或"不,当前API不支持"的回答?
编辑3 - 2014-08-28:超过7周了,仍然没有听到SoundCloud的任何消息。看来他们不会回复了!
$track_info_array = array(
'track[title]' => $track['title'],
'track[sharing]' => $track['sharing'],
'track[track_type]' => $track['track_type'],
'track[purchase_url]' => $track['purchase_url'],
'track[description]' => $track['description'],
'track[genre]' => $track['genre'],
'track[label_name]' => $track['label_name'],
'track[tag_list]' => $track['tag_list'],
'track[release_day]' => $release_date[2],
'track[release_month]' => $release_date[1],
'track[release_year]' => $release_date[0],
'track[isrc]' => $track['isrc'],
'track[release]' => $track['release'],
'track[bpm]' => $track['bpm'],
'track[key_signature]' => $track['key_signature']
);
if($release_image){
$track_info_array['track[artwork_data]'] = '@'.$release_image;
}
$track_info = $soundcloud->put('tracks/' . $track['soundcloud_track_id'], $track_info_array);
如果可能的话,我相信您希望使用PUT而不是POST请求。您还需要在端点中包含曲目的ID。
根据文档,只能使用artwork_data进行上传,不能更新音频文件或美术作品。
字段artwork_data和asset_data有一个注释"only for upload "
参考:https://developers.soundcloud.com/docs/api/reference歌曲
删除所有您的临时互联网和缓存文件。事实上,除了你,其他人可能都在改变。
有一个通常有效的技巧。Soundcloud API可能有一些草率的编码。尝试编辑目标文件的整个URL链接。应该可以了