Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introduction

This section describes BSS communication with AminoTV Streams v4 API. Products and user licenses are manageable through License Management API

The license management API consist of two parts: licenses management and products management

Introduction

Streams v4 API allow clients (including proxy) to fetch stream URLs. No caching is used with those the endpoints.

In order to use a service, the client must first be issued an API keyThe endpoints return all available stream types (e.g.: hls, mss, dash), it is up to the client to choose the stream they prefer.

Info
titleStream protection

Currently the endpoints support EZDRM and plain (clear) streams.

Endpoints overview

IdEndpointHTTP methodPurpose
getChannelStreams/api/streams/v4/liveGETGet stream URLs for channel.
getRecordingStreams/api/streams/v4/recordingGETGet stream URLs for recording.

Entities overview

The resources descriptions could be found on API documentation page Streams v4 under schemas section.

StreamResource

Typical stream resource may look like the one below.

Code Block
languagejs
themeMidnight
titleStreamResource example
{
    "id": "livestreamType-100001-hls",
    "type": "Stream",
    "attributes": {
        "type": "hls",
        "url": "https://org-01.amino.tv/drm/ezdrm.isml/playlist.m3u8",
        "drm": {
            "provider": "EZDRM",
            "fairplay": {
                "content_id": "2484bd14-0000-0000-0000-5c89a289d7c5",
                "la_url": "https://fps.ezdrm.com/api/licenses/2484bd14-0000-0000-0000-5c89a289d7c5",
                "cert": "https://org-01.amino.tv/fairplay.cer"
            },
            "widevine": {
                "content_id": "WTJoaGJtNWxiweE53PT0=",
                "la_url": "https://widevine-dash.ezdrm.com/proxy?pX=000000"
            },
            "playready": {
                "content_id": "WTJoaGJtNWxiweE53PT0=",
                "la_url": "https://playready.ezdrm.com/cency/preauth.aspx?pX=000000"
            }
        }
    }
}

DRM

providers support

Irdeto integration

If Irdeto DRM and rights management integration is enabled for customer environment then all the calls which create/delete licenses will force Irdeto entitlements creation/deletion. 

The management of Irdeto products is not supported within this API, which means that client is obligated to take care of creating/deleting needed products by themselves.

Postman collection

<todo: postman_collection.tar.gz>

"drm" attribute is optional, and schema may be varied in different DRM protections.

Authorization

All endpoints support API key authorization. The header named 'Authorization' with content "Apikey PUT_YOUR_API_KEY_HERE" must be passed with request.

API key is customer specific data and you should contact support person to obtain those.

Use Cases

Get streams by channel id

Code Block
themeMidnight
curl -X 'GET' \
  'https://{apidomain}/api/streams/v4/live?filter%5Btv_channel_id%5D=100' \
  -H 'accept: application/vnd.api+json' \
  -H 'Authorization: Apikey {PUT_YOUR_API_KEY_HERE}'

Get streams by external epg id

Code Block
themeMidnight
curl -X 'GET' \
  'https://{apidomain}/api/streams/v4/recording?filter%5Bexternal_epg_id%5D=12345' \
  -H 'accept: application/vnd.api+json' \
  -H 'Authorization: Apikey {PUT_YOUR_API_KEY_HERE}'

Postman collection

View file
namestreams_v4_postman_collection.zip
height250

Postman collection was created which can be used to explore API, use cases and has possibility to configure it to use with client environment or with mocked environment:  

In the archive there is a collection itself and example mock environment. Both need to be imported into postman.

The collection consists of 3 2 folders:

API spec - just a plain listing of all available calls, those are not mocked.

UseCase - the folder contains typical API use cases, all of those are mocked and contain complete examples with requests and responses.

Table of Contents