VOD PUBLICATIONS


Publications represent some content at a given Destination. In the case of VOD Publications, this is a video file either uploaded or to be uploaded.

VOD Publications contain metadata for the video (and associated Destination object). They also contain state information about the uploading process.

VOD Publications are backed by Media Assets, which represent the MP4 content itself.

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 detailed 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).
  • 1 = Scheduled - the Publication is awaiting further action (Uploading/Publishing).
  • 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.

In addition to these states, it is recommended to check the isUnavailable property within the details object. This property is True if the object is not found on the Target platform.


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": "{...}"
        }
    ]
}

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

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

Response: 200 OK and the JSON containing the Publication


PUT /vodpublications/{id}

Update a VOD Publication.

Request Body:

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

See VOD Publication Details for more information 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