Search code examples
javascriptsoundcloud

Soundcloud API .getSounds only returns the first 5 objects


I am using the HTML5 Widget Api to take a SoundCloud playlist with 14 songs and store the information about every song in an array. I use the .getSounds method as following:

  function loadTracks(){
    myPlayer.player.getSounds(function(ret){
      myPlayer.playlistInfo = ret;
    });
  }

It correctly returns an array with 14 spots. The first 5 spots contain exactly what i want, but the last 9 have different information that does not seem to be related to the song.

this is how the returned array looks like

I could recreate the problem with different playlists. I only get the correct information for the first 5 songs.

Does anyone has and idea on how to solve this? I set up a codepen for this Thanks.


Solution

  • I was struggling with the same problem. For me it looks like SC.Widget.Events.READY is sometimes firing before the Widget is really completely ready.

    A safe solution would be to loop through a function and check the array for its completeness until all the data you need is there. In my example on Code Pen I check the array every 200 ms for all titles and break out of the loop on success.