This app allows you to distribute a free SoundCloud track download in exchange for a social interaction, such as Sharing on Facebook and Tweeting on Twitter. Effectively creating a "Tweet/Share for Download" campaign. The default application has many customization options, but feel free to adjust and fork as needed. You can see an example of the default app running here.
1. Install Ruby, RubyGems, & Rails
Mac OS X: Ruby and Rails comes pre-installed on Mac OS X, but you'll want to upgrade it by following these instructions.
Windows: Follow these instructions to install Ruby and Rails on Windows.
2. Install Git & Generate SSH Key
Git is a free & open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
- Install Git: On a Mac, Windows, or UNIX/Linux
- Sign up for Github
- Follow these instructions to generate an SSH key & add the key to your Github account.
- Set user name and email globally on git by following these instructions
3. Register a new SoundCloud application
- Make sure you're signed up for SoundCloud and logged in.
- Go here, name your app, and click
- Copy the Key and Secret to a text file for later
Register Social Apps
You'll need to create applications for each of the social services you wish to use on your promotion and copy the given keys and secrets for later. Current services are: Twitter, Facebook, MySpace, and Digg
1. Register a new Twitter application
- Go here
- Name your application and give it a Description
- Input your Application Website (url where your app will live)
- Add your artist name as Organization and your artist website url as Website
- Make sure Browser is selected on Application Type
- Input your Callback URL (url where your app will live)
- Select Read & Write for Default Access type
- Finally, copy the Key and Secret to a text file for later
2. Register a new Facebook application
- Go here, name your app, agree to terms, and click
- Click Connect in the left column and add your Connect URL (url where your app will live), then click
- Copy the Application ID and Secret to a text file for later
3. Register a new MySpace application
- Go here and click
Create MySpaceID App
- Give your application a Title, agree to the terms, and click
- Add a short Description to your app and scroll down to External Site Settings
- Input your External URL (url where your app will live)
- Then input your External Callback Validation (url to your app + '/oauth_callback/myspace')
- Agree to the terms and click
- Scroll down to OAuth Settings and copy the Key and Secret to a text file for later
4. Register a new Digg application
- Login to Digg
- Go here and click
Create New App
- Give your application a Name and Description
- Copy the Key and Secret to a text file for later.
Clone the application on your local computer by running the following command in your Terminal emulator. (Terminal on Mac, Console on Windows)
git clone git://github.com/soundcloud/soundcloud-social-download.git project_name
Now you're ready to do some configuring.
Configuring the application is simply done by editing the following files
settings.yml in the config folder.
If you're looking for a decent text editor, try TextMate
1. Update Authentication File
- Input the following into
- SoundCloud Key and Secret into production > soundcloud > prokey & prosecret
- Twitter Key* and Secret into production > twitter > prokey & prosecret
- Facebook Application ID and Secret into production > facebook > proappid & prosecret
- MySpace Key and Secret into production > myspace > prokey & prosecret
- Digg Key and Secret into production > digg > prokey & prosecret
2. Update Settings File
- Input the following into
- Your promotion title, description, and track url
- Customize the player params as needed (You can view a full list of parameters here)
- You can also set your player type, height, and width
- Next input the promotion header and instructions
- Would you like to allow email submission as an alternative? true or false
- Adjust the comma separated list of services to reflect which 3rd party sites you'll be using.
- Adjust the default social language such as button, header, and status for each service being used.
Customize CSS & Images
Replace default images
Replace the following images within the public/images folder with something that relates to your competition.
bg.jpg: background image
logo.png: logo that appears in the top center of your app. Replace with another transparent png of your choosing.
artwork.jpg: a square 425 x 425 pixel image used for sharing. This should be the image associated with your track (album cover, single cover, etc).
Adjust default CSS
You can further customize the aesthetics of your application by adjusting
application.css found within public/stylesheets. Here's a few ideas:
- Change the color and font of text in the
- Change the color of links and their hover effect in the
- Change the color of headlines in the
- Change the background gradient and color of the button in the
Deploying on Heroku
Connect the App to Your SoundCloud Account
You must connect the app to the SoundCloud account which owns the track you are offering for download.
To do this, visit yourapp.com/activate and login with the appropriate SoundCloud account.
Submit URL to Digg
If you're using Digg, be sure to submit your campaign's url to Digg.com so the app has something to Digg.
Export Submitted Emails
- Visit yourapp.com/login/soundcloud and login with the SoundCloud account that owns the track you are offering for download.
- Visit yourapp.com/export and you'll get a CSV dump of all submitted emails.
Tips and Tricks
- Visit yourapp.com/promote/widgets to get a list of all default SoundCloud embed widgets. You can use this page when marketing your campaign: 'Go here to grab an embed code of the track being offered for social download.'
- Visit yourapp.com/promote/tab to get the basic code needed to create an FBML tab application used to market your promotion. For more info on creating FBML tab apps, go here.
- A "Free Download" button is added to the player embed via a customized 'buy' button which directs people to your campaign. More on that hack here.