@eyevinn/enigma.io
v1.6.0
Published
NPM library for integration with Red Bee Media Managed OTT APIs
Downloads
57
Readme
An NPM library for integration with Red Bee Media Managed OTT platform.
Installation
npm install @eyevinn/enigma.ioAuthentication
Provide API key ID and secret with the environment variables API_KEY_ID and API_KEY_SECRET.
Your key and secret can also be set when initiating the ManagementApi, like so:
const managementApi = new EnigmaIO.ManagementAPI("Customer", "BusinessUnit", {
API_KEY_ID: "Your API KEY ID",
API_KEY_SECRET: "Your API KEY SECRET"
});If omitted when created a new class, the managementAPI will look for environment variables.
Management API
const EnigmaIO = require("@eyevinn/enigma.io");
const managementApi = new EnigmaIO.ManagementAPI("Customer", "BusinessUnit");
// using red bee's stage environment
const managementApi = new EnigmaIO.ManagementAPI("Customer", "BusinessUnit", { environment: "stage"});Methods
Users
getEndUsersRetrieve a list of end users.getEndUserRetrieve a specific end user.getEndUserByIdRetrieve a specific end user by their account id.createUserCreate a single end user.createUsersBulk create users.setLabelsForUserSet labels on an existing user.
Products & Product Offerings
getProductOfferingsRetrieve a list of productOfferings.getProductOfferingRetrieve a specific productOffering.setLabelsForProductOfferingSet labels on an existing productOffering.
Purchases
getPurchasesRetrieve active purchases for an account.performPurchasePerforms a purchase of a given productOffering for a given account.removePurchaseRemove a purchased productOffering and its access from a given account.
Assets
createAssetCreate an asset
Where the metadata object should be constructed in the following format
{
"languages": [ "en" ],
"en": {
"description": "Walt rejects everyone who tries to help him with the cancer. Jesse tries his best to create Walt's meth, with the help of an old friend."
},
"studio": "Sony Pictures Television",
"productionYear": "2019"
}linkAssetsCreate a link from srcAssetId to destAssetId.ingestVideoIngest a video file to an asset. The URL to the video file must be accessible by the platform.publishAssetAdd a product publication to an asset.unpublishAssetRemove one single publication, or all publications, on an asset.createProductCreate a product in the platformgetProductsGet all products in the platformgetProductGet a specific product in the platform
Exposure API
const EnigmaIO = require("@eyevinn/enigma.io");
const exposureApi = new EnigmaIO.ExposureAPI("Customer", "BusinessUnit");
// using red bee's stage environment
const exposureApi = new EnigmaIO.ExposureAPI("Customer", "BusinessUnit", { environment: "stage"});Methods
Authorization
authenticateGet an authenticated session for an end user
const authResponse = await exposureApi.authenticate(username, password);
const sessionToken = authResponse.sessionToken;Assets
playGet a medialocator, i.e. a manifest, to play the file
const authResponse = await exposureApi.authenticate(username, password);
const sessionToken = authResponse.sessionToken;
const playResponse = await exposureApi.play(sessionToken, assetId);
const hlsFormat = playResponse.formats.find(a => a.format === "HLS");
if (hlsFormat) {
const mediaLocator = hlsFormat.mediaLocator;
}getAssetsGet all assets of a specific asset type.getAssetGet a specific asset by its asset ID.resolveSerieGet all assets for a serie and structured in a series/seasons/episodes structure.
Run the tests
- create a
.envfile in the root of the project - add
API_KEY_IDandAPI_KEY_SECRETfor the Management API - add your
USERNAMEandPASSWORDto obtain session for the Exposure API - run
npm test
