VOD PUBLICATIONS


VOD Publications represent metadata and the existance of VOD content at a given Destination. They also represent state information about this content, even before it exists on the Target.

VOD Publication Object

A VOD Publication is defined as the following structure:

{
    "id": "16e4d793-0484-4923-a4d8-3e3a0604d725",
    "target": 0,
    "destinationId": "8b8d0b78-60f0-4257-b2e7-13874ecd28f6",
    "destinationName": "Example Destination",
    "transactionId": "bfe6e52b-a5c5-47f6-b77d-be0d80ff46cf",
    "contentId": "my-content-id",
    "dateCreated": "2018-10-05T12:28:14Z",
    "dateCompleted": "",
    "dateStarted": "2018-10-05T12:29:39Z",
    "publicationState": 3,
    "publicationStateString": "Completed",
    "details": {},
    "callbacks": [
        {
            "id": "4bf271e2-1544-4343-ad43-15b6d6d2cdd8",
            "publicationId": "16e4d793-0484-4923-a4d8-3e3a0604d725",
            "url": "",
            "lastTriggered": "2018-10-05T12:29:40Z"
        }
    ]
}

The details property differs per Target and is here.

Live Publications match VOD Publications in structure, except for the Details property. This means you can work with both generically.


VOD Publication States

A VOD Publication can go through the following states:

0 = Processing          - the Publication is undergoing additional processing (i.e. MP4 download & upload).
3 = Completed           - the Publication has been uploaded successfully.
4 = FailedDestination   - the Publication's Destination is not active.
5 = FailedMediaAsset    - the Publication has failed to download and/or upload to the Target.
6 = FailedPublication   - the Publication is lacking details from the Target or IsUnavailable is true.

Supported Actions

Almost all VOD Publication actions require both the Id of the Publication and the Id of the Destination in order to properly identify the Publication for the action.

GET /vodpublications/

Get multiple VOD Publications and refine by other parameters.

Query Parameters:

targetFilter: {string} - Optional. Specify the Target (i.e. 'Facebook') to filter to.

contentIdFilter: {string} - Optional. Specify a value to filter the ContentId to include (i.e. any publication with a content ID including the specified string).

queryTarget: {bool} - Optional. Should the Target be queried for the additional details?

noCache: {bool} - Optional. Set to true to bypass any existing cache.

orderBy: {PublicationDateField} - Optional. Set to the Date field you wish to order by (Created, Started, Completed)

from: {string} - Optional. Set to the ISO8601 DateTime string to search From.

to: {string} - Optional. Set to the ISO8601 DateTime string to search To.

pageNumber: {int} - Optional. Set to the Page Number to search by.

pageSize: {int} - Optional. Set to the Page Size to search by.

Response: 200 OK and a paginated set of Publications.

GET /vodpublications/transactionId/{transactionId}

Get multiple VOD Publications by TransactionId and refine by other parameters.

Query Parameters:

transactionId: {GUID} - Required. Required to identify the publication(s).

targetFilter: {string} - Optional. Specify the Target (i.e. 'Facebook') to filter to.

queryTarget: {bool} - Optional. Should the Target be queried for the additional details?

noCache: {bool} - Optional. Set to true to bypass any existing cache.

Response: 200 OK and an array of Publications.

GET /vodpublications/contentId/

Get a single publication by ContentId and DestinationId and refine by other parameters.

Query Parameters:

contentId: {string} - Required to identify the publication.

destinationId: {GUID} - Required to identify the publication.

queryTarget: {bool} - Optional. Should the Target be queried for the additional details?

noCache: {bool} - Optional. Set to true to bypass any existing cache.

Response: 200 OK and a Publication.

GET /vodpublications/{id}

Get a single publication by Id and DestinationId.

Query Parameters:

destinationId: {GUID} - Required to identify the publication.

queryTarget: {bool} - Optional. Should the Target be queried for the additional details?

noCache: {bool} - Optional. Set to true to bypass any existing cache.

Response: 200 OK and a Publication.

POST /vodpublications/

Create multiple VOD Publications, using the specified Destination & PublicationJson.

Request Body:

{
    "publications": [
        {
            "contentId": "example-contentId",
            "destinationId": "72e196a4-e3a3-4ad6-b15c-2c04f9ee3d9c",
            "publicationJson": "{...}"
        }
    ]
}

Response: 200 OK and the JSON containing the Publication

Notes:

It is important to ensure that the JSON format is correct for the Destination Target.

All publications that get created in the same request will have the same transactionId value.

PublicationJson

For details on what this should be, please refer to the Add Details for your desired Target here.

PUT /vodpublications/{id}

Update a VOD Publication.

Request Body:

{
    "destinationId": "8b8d0b78-60f0-4257-b2e7-13874ecd28f6",
    "publicationJson": "{...}"
}

See PublicationJson for details on what can be submitted. It is important to ensure that the JSON format is correct for the Destination Target.

Response: 200 OK and the JSON containing the Publication

PUT /vodpublications/publish/

Publish a single publication by Id and DestinationId.

Support varies by Target type._

Response: 200 OK and an operation response:

{
    "description": "The Publication has been published.",
    "isSuccessful": true
}

PUT /vodpublications/unpublish/

Unpublish a single publication by Id and DestinationId.

Support varies by Target type.

Response: 200 OK and an operation response:

{
    "description": "The Publication has been unpublished.",
    "isSuccessful": true
}

DEL /vodpublications/{id}

Delete a single publication by Id and DestinationId.

Response: 200 OK

DEL /vodpublications/all/{contentId}

Delete multiple VOD Publications by ContentId.

Response: 200 OK