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.
- 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")
}
AFNetworking
, '~> 3.0'AFOAuth2Manager
, '~> 3.0'
This library needs to connect succesfully with SoundCloud API an account from where get:
Client_id
Secret_key
Redirect_url
ABMSoundCloudAPI is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "ABMSoundCloudAPI"
Andres Brun Moreno, [email protected]
ABMSoundCloudAPI is available under the MIT license. See the LICENSE file for more info.
- Fork it (https://github.com/andresbrun/ABMSoundCloudAPI/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
And I will review it as soon as I can :)