Neatly Packaged Manuals

    @eyevinn/enigma.io

    1.5.2 • Public • Published

    An NPM library for integration with Red Bee Media Managed OTT platform.

    Installation

    npm install @eyevinn/enigma.io
    

    Authentication

    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

    Products & Product Offerings

    Purchases

    • 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.

    Assets

    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 platform
    • getProducts Get all products in the platform
    • getProduct Get 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

    const authResponse = await exposureApi.authenticate(username, password);
    const sessionToken = authResponse.sessionToken;

    Assets

    • 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.

    Run the tests

    • create a .env file in the root of the project
    • add API_KEY_ID and API_KEY_SECRET for the Management API
    • add your USERNAME and PASSWORD to obtain session for the Exposure API
    • run npm test

    Keywords

    none

    Install

    npm i @eyevinn/enigma.io

    DownloadsWeekly Downloads

    7

    Version

    1.5.2

    License

    Apache-2.0

    Unpacked Size

    49 kB

    Total Files

    25

    Last publish

    Collaborators

    • martinstark
    • jobi
    • slowmove
    • bwallberg