Skip to content

Undocumented API behaviour when fetching tracks #1

@mgoodfellow

Description

@mgoodfellow

Undocumented API behaviour when fetching tracks

Issue found of: Circa 2016

Endpoint(s):

  • GET /users/{id}/tracks
  • GET /tracks/{id}

Scope(s):

  • None (application is not using authentication i.e., implicit flow)

Expected behaviour:

A list of tracks as described at https://developers.soundcloud.com/docs/api/reference#users.

Undocumented API behaviour when fetching tracks

Collections

Sending a Postman query using the API URL and the SoundCloud Client ID:

https://api.soundcloud.com/users/40974574/tracks?representation=&client_id=SC_CLIENT_ID&limit=200&offset=0&linked_partitioning=1&app_version=1602577585&app_locale=en

(NOTE: The v2 of the endpoint is required in this case, or a 403 will be returned)

This returns many tracks in the collection.

Using our own Client ID:

https://api.soundcloud.com/users/40974574/tracks?representation=&client_id=XXXX&limit=200&offset=0&linked_partitioning=1

This returns significantly less tracks in the collection.

Individual Track

If we take the example of a specific track which is returned in the first collection, and not the second:

https://api.soundcloud.com/tracks/908781892?representation=&client_id=XXXX

We receive a 404 response, with the following JSON body

{
    "errors": [
        {
            "error_message": "404 - Not Found"
        }
    ]
}

A best guess would imply there is some sort of API block on this user or a subset of their tracks. However, a reason for this is never reflected to the consumers of the API. This is rumoured in StackOverflow threads such as these: https://stackoverflow.com/questions/36360202/soundcloud-api-urls-timing-out-and-then-returning-error-403-on-about-50-of-trac#

It would be great to understand exactly what can lead to this behaviour - whether due to settings known/controllable by the user, or settings that are applied but hidden from the user and they are not aware of e.g. imposed due to licensing restrictions (our best guess) or otherwise

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestquestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions