Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
SoundCloud API binding and connect support for Spring Social - work in progress
tree: 199f3912aa

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


SoundCloud API Java Client and plugin for the Spring Social Framework ( )

Use Cases:

To make calls to the SoundCloud Api on behalf of a user (for example favoriting a track), the SoundCloud user must
give their permission to your application.  

The authentication dance required (where the user is directed to a permission dialog on SoundCloud and then redirected 
back to your application) is handled perfectly by the Spring Social framework.  

To use this functionality, create a Spring Social-enabled webapp and simply register the SoundCloudConnectionFactory
with the ConnectionFactoryRegistry, eg:

  @Scope(value="singleton", proxyMode=ScopedProxyMode.INTERFACES) 
	public ConnectionFactoryLocator connectionFactoryLocator() {
		ConnectionFactoryRegistry registry = new ConnectionFactoryRegistry();
		registry.addConnectionFactory(new SoundCloudConnectionFactory(environment.getProperty("soundCloud.consumerKey"),
				return registry;

Once the user has given permission to your Spring Social webapp to use their SoundCloud account ( see for more details ), an authenticated API client can be obtained from the
user's connection:

  	Connection<SoundCloud> soundcloudConnection = connectionRepository.findPrimaryConnection(SoundCloud.class);

    	SoundCloud authenticatedSoundCloudApi = soundcloud.getApi();
  	Page<Track> tracks = authenticatedSoundCloudApi.tracksOperations().search("monsieur adi dancing with the dj");
    	Track firstResult = tracks.getNumberOfElements() > 0 ? tracks.getContent().get(0) : null;
    	if (firstResult != null)

As mentioned above the Spring Social framework here is managing the authentication dance - behind the scenes Spring
Social has obtained a SoundCloud session key which is linked to the user's authorisation.  Outside of a Spring-Social
enabled webapp, the authenticated API client could be constructed as follows.

    	SoundCloud authenticatedSoundCloudApi = new SoundCloudTemplate("myApiKey","mySessionKey");

To make unauthenticated calls (ie. those which do not require an end user's permission) - for example searching for
tracks or viewing a user's favorites, this module can be used standalone outside of a Spring-Social-enabled webapp.

To use the API in this way, simply create a new SoundCloudTemplate instance, passing in your applications API key:

    	SoundCloud unauthenticatedSoundCloudApi = new SoundCloudTemplate("myApiKey");

    	Page<Track> tracks = unauthenticatedSoundCloudApi.usersOperations().userOperations("mattslip").getFavorites();


To use this module, either checkout the project, build and install locally ("mvn install" from the base directory of
your checkout) or add the following repository to your project's pom:


Then simply add the following dependency to your project's pom:


Something went wrong with that request. Please try again.