SoundCloud - Update Cover / Artwork Image

3k Views Asked by At

We use the SoundCloud API to upload tracks with PHP. This is all working perfectly, but we would like to be able to update the track cover artwork with the SoundCloud API. We already upload the cover art when we initially upload the track, but when we try and modify it after the initial upload, it doesn't seem to work (we don't get any errors, it just doesn't get updated and stays the same as it was before).

Is this an intentional limitation of the SoundCloud API or am I missing something?

Edit 1: I've emailed the SoundCloud API team to ask if they'd just clarify if updating track artwork is possible via the API, but I've had no response (around 48 hours so far).

Edit 2 - 2014-07-08: 4 days on and still no reply yet from the SoundCloud API team? Am I being ignorant thinking this is a simple "yes it should work" or "no that isn't supported with the current API" reply?

Edit 3 - 2014-08-28: Over 7 weeks and still haven't heard anything from SoundCloud. Looks like they aren't going to be replying!

$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);
4

There are 4 best solutions below

1
Harry Hedger On

If it's possible, I believe you want to use PUT instead of a POST request. you also will want to include the track's ID in the endpoint.

1
ARay On

Delete all your temporary internet and cache files. It may actually be changing for everyone else but you.

0
njasm On

Acording to the docs, it is only possible to use artwork_data for uploading, no updates to the audio file nor the artwork.

The fields artwork_data and asset_data have a comment of "only for uploading"

Reference: https://developers.soundcloud.com/docs/api/reference#tracks

0
kris On

There is a trick that usually works. The Soundcloud API may have some sloppy coding. Try editing the entire URL link for the target file. That should work.