Go integration for Zencoder API video transcoding service.
- Go 1.1 or higher
- A Zencoder account/API key (get one at app.zencoder.com)
Godoc documentation is available at http://godoc.org/github.com/brandscreen/zencoder.
$ go get github.com/brandscreen/zencoderEnsure you have imported the zencoder package at the top of your source file.
import "github.com/brandscreen/zencoder"All Zencoder methods are on the Zencoder struct. Create a new one bound to your API key using zencoder.NewZencoder.
// make sure you replace [YOUR API KEY HERE] with your API key
zc := zencoder.NewZencoder("[YOUR API KEY HERE]")settings := &zencoder.EncodingSettings{
Input: "s3://zencodertesting/test.mov",
Test: true,
}
job, err := zc.CreateJob(settings)jobs, err := zc.ListJobs()details, err := zc.GetJobDetails(12345)progress, err := zc.GetJobProgress(12345)err := zc.ResubmitJob(12345)err := zc.CancelJob(12345)err := zc.FinishLiveJob(12345)details, err := zc.GetInputDetails(12345)progress, err := zc.GetInputProgress(12345)details, err := zc.GetOutputDetails(12345)progress, err := zc.GetOutputProgress(12345)account, err := zc.GetAccount()err := zc.SetIntegrationMode()err := zc.SetLiveMode()All reporting interfaces take either nil or a ReportSettings object.
Using nil denotes to use default settings. In this case, assume settings in the examples below is defined as:
var settings *zencoder.ReportSettings = nilA ReportSettings object can either be constructed manually as in:
var start, end time.Date
settings := &zencoder.ReportSettings{
From: &start,
To: &end,
Grouping: "key",
}Or, you can use a Fluent-style interface to build a ReportSettings object, as in:
var start, end time.Date
settings := zencoder.ReportFrom(start).To(time).Grouping("key")usage, err := zc.GetVodUsage(settings)usage, err := zc.GetLiveUsage(settings)usage, err := zc.GetUsage(settings)See Zencoder API documentation for all encoding settings available in zencoder.EncodingSettings. All settings are currently supported, with the main difference being the casing of the options to fit with Go naming conventions.
Please see CONTRIBUTING.md. If you have a bugfix or new feature that you would like to contribute, please find or open an issue about it first.
Licensed under the MIT License.

