An NPM library for integration with Red Bee Media Managed OTT platform.
npm install @eyevinn/enigma.io
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.
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"});
getEndUsers
Retrieve a list of end users.getEndUser
Retrieve a specific end user.getEndUserById
Retrieve a specific end user by their account id.createUser
Create a single end user.createUsers
Bulk create users.setLabelsForUser
Set labels on an existing user.
getProductOfferings
Retrieve a list of productOfferings.getProductOffering
Retrieve a specific productOffering.setLabelsForProductOffering
Set labels on an existing productOffering.
getPurchases
Retrieve active purchases for an account.performPurchase
Performs a purchase of a given productOffering for a given account.removePurchase
Remove a purchased productOffering and its access from a given account.
createAsset
Create 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"
}
linkAssets
Create a link from srcAssetId to destAssetId.ingestVideo
Ingest a video file to an asset. The URL to the video file must be accessible by the platform.publishAsset
Add a product publication to an asset.unpublishAsset
Remove one single publication, or all publications, on an asset.createProduct
Create a product in the platformgetProducts
Get all products in the platformgetProduct
Get a specific product in the platform
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"});
authenticate
Get an authenticated session for an end user
const authResponse = await exposureApi.authenticate(username, password);
const sessionToken = authResponse.sessionToken;
play
Get 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;
}
getAssets
Get all assets of a specific asset type.getAsset
Get a specific asset by its asset ID.resolveSerie
Get all assets for a serie and structured in a series/seasons/episodes structure.
- create a
.env
file in the root of the project - add
API_KEY_ID
andAPI_KEY_SECRET
for the Management API - add your
USERNAME
andPASSWORD
to obtain session for the Exposure API - run
npm test