ABMSoundCloudAPI icon indicating copy to clipboard operation
ABMSoundCloudAPI copied to clipboard

Own library to handle oauth2 authentication and basic operations for SoundCloud API.

alt tag

Build Status Version License Platform

Motivation

Since SoundCloud decided not to maintain anymore its API iOS library I decided to create my own one. Right now just support some of the API's endpoints such as:

  • Authentication usign internal webview.
  • Searching for songs given a query string.
  • Download a song given the stream URL.
  • Get User Playlists.
  • Get Playlists given playlist ID.
  • Get song info given song ID.
  • Follow user given user ID.
  • Upload an audio file.

Usage

  • To run the example project, clone the repo, and run pod install from the Example directory first.
  • How to upload audio file to soundcloud (this is basic example with basic meta information)

In Objective-C

    NSDictionary *params = @{
                             @"track[title]": @"title",
                             @"track[permalink]": @"permalink", //must be lowercase
                             @"track[tag_list]": @"tag", //must be lowercaset
                             @"triack[sharing]": @"public",
                             @"track[downloadable]": @YES
                             };
    
    
    [[ABMSoundCloudAPISingleton sharedManager].soundCloudPort uploadAudioFile:fileData mimeType:@"audio/mp4" meta:params withSuccess:^(NSDictionary *songDict) {
    
        NSLog(@"success");
    
    } failure:^(NSError *error) {
    
        NSLog(@"error");
        
    }];

In Swift 3.0

    let params = ["track[title]": "title", "track[permalink]": "permalink"...]

    ABMSoundCloudAPISingleton.sharedManager.uploadAudioFile(fileData, mimeType: "audio/mp4", meta: params, withSuccess: { (songDict) in
        print("Success")
    }, progress: { (progress) in
        print("Progress \(progress.fractionCompleted)")
    }) { (error) in
        print("Error")
    }

Dependencies

  • AFNetworking, '~> 3.0'
  • AFOAuth2Manager, '~> 3.0'

Requirements

This library needs to connect succesfully with SoundCloud API an account from where get:

  • Client_id
  • Secret_key
  • Redirect_url

Installation

ABMSoundCloudAPI is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "ABMSoundCloudAPI"

Author

Andres Brun Moreno, [email protected]

License

ABMSoundCloudAPI is available under the MIT license. See the LICENSE file for more info.

Contributing

  1. Fork it (https://github.com/andresbrun/ABMSoundCloudAPI/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

And I will review it as soon as I can :)