NYTimes/video-transcoding-api

Name: video-transcoding-api

Owner: The New York Times

Description: Agnostic API to transcode media assets across different cloud services.

Created: 2016-01-19 20:03:50.0

Updated: 2018-05-22 17:10:19.0

Pushed: 2018-04-19 22:21:56.0

Homepage:

Size: 8892

Language: Go

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

video-transcoding-api logo

Video Transcoding API

Build Status codecov Go Report Card

The Video Transcoding API provides an agnostic API to transcode media assets across different cloud services. Currently, it supports the following providers:

Setting Up

With latest Go installed, make sure to export the follow environment variables:

For Elemental Conductor
rt ELEMENTALCONDUCTOR_HOST=https://conductor-address.cloud.elementaltechnologies.com/
rt ELEMENTALCONDUCTOR_USER_LOGIN=your.login
rt ELEMENTALCONDUCTOR_API_KEY=your.api.key
rt ELEMENTALCONDUCTOR_AUTH_EXPIRES=30
rt ELEMENTALCONDUCTOR_AWS_ACCESS_KEY_ID=your.access.key.id
rt ELEMENTALCONDUCTOR_AWS_SECRET_ACCESS_KEY=your.secret.access.key
rt ELEMENTALCONDUCTOR_DESTINATION=s3://your-s3-bucket/
For Encoding.com
rt ENCODINGCOM_USER_ID=your.user.id
rt ENCODINGCOM_USER_KEY=your.user.key
rt ENCODINGCOM_DESTINATION=http://access.key.id:secret.access.key@your-s3-bucket.s3.amazonaws.com/
rt ENCODINGCOM_REGION="us-east-1"
For Amazon Elastic Transcoder
rt AWS_ACCESS_KEY_ID=your.access.key.id
rt AWS_SECRET_ACCESS_KEY=your.secret.access.key
rt AWS_REGION="us-east-1"
rt ELASTICTRANSCODER_PIPELINE_ID="yourpipeline-id"
For Zencoder
rt ZENCODER_API_KEY=your.api.key
rt ZENCODER_DESTINATION=http://access.key.id:secret.access.key@your-s3-bucket.s3.amazonaws.com/
For Bitmovin
rt BITMOVIN_API_KEY=your.api.key
rt BITMOVIN_AWS_ACCESS_KEY_ID=your.access.key.id
rt BITMOVIN_AWS_SECRET_ACCESS_KEY=your.secret.access.key
rt BITMOVIN_AWS_STORAGE_REGION=your.s3.region.such.as.US_EAST_1.or.EU_WEST_1
rt BITMOVIN_DESTINATION=s3://your-s3-bucket
rt BITMOVIN_ENCODING_REGION=your.provider.region.such.as.AWS_US_EAST_1.or.GOOGLE_EUROPE_WEST_1
rt BITMOVIN_ENCODING_VERSION=STABLE.or.BETA
For Hybrik
rt HYBRIK_URL=your.hybrik.api.endpoint.such.as.https://api_demo.hybrik.com/v1
rt HYBRIK_COMPLIANCE_DATE=20170601
rt HYBRIK_OAPI_KEY=your.hybrik.oapi.key
rt HYBRIK_OAPI_SECRET=your.hybrik.oapi.secret
rt HYBRIK_AUTH_KEY=your.hybrik.auth.key
rt HYBRIK_AUTH_SECRET=your.hybrik.auth.secret
rt HYBRIK_DESTINATION=s3://your-s3-bucket
rt HYBRIK_PRESET_PATH=video-transcoding-api-presets

The HYBRIK_PRESET_PATH is optional and defines the folder presets will be stored in. If not specified, it will default to 'video-transcoding-api-presets'.

Please notice that for Elastic Transcoder you don't specify the destination bucket, as it is defined in the Elastic Transcoder Pipeline.

In order to store preset maps and job statuses we need a Redis instance running. Learn how to setup and run a Redis here. With the Redis instance running, set its configuration variables:

rt REDIS_ADDR=192.0.2.31
rt REDIS_PASSWORD=p4ssw0rd.here

If you are running Redis in the same host of the API and on the default port (6379) the API will automatically find the instance and connect to it.

With all environment variables set and redis up and running, clone this repository and run:

t clone https://github.com/NYTimes/video-transcoding-api.git
ke run
Running tests
ke test
Using the API

Check out on our Wiki how to use this API.

Contributing
  1. Fork it
  2. Create your feature branch: git checkout -b my-awesome-new-feature
  3. Commit your changes: git commit -m 'Add some awesome feature'
  4. Push to the branch: git push origin my-awesome-new-feature
  5. Submit a pull request
License

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.