Versions Compared

Key

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

Introduction

This section describes BSS communication with AminoTV Channels v4 API

Authentication and authorisation 

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

In addition to API key authorization some clients can have IP white listing feature enabled, which will allow access only from exact IP's. 

Both API key and IP addresses allowed list are customer specific data and you should contact support person to obtain those.

Endpoints overview

Endpoint

HTTP method

Purpose

/api/channel/management/v4/channelsGETGet an index of channels./api/channel/management/v4/channelsPOSTCreate new channel

Introduction

This section describes BSS communication with AminoTV Channels v4 API

Authentication and authorisation 

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

In addition to API key authorization some clients can have IP white listing feature enabled, which will allow access only from exact IP's. 

Both API key and IP addresses allowed list are customer specific data and you should contact support person to obtain those.

Endpoints overview

Endpoint

HTTP method

Purpose

/api/channel/management/v4/channelsGETGet an index of channels.
/api/channel/management/v4/channelsPOSTCreate new channel
/api/channel/management/v4/channels/{channel_id}GETGet channel specified by id
/api/channel/management/v4/channels/{channel_id}PATCHUpdate channel specified by id
/api/channel/management/v4/channels/{channel_id}DELETEDelete channel specified by id and all related data

Entities 

ChannelResource

Up-to-date resource schema could be found on API documentation page Management Channel API v4 under schemas section.

{
Code Block
languageyml
themeMidnight
titleChannelResource example
collapsetrue
true
{
  "data": [
    {
      "id": "42",
      "type": "Channel",
      "attributes": {
        "name": [
          {
            "lang": "eng",
            "value": "English string"
          }
        ],
        "datadescription": [
    {      {
   "id": "42",         "typelang": "Channeleng",
      "attributes": {
        "namevalue": "English [string"
          {}
        ],
   "lang": "eng",    "images": [
       "value": "English string" {
         }     "image_type": "Thumbnail",
   ],         "alternate_access_description": ["Bruce Willis shooting a big gun at some bad guys, pew pew {pew",
            "langwidth_pixels": "eng"320,
            "valueheight_pixels": "English200,
string"           }
  "iso_639-2_lang": "fin",
      ],      "url": "https://www.demo.com/assets/img/thumbnails/movies/diehard.png"
  "images":  [      }
    {    ],
        "imagechannel_typenumber": "Thumbnail",
{
           "alternate_access_descriptiondefault": "Bruce1
Willis shooting a big gun at some bad guys, pew pew pew",
   },
        "widthmedia_pixelstype": 320,
   "video",
        "heightenabled_pixelsservices": 200,[
          {
 "iso_639-2_lang": "fin",             "url": "https://www.demo.com/assets/img/thumbnails/movies/diehard.png"
"type": "Live",
         }   "startover": false,
    ],         "channel_numberpause": false,
 {           "defaulttrickplay": 1false,
            "restrictions": {
     },         "mediaout_of_typehome": "video",false
        "enabled_services": [   }
       {   },
         "type": "Live", {
            "startovertype": false"Catchup",
            "pauseboundary_offset": false360,
            "trickplay": false,
            "restrictions": {
              "out_of_home": falsetrue
            }
          },
          {
            "type": "Catchup",
            "boundary_offsettype": 360"nPVR",
            "trickplayretention_time": false30,
            "restrictionswatch_ongoing": {
 false,
            "outboundary_of_homeoffset": true360,
            }
"trickplay": false,
         },         "restrictions": {
 {             "typeout_of_home": true
"nPVR",            }
"retention_time": 30,         }
   "watch_ongoing": false,    ],
        "boundary_offsetrestrictions": 360,
 {
          "trickplaygeoblocking": false,true
        },
   "restrictions": {      "channel_domains": [],
        "out_of_homevisibility": true{
          "start": 1605090698,
}          "end": }1605095698
        ]},
        "restrictionsdvb_info": {[
          "geoblocking":{
true         },   "type": "C",
    "channel_domains": [],         "visibilityonid": 123,
 {           "starttsid": 1605090698123,
            "endsid": 16050956984324,
        },    "quality": "SD"
   "dvb_info": [      }
    {    ],
        "typemetadata_provider_information": "C",
 [
          "onid": 123,{
            "tsidprovider": 123"ERICSSON",
            "sidexternal_id": 4324,"724693092"
          }
        "quality": "SD"]
      }
    }
        ],
        "metadata_provider_information": [
           ]
}

Name and description 

Name and description attributes can contain multiple values for each need language, we do not validate the values of those, only the language key which should be ISO 639-2 three letter code. 

Code Block
themeMidnight
titleMultiple names attribute
"name": [
  {
            "provider"lang": "ERICSSONeng",
    
       "external_id"value": "724693092"
       English string"
  },
  {
     ]
 "lang": "dut",
    }
 "value": "Dutch string"
  }
 
]
}

Name and description 

Name and description attributes can contain multiple values for each need language, we do not validate the values of those, only the language key which should be ISO 639-2 three letter code. 

You can store any string type data under value field, fore example JSON encoded string, just not forget to escape it before passing API.

Code Block
themeMidnight
titleMultiple names attribute
"name": [
  {
    "lang": "eng",
    "value": "English string"
  },
  {
    "lang": "dut",
    "value": "Dutch string"
  }
]

You can store any string type data under value field, fore example JSON encoded string, just not forget to escape it before passing API.

Code Block
themeMidnight
titleMultiple names attribute
"name": ["{\"option1\": \"value1\",\"option2\": \"value2\",\"option3\": \"value3\"}"
  },
  {
    "lang": "engdut",
    "value": "{\"option1\": \"value1\",\"option2\": \"value2\",\"option3\": \"value3\"}"
  },
  option2\": \"value2\",\"option3\": \"value3\"}"
  }
]
Warning
It is expected that client will handles that data parsing.

Images 

Images can store an array of objects, the image_type attribute could be used to identify image on client side.


Code Block
themeMidnight
titleMultiple names attribute
"images": [
  {
    "langimage_type": "dutThumbnail",
    "valuealternate_access_description": "{\"option1\": \"value1\",\"option2\": \"value2\",\"option3\": \"value3\"}"
  }
]
Warning
It is expected that client will handles that data parsing.

Images 

Images can store an array of objects, the image_type attribute could be used to identify image on client side.

Warning

It is up to client to decide which naming will be used and where to store images.

Code Block
themeMidnight
titleMultiple names attribute
"images": [Bruce Willis shooting a big gun at some bad guys, pew pew pew",
    "width_pixels": 320,
    "height_pixels": 200,
    "iso_639-2_lang": "fin",
    "url": "https://www.demo.com/assets/img/thumbnails/movies/diehard.png"
  },
  {
    "image_type": "Thumbnail small",
    "alternate_access_description": "Bruce Willis shooting a big gun at some bad guys, pew pew pew",
    "width_pixels": 32050,
    "height_pixels": 20050,
    "iso_639-2_lang": "fin",
    "url": "https://www.demo.com/assets/img/thumbnails/movies/diehard_small.png"
  },
  {
    "image_type": "Thumbnail small_option1",
    "alternate_access_description": "Bruce Willis shooting a big gun at some bad guys, pew pew pew",
    "width_pixels": 50,
    "height_pixels": 50,
    "iso_639-2_lang": "finpew pew",
    "urlwidth_pixels": "https://www.demo.com/assets/img/thumbnails/movies/diehard_small.png"320,
  }   {"height_pixels": 200,
    "image_typeiso_639-2_lang": "Thumbnail_option1fin",
    "alternate_access_descriptionurl": "Bruce Willis shooting a big gun at some bad guys, pew pew pew",
    "width_pixels": 320,
    "height_pixels": 200,
    "iso_639-2_lang": "fin",
    "url": "https://www.demo.com/assets/img/thumbnails/movies/diehard_option1.png"
  }
]

Domains 

f all existing channelsdsd 
https://www.demo.com/assets/img/thumbnails/movies/diehard_option1.png"
  }
]
Warning

It is up to client to decide which naming will be used and where to store images.

Domains 

The channel_domains works same as well-known tagging. In that case tag is called domain. There client could enter multiple tags mark channel to belong to some domain.

For example to mark channel as adult client can add "adult" domain and then rely on it when fetching data for users. Same with other features.


Code Block
themeMidnight
titleMultiple names attribute
"channel_domains": [
	"adult",
	"HD",
	"testing"
	"free"
]


Warning

It is up to client to decide which channel domains will be used and set for channels and to sort those out for users.


Use cases 

Fetch channels

Get all channels

By calling Get an index of channels endpoint client could get paginated list of all existing channels. The default pagination limit is 100 items per page.

Get one channel

By calling Get channel endpoint client could obtain concrete channel data.

Create channel

By calling Create channel endpoint client could create new channel.

Create channel with required values

example request

list default values

Create channel with all fulfilled values

example request


Multiple descriptions, names, channel numbers, domains


Multiple images

Update channel


Delete channel


How to implement channel operators behaviour

Migration guide

Known issues and limitations

Info

Info level limitation example

Warning

Warning level limitation example

Postman collection


Table of Contents

Table of Contents

Child Pages

Child pages (Children Display)