Reading tracks and playlists from Soundcloud

Because of the recent changes Soundcloud made to its API, we had to take measures that would prevent our customers from experiencing errors caused by the restrictions imposed by Soundcloud to our legitimate Soundcloud API credentials. Read more about this issue.

WavePlayer 3 gives you the ability to read your favorite tracks or playlists directly from Soundcloud, incorporating them into your website without worrying about the visual aspect of the player not fully matching the style of your page. With WavePlayer you are always in full control.

Adding tracks or playlists from Soundcloud

Adding a single track or a full playlist is as easy as copying the URL of the track or playlist from Soundcloud…

Copy the URL of a playlist from Soundcloud

…and paste it in the URL field of the WavePlayer instance you are creating (in the following picture you can see a Gutenberg Block but this method is valid for an Elementor widget, as well as the Classic Editor and the regular WavePlayer shortcode).

Paste the URL of the Soundcloud playlist to the WavePlayer block

What WavePlayer does is reading the track information directly from Soundcloud, including the URL of the audio files, the titles, the artists, even the thumbnails. It then generates a single-track instance or a playlist based on the data retrieved from Soundcloud.

With this method, you don’t have to worry about updating your posts or pages of your website every time a playlist changes. WavePlayer automatically updates the playlist on your page every time a visitor loads it. The following player shows the content of this playlist from Soundcloud.

How waveform are generated

When you load a track from Soundcloud that was never played back before, WavePlayer analyzes the audio file and generates a peak file, storing it in the /wp-content/uploads/peaks/soundcloud folder. Since Soundcloud uniquely identifies each track with an ID, WavePlayer uses that to name the peak file so that, every subsequent time the same track is loaded in the player, the rendering of the waveform can be nearly instantaneous.

It is worth noting that, unlike the waveform on Soundcloud that are stored as PNG image files, WavePlayer stores the waveform information as an array of sample values. The number of samples is large enough to guarantee a high-resolution rendering even on the largest screen and when the player occupies the full width of the browser. The use of peak files makes it also possible to render the same waveform with different visual configurations without any need to regenerate the peak file. For example, the following players show the waveform of the same audio track with different visual configurations. All players use the same peak file.

This answer in the FAQ offers more details about the peak files.

Limitations

Soundcloud closed the registration of new apps, which used to be the process through which you could request your own API Client ID and Client Secret. The API Client ID and Client Secret are necessary to access the tracks information on the Soundcloud server. Until very recently, we were pleased to share with all our customers our own Soundcloud App credentials. Unfortunately, due to our increasing customer base and also because of a recent change in the Soundcloud API, the limitation to the number of requests became a target that our customers end up hitting several times a day, something that makes the service unusable.

If you have already registered your app and received your own API Client ID and Client Secret, we strongly recommend using your own credentials. This way, the 15,000 calls a day will be reserved for your visitors only. If you don’t have any registered app with your Soundcloud account, you cannot register a new one now because Soundcloud closed the registration of new apps and has no plan in reopening the registration soon, as it is possible to read in the registration form.

Due to the high amount of requests recently received, we will no longer be processing API application requests at this time. We are working to re-evaluate our process to make it more efficient.

SoundCloud Application Registration

Please be aware that, in case you don’t have your own SoundCloud API Client ID and Client Secret, the limit of 15,000 calls a day for the Client ID distributed with WavePlayer will be covering the whole WavePlayer customer base. With the growing number of customers, this fact could lead to reaching the API calls limit pretty fast and cause interruptions of service.

We wish SoundCloud allows the registration of new apps soon. We wish we could continue sharing our own credentials with all our customers. Sadly, this is not possible anymore.

How to use your own API Client ID and Client Secret

The new version 3.1.7 resolved an issue with the old Soundcloud API being abruptly discontinued in July 2021. With the new API, you must now use your own API Client ID and Client Secret by simply adding the following filter callback to the functions.php file of your child theme or to any Code Snippet.

add_filter( 'waveplayer_soundcloud_client_id_secret', 'my_soundcloud_client_id_secret' );
if ( ! function_exists( 'my_soundcloud_client_id_secret' ) ) {
    function my_soundcloud_client_id_secret() {
        return array(
            'client_id'     => 'aaabbbcccdddeeefffggghhhiiijjjkkk',
            'client_secret' => '111222333444555666777888999000',
        );
   }
}

where you can replace client_id and client_secret with the corresponding values of your own app.

Powered by BetterDocs

0:00
0:00