Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    oddworks-ooyala-providerpublic

    Oddworks Ooyala Provider

    pipeline status

    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 key
    • BACKLOT_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

    install

    npm i oddworks-ooyala-provider

    Downloadsweekly downloads

    3

    version

    1.9.5

    license

    Apache-2.0

    homepage

    gitlab.com

    repository

    gitlab.com

    last publish

    collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar