oddworks-ooyala-provider
v1.9.6
Published
An Oddworks provider plugin for Ooyala APIs
Downloads
62
Readme
Oddworks Ooyala Provider
An Ooyala provider plugin for the Oddworks content server.
Installation
Install the npm package as a Node.js library:
npm install --save oddworks-ooyala-provider
For full Ooyala Backlot API documentation see support.ooyala.com/developers/documentation/concepts/chapter_api_setup.html.
Oddworks Server Integration
The Oddworks-Ooyala provider is designed to be integrated with an Oddworks server catalog, specifically as a provider. To initialize the plugin in your server:
const ooyalaProvider = require('oddworks-ooyala-provider');
// See https://gitlab.com/oddnetworks/oddworks/core/tree/master/lib/services/catalog#patterns
// for more information regarding an Oddcast Bus.
const bus = createMyOddcastBus();
const options = {
bus: bus,
apiKey: process.env.OOYALA_API_KEY,
secretKey: process.env.OOYALA_SECRET_KEY
};
ooyalaProvider.initialize(options).then(provider => {
console.log('Initialized provider "%s"', provider.name);
}).catch(err => {
console.error(err.stack || err.message || err);
});
The initialization process will attach Oddcast listeners for the following queries:
bus.query({role: 'provider', cmd: 'get', source: 'ooyala-label-provider'})
bus.query({role: 'provider', cmd: 'get', source: 'ooyala-asset-provider'})
To use them you send Oddcast commands to save a specification object:
// To create a collection based on a Backlot label:
bus.sendCommand({role: 'catalog', cmd: 'setItemSpec'}, {
channel: 'abc',
type: 'collectionSpec',
source: 'ooyala-label-provider',
label: {id: '123456'}
});
// To create a video based on a Backlot asset:
bus.sendCommand({role: 'catalog', cmd: 'setItemSpec'}, {
channel: 'abc',
type: 'videoSpec',
source: 'ooyala-asset-provider',
asset: {external_id: '123456'}
});
Transform Functions
This library provides a default transform function for collections and assets. Usually you don't want to use the default. You'll want to provide your own like this:
const ooyalaProvider = require('oddworks-ooyala-provider');
const bus = createMyOddcastBus();
const options = {
bus: bus,
collectionTransform: myCollectionTransform,
assetTransform: myAssetTransform
};
ooyalaProvider.initialize(options).then(provider => {
console.log('Initialized provider "%s"', provider.name);
}).catch(err => {
console.error(err.stack || err.message || err);
});
Your transform functions myCollectionTransform
and myAssetTransform
will be called when the ooyala-label-provider
and ooyala-asset-provider
have respectively received a response from the Backlot API. Each transform will be called with 2 arguments: The spec object and the Backlot API response object.
See lib/default-asset-transform
and lib/default-collection-transform
for more info.
Ooyala API Client
You can create a stand-alone API client outside of the Oddworks provider:
const ooyalaProvider = require('oddworks-ooyala-provider');
const client = ooyalaProvider.createClient({
bus: bus,
apiKey: process.env.OOYALA_API_KEY,
secretKey: process.env.OOYALA_SECRET_KEY
});
The client can also be initialized with the high performance GET API using the baseUrl
option (see below).
Client Methods
All methods return a Promise.
client.getLabels()
client.getLabel({labelId})
client.getChildLabels({labelId})
client.getAssetsByLabel({labelId})
client.getAsset({assetId})
client.getAssetMetadata({assetId})
client.getAssetStreams({assetId})
Command Line Interface
You can interact with the Backlot client using the CLI tool. To get started, run:
bin/backlot --help
To authenticate the API you'll need to export the following environment variables:
BACKLOT_API_KEY
The Backlot API keyBACKLOT_SECRET_KEY
The Backlot secret key
To get help with commands:
bin/backlot list --help
bin/backlot req --help
High Performance API
Ooyala offers a CDN API for serving GET requests only, which may be preferable to the standard Backlot API. To use it, initialize the provider like this:
const ooyalaProvider = require('oddworks-ooyala-provider');
const options = {
bus: bus,
apiKey: process.env.OOYALA_API_KEY,
secretKey: process.env.OOYALA_SECRET_KEY,
// Use the high performance API
baseUrl: 'https://cdn-api.ooyala.com'
};
ooyalaProvider.initialize(options).then(provider => {
console.log('Initialized provider "%s"', provider.name);
}).catch(err => {
console.error(err.stack || err.message || err);
});
License
Apache 2.0 © Odd Networks