Bremen provides common search interface for some music websites. it supports YouTube, SoundCloud, MixCloud and Nicovideo
Installation
Add this line to your application's Gemfile:
gem 'bremen'
And then execute:
$ bundle
Or install it yourself as:
$ gem install bremen
Setting
As far as SoundCloud concerned, you need to set your app's client id before using.
Bremen::Soundcloud.client_id = 'your_client_id'Alternately, you can set 'SOUNDCLOUD_CLIENT_ID' environment variable.
Usage
Retrieving a single track
call .find method with uid(unique key) or url.
Bremen::Youtube.find('XXXXXXXXXXX')
Bremen::Youtube.find('http://www.youtube.com/watch?v=XXXXXXXXXXX')
Bremen::Soundcloud.find('1111111')
Bremen::Soundcloud.find('http://soundcloud.com/author/title')
Bremen::Mixcloud.find('/author/title/')
Bremen::Mixcloud.find('http://www.mixcloud.com/author/title/')
Bremen::Nicovideo.find('sm1111111')
Bremen::Nicovideo.find('http://www.nicovideo.jp/watch/sm1111111')Retrieving multiple tracks
call .search method with keyword.
Bremen::Youtube.search(keyword: 'Perfume')Optional params
You can add optional parameters for filtering. But it doesn't support all official API's filters.
Bremen::Youtube.search(keyword: 'KyaryPamyuPamyu', order: 'relevance', limit: 10)Track object
Retrieving methods return Track object(s).
| attribute | type | description |
|---|---|---|
| uid | String | unique key for each site |
| url | String | |
| title | String | |
| author | Author Object | uid/url/name/thumbnail_url |
| length | Integer | duration of track |
| thumbnail_url | String | thumbnail image |
| created_at | Time | released datetime |
| updated_at | Time | modified datetime |
API references
- Reference Guide: Data API Protocol - YouTube — Google Developers
- Docs - API - Reference - SoundCloud Developers
- API documentation | Mixcloud
Supported versions
- Ruby 1.9.3 or higher
Contributing
- Fork it
- 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 new Pull Request