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


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"
}

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