In a Rails application, add this line to Gemfile:
gem 'coconutrb', '~> 2.2.0'
And then, type in your terminal:
bundle installYou can also install it via rubygems:
sudo gem install coconutrbUse the API Request Builder to generate a config file that match your specific workflow.
Example of coconut.conf:
var s3 = s3://accesskey:secretkey@mybucket set webhook = http://mysite.com/webhook/coconut?videoId=$vid -> mp4 = $s3/videos/video_$vid.mp4 -> webm = $s3/videos/video_$vid.webm -> jpg:300x = $s3/previews/thumbs_#num#.jpg, number=3
Here is the ruby code to submit the config file:
# We specify the config file, set the source of the video to convert and # create a variable "vid" that will be used in the custom webhook URL and output URLs job = Coconut::Job.create( :api_key => "k-api-key", :conf => "coconut.conf", :source => "http://yoursite.com/media/video.mp4", :vars => {:vid => 1234} ) if jid = job["id"] puts jid else puts job["error_code"] puts job["error_message"] end
You can also create a job without a config file. To do that you will need to give every settings in the method parameters. Here is the exact same job but without a config file:
vid = 1234 s3 = "s3://accesskey:secretkey@mybucket" job = Coconut::Job.create( :api_key => "k-api-key", :source => "http://yoursite.com/media/video.mp4", :webhook => "http://mysite.com/webhook/coconut?videoId=#{vid}", :outputs => { "mp4" => "#{s3}/videos/video_#{vid}.mp4", "webm" => "#{s3}/videos/video_#{vid}.webm", "jpg:300x" => {:url => "#{s3}/previews/thumbs_#num#.jpg", :number => 3} } )
Getting info about a job:
Coconut::Job.get(18370773) {"id"=>18370773, "created_at"=>"2019-06-11 12:04:53 +0000", "completed_at"=>"2019-06-11 12:12:03 +0000", "status"=>"completed", "progress"=>"100%", "errors"=>{}, "output_urls"=>{"httpstream"=>{"dash"=>"http://media.coconut.cos3.amazonaws.com/bbb/dash/master.mpd", "hls"=>"http://media.coconut.cos3.amazonaws.com/bbb/hls/master.m3u8", "hlsfmp4"=>"http://media.coconut.cos3.amazonaws.com/bbb/dash/master.m3u8"}, "mp4:720p"=>"http://media.coconut.cos3.amazonaws.com/bbb/720p.mp4", "mp4:1080p"=>"http://media.coconut.cos3.amazonaws.com/bbb/1080p.mp4"}}
Retrieving metadata:
# Getting metadata for a specific output Coconut::Job.get_metadata_for(18370773, "mp4:720p") # For all source + outputs Coconut::Job.get_all_metadata(18370773)
Note that you can use the environment variable COCONUT_API_KEY to set your API key.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Added some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request
Released under the MIT license.
- Coconut website: http://coconut.co
- API documentation: http://coconut.co/docs
- Contact: support@coconut.co
- Twitter: @OpenCoconut