SoundCloud API suddenly tracks from playlists marked 'album' are inaccessible

  • 1 August 2016
  • 2 replies

Tracks like '' from playlist '' which is now considered an album, but is not restricted to SoundCloud GO, is returning 403 when using a 3rd party client ID. When fetching the playlist itself, the tracks array is empty. This is new to the last few weeks as far as I know.

This means to 3rd party apps, content like this is now invisible (like content related to Go has been, depending on API endpoint, since Go started).

2 replies

Userlevel 7
Badge +3
Hi there,

Hmm, let's see. The track you mentioned actually cannot be accessed via the API due to the uploader having restricted this actually.

Can you let us know how exactly you're using the API and what you're using it for so we can better understand the issue?

Well in this case I'm using the API to show my likes, and one of my likes is that playlist, and now in my app when viewing that playlist it's empty.
And now I understand why, as you've said, that's just the way it is now – there's a system/uploaders have the right to restrict their content to not be returned to 3rd party API calls. I don't like that (because it means 3rd party apps cant have as good an experience as but fair enough, that's the game sometimes.
That being the case, the real bug is not that 0 tracks are returned in the playlist, but that there's no field to indicate the reason/that it's because of an uploader restriction. Because of this bug, there is no way to tell the difference as a 3rd party API user (/user of our apps) whether a playlist actually has 0 tracks, or that they've just been filtered out because of the above reason... which can be frustrating/confusing. If playlist's had a field 'is_restricted' or similar, I would actually just not show that playlist in my app in the first place, then the user wouldn't be confused when trying to view it.
(Actually, also, in a perfect world, the individual tracks would still be accessible/wouldn't 403 (because what's so secret about the metadata object??)... they just wouldn't be streamable. But this is unlikely.)
Thanks for the quick response/info! I think the solution/compromise to this is quite simple.