Publishing API (ENG)

Publishing API (ENG)

INTRODUCTION

This API is used to query for media assets that are published. The API includes various calls for getting data for published assets in your account.

API PATH

/api/publishing/

API: VERSION 05

GET ASSETS

REQUEST

/api/publishing/getAssets?version=05

Parameters:

NameValueRequirementInfo
organizationIdnumberMandatory 
tokenstringMandatory 
groupItemIdnumber(or comma separated multiple)MandatoryId for the group item for which assets are needed. Can be single ID or comma separated list of IDs
userIdnumberOptionalIf this parameter is not supplied then only public assets will be returned
languageIdstringOptional 
userAgentstringOptionalIf given, will take precedence over the auto-detected device type
keywordstringOptionalwill search keyword in name and description
orderBystringOptionalValid values: "publishStart", "title"
orderstringOptional (Mandatory if orderBy given)"asc", "desc"
limitnumberOptional Optionalnumber of items needed
seriesboolean
Optional (Default true)TRUE: will only fetch the latest asset in series. FALSE: will fetch all assets.
podcastsboolean
Optional (Default false)
TRUE: asset data has podcast group details. FALSE: Will only have basic info
recursiveboolean
Optional (Default false)
TRUE: will fetch assets from subgroups too

A token consists of 42 character long hex value. The value has two different parts:

  • Version [8 bits / 2 chars] - current version
  • Current time [32 bits / 8 chars] - current timestamp in number of seconds since 1970 UTC
  • Signature [128 bits / 32 chars] - the MD5 hash of (organizationId + ":" + groupItemId + ":" + Current time + ”:” + Key), where ’+’ is a string concatenation

Key - A secret key that is only present on the client creating the token and the server verifying the token and is defined for the organization.

Example:
Version = ”05”
organizationId = ”14806”
groupItemId = ”12345”

Current time = 1222516160 (Sat Sep 27 13:49:20 CEST 2008) -> ”48de1dc0”
Key = ”secret”
Signature = MD5("14806:12345:48de1dc0:secret") -> ”cb8fd8167db7e97707301d5a2d03886c”

Then token would be "0548de1dc0cb8fd8167db7e97707301d5a2d03886c".

https://suite.icareus.com/api/publishing/getAssets?version=03&organizationId=14806&groupItemId=12345&token=0548de1dc0cb8fd8167db7e97707301d5a2d03886c

RESPONSE

RESPONSE INFO

The response of getAssets is based on how the content in configured in Assets Management. Public assets are returned for all users & guests. Private assets are only returned for valid users (so userId has to be supplied in order to retrieve private assets)

SUCCESS

{
  "assets":[
    {
      "coverImageSmall":"",
      "series":[
        {
          "id":1516002,
          "name_stripped":"Kulttuuri ja vapaa-aika",
          "name":"Kulttuuri ja vapaa-aika"
        }
      ],
      "ingress":"ingress",
      "publishEnd":2524608000000,
      "folders":[
        {
          "id":1406601,
          "name_stripped":"Kulttuuri",
          "name":"Kulttuuri"
        },{
          "id":1406605,
          "name_stripped":"Kaupunginvaltuusto",
          "name":"Kaupunginvaltuusto"
        }
      ],
      "date":1594271160000,
      "contentTypes":[],
      "episodeNumber":0,
      "publisher":"Publish company",
      "releaseYear":1997,
      "id":1516501,
      "thumbnailSmall":"https://suiterc.icareus.com/image/image_gallery?img_id=1517207%22,
      "description":"<p>Suspendisse ullamcorper, leo in placerat eleifend. felis tortor. Donec sodales viverra diam vitae dictum.<\/p>",
      "name":"A video with a title",
      "actors":"Mike Miller, Jack Pickelson",
      "accessInfo":{"products":[]},
      "bannerImageSmall":"",
      "groups":"Kulttuuri | Kaupunginvaltuusto | Koulutus","programName":"",
      "isPodcast":false,
      "tags":"",
      "coverImageLarge":"",
      "productionCompany":"",
      "contentRatings":[],
      "isSerie":false,
      "bannerImageLarge":"",
      "isPodcastAsset":false,
      "seasonNumber":0,
      "coverImageMedium":"",
      "director":"Director Joe",
      "podcasts":[],
      "duration":60,
      "views":0,
      "quality":1,
      "thumbnailLarge":"https://suiterc.icareus.com/image/image_gallery?img_id=1517209%22,
      "bannerImageMedium":"",
      "rating":0,
      "groupItemIds":"1406601,1406605,1556001",
      "avMood":"",
      "podcast": {
        "coverImageSmall":"",
        "coverImageLarge":"",
        "coverImageMedium": "",
        "coverImageUrl": "",
        "bannerImageSmall": "",
        "bannerImageMedium": "",
        "bannerImageLarge": "",
        "bannerImageUrl": "",
        "thumbnailSmall": "",
        "thumbnailMedium": "",
        "thumbnailLarge": "",
        "thumbnailImageUrl": "",
        "iconImageUrl": "",
        "id": 500500,
        "title": "Podcast group title",
        "description": "Long description"
      }
    }
  ],
  "status":"ok"
}

Response fields:

Field nameDescription
METADATA 
idasset's unique id
embedUrlURI if you want to embed asset to your page
IMAGE FIELDS 
bannerImageSmall, bannerImageMedium, bannerImageLargeURI for banner image
coverImageSmall, coverImageMedium, coverImageLargeURI for cover image
thumbnailSmall, thumbnailMedium, thumbnailLargeURI for thumbnail image
ASSET INFOMostly selfexplanatory
name, description, ingress 
actors, director, publisher, productionCompany 
releaseYearReleast year (full year)
durationDuration in seconds
PUBLISH TIMES These are times when asset in available in the service
datePublish start time
PublishEndPublish end time
CATEGORY / GROUP INFO 
foldersList of asset's group (id, name and name_stripped)
groupsList of group's titles separated with |
groupItemsIdsList of group's id's separated with ,
SERIES INFO 
isSerieBoolean value: Does asset belong to any serie
seriesSeries info (id, name, name_stripped)
PODCAST INFO 
isPodcastAssetBoolean value: Is asset a podcast
podcastsPodcast group indo (id, name, name_stripped)
podcastOnly returned if podcasts=true. Returns all information of podcast group (image etc)

ERROR

{
    "message": "Unable to retrieve asset list",
    "status": "error"
}

API: VERSION 03

GET ASSETS

REQUEST

/api/publishing/getAssets?version=03

Parameters:

Name
Value
Requirement
Info
organizationId
number
Mandatory
 
token
string
Mandatory
 
groupItemId
number(or comma separated multiple)
Mandatory
Id for the group item for which assets are needed. Can be single ID or comma separated list of IDs
userId
number
Optional
If this parameter is not supplied then only public assets will be returned
languageId
string
Optional
 
userAgent
string
Optional
If given, will take precedence over the auto-detected device type
keyword
string
Optional
will search keyword in name and description
orderBy
string
Optional
Valid values: "publishStart", "title"
order
string
Optional (Mandatory if orderBy given)
"asc", "desc"
limit
number
Optional Optional
number of items needed

A token consists of 42 character long hex value. The value has two different parts:

  • Version [8 bits / 2 chars] - current version
  • Current time [32 bits / 8 chars] - current timestamp in number of seconds since 1970 UTC
  • Signature [128 bits / 32 chars] - the MD5 hash of (organizationId + ":" + groupItemId + ":" + Current time + ”:” + Key), where ’+’ is a string concatenation

Key - A secret key that is only present on the client creating the token and the server verifying the token and is defined for the organization.

Example:
Version = ”03”
organizationId = ”14806”
groupItemId = ”12345”

Current time = 1222516160 (Sat Sep 27 13:49:20 CEST 2008) -> ”48de1dc0”
Key = ”secret”
Signature = MD5("14806:12345:48de1dc0:secret") -> ”cb8fd8167db7e97707301d5a2d03886c”

Then token would be "0348de1dc0cb8fd8167db7e97707301d5a2d03886c".

https://suite.icareus.com/api/publishing/getAssets?version=03&organizationId=14806&groupItemId=12345&token=0348de1dc0cb8fd8167db7e97707301d5a2d03886c

RESPONSE

RESPONSE INFO

The response of getAssets is based on how the content in configured in Assets Management. Public assets are returned for all users & guests. Private assets are only returned for valid users (so userId has to be supplied in order to retrieve private assets)

SUCCESS

{
    "assets": [
        {
            "coverImageSmall": "",
            "coverImageLarge": "",
            "coverImageMedium": "",
            "date": 1423489184000,
            "id": 17394,
            "thumbnailSmall": "",
            "thumbnailLarge": "",
            "thumbnailMedium": "",
            "description": "",
            "name": "Test asset 1",
            "groups": "asdasd | asdasd | asdasd | fgsgsdg | asdasd",
            "tags": "",
        },
        {
            "coverImageSmall": "",
            "coverImageLarge": "",
            "coverImageMedium": "",
            "date": 1423489184000,
            "id": 17394,
            "thumbnailSmall": "",
            "thumbnailLarge": "",
            "thumbnailMedium": "",
            "description": "",
            "name": "Test asset 1",
            "groups": "asdasd | asdasd | asdasd | fgsgsdg | asdasd",
            "tags": "",
        }
    ],
    "status": "ok"
 
}

ERROR

{
    "message": "Unable to retrieve asset list",
    "status": "error"
}

GET ASSET

REQUEST

/api/publishing/getAsset?version=03

Parameters:

Name
Value
Requirement
Info
organizationId
number
Mandatory
 
token
string
Mandatory
 
assetId
number
Mandatory
 
languageId
string
Mandatory
 
userAgent
string
Optional
If given, will take precedence over the ato-detected device type

A token consists of 42 character long hex value. The value has two different parts:

  • Version [8 bits / 2 chars] - current version
  • Current time [32 bits / 8 chars] - current timestamp in number of seconds since 1970 UTC
  • Signature [128 bits / 32 chars] - the MD5 hash of (organizationId + ":" + assetId + ":" + languageId + ":" + Current time + ”:” + Key), where ’+’ is a string concatenation

Key - A secret key that is only present on the client creating the token and the server verifying the token and is defined for the organization.

Example:
Version = ”03”
organizationId = ”14806”
assetId = ”12345”
languageId = ”en_US”

Current time = 1222516160 (Sat Sep 27 13:49:20 CEST 2008) -> ”48de1dc0”
Key = ”secret”
Signature = MD5("14806:12345:en_US:48de1dc0:secret") -> ”42f784cca9a80b682991e96a49d1da7e”

Then token would be "0348de1dc042f784cca9a80b682991e96a49d1da7e".

https://suite.icareus.com/api/publishing/getAsset?version=03&organizationId=14806&assetId=12345&token=0348de1dc042f784cca9a80b682991e96a49d1da7e

RESPONSE

SUCCESS

{
            "coverImageSmall": "",
            "coverImageLarge": "",
            "coverImageMedium": "",
            "date": 1423489184000,
            "id": 17394,
            "properties": "",
            "thumbnailSmall": "",
            "thumbnailLarge": "",
            "thumbnailMedium": "",
            "description": "",
            "name": "Test asset 1",
            "groups": "asdasd | asdasd | asdasd | fgsgsdg | asdasd",
            "tags": "",
            "status:":"ok"
}

ERROR

{
    "status": "error"
}

GET ASSET PLAYBACK URLS

REQUEST

/api/publishing/getAssetPlaybackUrls?version=03

Parameters:

Name
Value
Requirement
Info
organizationId
number
Mandatory
 
token
string
Mandatory
 
assetId
number
Mandatory
 
userId
number
Optional
 
languageId
string
Optional
 
userAgent
string
Optional
If given, will take precedence over the ato-detected device type

A token consists of 42 character long hex value. The value has two different parts:

  • Version [8 bits / 2 chars] - current version
  • Current time [32 bits / 8 chars] - current timestamp in number of seconds since 1970 UTC
  • Signature [128 bits / 32 chars] - the MD5 hash of (organizationId + ":" + assetId + ":" + Current time + ”:” + Key), where ’+’ is a string concatenation

Key - A secret key that is only present on the client creating the token and the server verifying the token and is defined for the organization.

Example:
Version = ”03”
organizationId = ”14806”
assetId = ”12345”

Current time = 1222516160 (Sat Sep 27 13:49:20 CEST 2008) -> ”48de1dc0”
Key = ”secret”
Signature = MD5("14806:12345:en_US:48de1dc0:secret") -> ”42f784cca9a80b682991e96a49d1da7e”

Then token would be "0348de1dc042f784cca9a80b682991e96a49d1da7e".

https://suite.icareus.com/api/publishing/getAsset?version=03&organizationId=14806&assetId=12345&token=0348de1dc042f784cca9a80b682991e96a49d1da7e

RESPONSE

SUCCESS RESPONSES


No Access allowed, products available to purchase for content access
{
 
    "status": "ok",
    "urls": [ ],
    "access": 0,
    "products": [
        {
            "recurring": true,
            "productId": 37542
        },
        {
            "recurring": false,
            "productId": 50835
        }
    ]
 
}

Access allowed, user has content rights: Either owns the package or asset does not belong to any package
{
 
    "status": "ok",
    "urls": [
        {
            "id": 11316,
            "name": "SD 360p, 640x360 (512kbps)",
        },
        {
            "id": 11318,
            "name": "SD 360p, 640x360 (1024kbps)",
        },
        {
            "id": 11504,
            "name": "SD 576i, 1024x576 (1280kbps)",
        }
    ],
    "access": 1
 
}

API: VERSION 02

METHODS

GET ASSETS

Fetch all assets for the account/organization

REQUEST

/api/publishing?version=02&action=getAssets

Parameters:

Name
Value
Requirement
Info
organizationId
number
Mandatory
 
token
string
Mandatory
 
groupItemId
number(or comma separated multiple)
Mandatory
Id for the group item for which assets are needed. Can be single ID or comma separated list of IDs
languageId
string
Optional
 
userAgent
string
Optional
If given, will take precedence over the auto-detected device type
keyword
string
Optional
will search keyword in name and description
orderBy
string
Optional
Valid values: "publishStart", "title"
order
string
Optional (Mandatory if orderBy given)
"asc", "desc"
limit
number
Optional Optional
number of items needed

RESPONSE

SUCCESS

{
    "assets": [
        {
            "coverImageSmall": "",
            "coverImageLarge": "",
            "coverImageMedium": "",
            "presets": [
                {
                    "id": 0,
                    "name": "preset1",
                    "url": "http://playback.url/based/on/device/type"
                },
                {
                    "id": 1,
                    "name": "preset2",
                    "url": "http://playback.url2/based/on/device/type"
                },
            ],
            "date": 1423489184000,
            "id": 17394,
            "thumbnailSmall": "",
            "thumbnailLarge": "",
            "thumbnailMedium": "",
            "description": "",
            "name": "Test asset 1",
            "groups": "asdasd | asdasd | asdasd | fgsgsdg | asdasd",
            "tags": "",
        },
        {
            "coverImageSmall": "",
            "coverImageLarge": "",
            "coverImageMedium": "",
            "presets": [
                {
                    "id": 0,
                    "name": "preset1",
                    "url": "http://playback.url/based/on/device/type"
                },
                {
                    "id": 1,
                    "name": "preset2",
                    "url": "http://playback.url2/based/on/device/type"
                },
            ],
            "date": 1423489184000,
            "id": 17394,
            "thumbnailSmall": "",
            "thumbnailLarge": "",
            "thumbnailMedium": "",
            "description": "",
            "name": "Test asset 1",
            "groups": "asdasd | asdasd | asdasd | fgsgsdg | asdasd",
            "tags": "",
        }
    ],
    "status": "ok"
 
}

ERROR

{
    "message": "Unable to retrieve asset list",
    "status": "error"
}

GET ASSET

Fetch data for a single asset.

REQUEST

/api/publishing?version=02&action=getAsset

Parameters:

Name
Value
Requirement
Info
organizationId
number
Mandatory
 
token
string
Mandatory
 
assetId
number
Mandatory
 
language
string
Optional
 
userAgent
string
Optional
If given, will take precedence over the ato-detected device type

RESPONSE

SUCCESS

{
            "coverImageSmall": "",
            "coverImageLarge": "",
            "coverImageMedium": "",
            "urls": [
                {
                    "id": 0,
                    "name": "preset1url",
                    "url": "http://playback.url/based/on/device/type"
                },
                {
                    "id": 1,
                    "name": "preset2url",
                    "url": "http://playback.url2/based/on/device/type"
                },
            ],
            "date": 1423489184000,
            "id": 17394,
            "properties": "",
            "thumbnailSmall": "",
            "thumbnailLarge": "",
            "thumbnailMedium": "",
            "description": "",
            "name": "Test asset 1",
            "groups": "asdasd | asdasd | asdasd | fgsgsdg | asdasd",
            "tags": "",
            "status:":"ok"
}

ERROR

{
    "status": "error"
}

GET TOP ASSETS

REQUEST

/api/publishing/getTopAssets

Parameters:

Name
Value
Example
Requirement
Info
organizationId
number
241824
Mandatory
Organization ID of the account 
limit
number
10 
Optional
How many assets should be returned. By default 10 assets will be returned. 
days
number

Optional
How many days should be taken into account: e.g. top videos of previous "day" or "week", or "month". Does not take into account current day. If not set or is "0", returns all-time. 
deviceTypes
list of numbers 
384575,384582
Optional
Comma separated list of device type Ids of the devices that are taken into account. By default returns for all devices 
metric
text
"count" 
Optional
Metric that is used. Supports "impressions" - how many times video was loaded but not played and "count" - total number of times the video was played. By default uses "count". 
groupItemId
number 
393220
Optional 
If set, gets the top from this Group Item
userId
number 
393220
Optional 
If not set, returns only public assets

EXAMPLES

Get top 5 assets from that organization:
http://suite.icareus.com/api/publishing/getTopAssets?organizationId=241824&limit=5

Get top 10 assets for the previous week:
http://suite.icareus.com/api/publishing/getTopAssets?organizationId=241824&days=7

Get top 10 assets from the given category:
http://suite.icareus.com/api/publishing/getTopAssets?organizationId=241824&groupItemId=241936

Get top 10 assets watched on the given devices:
http://suite.icareus.com/api/publishing/getTopAssets?organizationId=241824&deviceTypes=354178,214753

Get 10 assets with the highest impression:
http://suite.icareus.com/api/publishing/getTopAssets?organizationId=241824&metric=impressions

RESPONSES

Normal response:

{
    "assets":[
        {
            "title":"Jarva: Eksoten integraatio toimii ja tuottaa tuloksia",
            "assetId":248976,
            "views":5,
            "description":"Etelä-Karjalan integraatio alkaa jo toimia ja tuloksetkin näkyä.",
            "deviceType":0,
            "groupItemNames":"Editor's choice",
            "device":""
        },
        {
            "title":"Kuntaliiton hallitukselta yksimielinen sote-lausunto",
            "assetId":248852,
            "views":2,
            "description":"Kuntaliitto esittää kansanvallan vahvistamista sote-uudistuksessa.",
            "deviceType":0,
            "groupItemNames":"Editor's choice | Kuntaliitto | UUSIMMAT",
            "device":""
        }
    ],
    "status":"ok",
}

Error response:

{
    "message":"Unable to retrieve assets",
    "status":"error",
}

Get Top Shows

REQUEST

/api/publishing

Parameters:
Name
Value
Requirement
Info
organizationId
number
Mandatory
Suite Organization ID
token
string
Mandatory

languageId
string
Optional
Default: en_US
days
number
Optional
Amount of days to fetch top shows from, default: 30
amount
number
Optional
How many top shows to fetch, default: 10
groupTypeName
string
Optional
What group type to treat as 'shows', default: series
Token is generated the same way as it is for the 'getAssets' call, with the exception that here the groupItemId part of the token should always be an emptry string. Remember to also pass version "01" when generating the token.

VIDEO TOKEN FORMAT

INTRODUCTION

The following describes the format for a token based authentication to open video streams from CDN or streaming servers. The format is supported by Icareus Suite out-of-box, alternatively other formats can be used as well.

TOKEN FORMAT

A token consists of 50 character long hex value.

The value has four different parts:

  • Version [8 bits/2 chars] – always 1 (“01”)
  • IP-address [32 bits/8 chars] – the IP-address that the client has (network byte-order)
  • Expire date [32 bits/8 chars] – timestamp when the token should expire in number of seconds since 1970 UTC (network byte-order)
  • Signature [128 bits/32 chars] - MD5 sum av {IP-address + ”:” + Expire date + ”:” + Key + ”:” + Path}, where  ’+’ is a string concatenation

Other vales used:

  • Key-- A secret key that is only present on the server creating the token and the server verifying the token.
  • Path – The path of the file/directory/stream to protect.

Example:
Version = 1 -> ”01”
Address = 1.2.3.4 -> “01020304”
Expire date = 1222516160 (Sat Sep 27 13:49:20 CEST 2008) -> ” 48de1dc0”
Key = ”secret”
Path= ””
Signature = ”010102030448de1dc018b8b56d361b0f03b8fbc7fe1c2090a9”

Signature is here MD5(”01020304:48de1dc0:secret:”).



    • Related Articles

    • Archive API (ENG)

      INTRODUCTION This API is used to manage the content within the Archive, actions like add asset, edit asset and delete asset. All calls must be made by supplying the unique token for your organization. API PATH /api/archive API CALLS ADD ASSET V.2 ...
    • Analytics API (ENG)

      INTRODUCTION This API stores video access/usage statistics for the linear channels and vod items. API PATH /api/analytics API METHODS ADDING NEW RECORD Adds a new analytics record of either on-demand video usage or linear channel viewing statistics ...
    • OEMBED API (ENG)

      INTRODUCTION This API is used to query for oEmbed objects for video page URL(s) on Icareus Suite sites. Note Suite oEmbed API only supports JSON responses for now API PATH /api/oembed API GET OEMBED OBJECT REQUEST /api/oembed Parameters: Name Value ...
    • Devices API (ENG)

      INTRODUCTION Devices API is used to register devices to the server and get device specific information/configurations from the server. API PATH /api/devices It is recommended to use POST request. Latest version: 02 API METHODS REGISTER A DEVICE ...
    • Account Management API (ENG)

      INTRODUCTION The API is used to manage Icareus Suite users and organisations. USE CASES Adding sub organization API Calls flow to add sub organization: Create an organization Add User Assign User Assign User role API PATH /delegate/account API ...