/ABMSoundCloudAPI

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

Primary LanguageObjective-CMIT LicenseMIT

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, andresbrunmoreno@gmail.com

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 :)