Release notes 2022
2022r9
Fix for publication record set to null in linear schedule API
In a previous version, a fix was done for when a null value was sent for the publicationRecord attribute on POST or PUT /fullDays call of the linear schedule API. (See version 2022r7)
However, a crash still occurred when using it for the POST or PUT /transmissions calls.
This issue has also been fixed. With the new version of the YAML, the following response will also be returned:
[
{
"statusCode": "422",
"message": "Operation cannot be completed due to violations",
"timestamp": "2022-11-15T13:14:22Z",
"concept": "Transmission",
"id": "8067318812",
"errors": [
{
"errorCode": "LINEARSCHEDULE-00031",
"description": "Publication record should be an object",
"data": []
}
]
}
]
Fix for title in GET /transmission call of linear schedule API
Previously, when executing a GET /transmissions/:transmissionId: call, the title attribute returned the Title of a transmission, which is not the most useful title.
{
"title": "Friday blockbuster",
"transmissionId": "6584019812",
"channel": "MgX",
...
}
This issue has been fixed. The title attribute now returns the head title.
{
"title": "AVENGERS: ENDGAME",
"transmissionId": "6584019812",
"channel": "MgX",
...
}
Note that in the POST and PUT calls, the title still corresponds to the Title field as the head title cannot be edited.
2022r8
Fix for empty contentId in POST /fullDays call of linear schedule API
Previously, when you would send a POST /fullDays call with an empty contentID, the BAPI service would crash.
This issue has been fixed. It is now possible to create transmissions without content linked.
2022r7
Transmission parental rating in GET /transmission call of linear schedule API
Previously, in the linear schedule API, the parental rating of a transmission could only be consulted on its publication record.
From this version, the transmissionParentalRating attribute has been added to the transmission attributes in the response of the GET/transmissions/{transmissionId} call:
{
"title": null,
"transmissionId": "7520133812",
"channel": "MgX",
"scheduleVersion": "Active",
"template": null,
...
"live": false,
"transmissionParentalRating": "6",
"publicationRecord": null,
"contractId": null,
"contractNumber": null,
...
}
Fixes for POST /fullDays call with publication record in linear schedule API
When you create transmissions on linear channels without a linear publication system, the transmissions created on that channel will also not have a publication system. When you later do define a system on the channel and choose not to update the existing transmissions, they will remain without a publication system.
Previously, when you would send a POST /fullDays call to update such a transmission with the following body, then the system would crash.
{
"channel": "Regional",
"scheduleVersion": "Active",
"date": "2022-09-08",
"transmissions": [
{
"title": "Avengers",
"transmissionId": "8378517812",
"startTime": "14:00",
"duration": "02:00:00",
"announcedTime": "14:00",
"contentId": "3261554527",
"publicationRecord": {
"translatedTitle": "string",
"episodeTitle": "string",
"episodeNumber": 0,
"seriesTitle": "string",
"translatedEpisodeTitle": "string"
}
}
]
}
This was because the call included attributes to create or update a publication record, which cannot be done without a publication system.
Similarly, whenever you would have the following in your call, the system would crash: "publicationRecord": null
This is because a publication record is a separate object which cannot be left as null.
These issues have been fixed.
From this version, the following response is shown in the first scenario:
[
{
"statusCode": "422",
"message": "Operation cannot be completed due to violations",
"timestamp": "2022-11-15T14:06:56Z",
"concept": "Transmission",
"id": "8067318812",
"errors": [
{
"errorCode": "LINEARSCHEDULE-00025",
"description": "For transmission I Used to Be Normal no program guide record can be created.
Please, provide a press publication system for the transmission ",
"data": [
"I Used to Be Normal"
]
}
]
}
]
The following response is shown for the second scenario:
[
{
"statusCode": "422",
"message": "Operation cannot be completed due to violations",
"timestamp": "2022-11-15T13:14:22Z",
"concept": "Transmission",
"id": "8067318812",
"errors": [
{
"errorCode": "LINEARSCHEDULE-00031",
"description": "Publication record should be an object",
"data": []
}
]
}
]
Fix for overwriting transmissions with POST /fullDays in linear schedule API
Previously, when you had a certain broadcast day with a regular transmission and a split transmission, and you would send a POST /fullDays call with the overwrite parameter set to true, the system would crash because with the overwrite parameter, all transmissions would be deleted but it could not delete the split transmission.
This issue has been fixed. From now on, in this scenario, the following error is returned:
{
"statusCode": "422",
"message": "Operation cannot be completed due to violations",
"timestamp": "2022-07-04T09:41:14Z",
"concept": "Full day import",
"id": null,
"errors": [
{
"errorCode": "LINEARSCHEDULE-00022",
"description": "This day contains transmissions that can not be deleted",
"data": []
}
]
}
2022r4
Retrieve transmission events of transmission and broadcast day with linear schedule API
It was already possible to retrieve and work with transmissions in the linear schedule API.
From this version, it is also possible to retrieve transmission events using new calls.
Retrieve transmission events of a single transmission
GET /transmissions/:transmissionId:/transmissionEvents
This call retrieves all transmission events of a specific transmission. This means the transmissionId is a required parameter in the request URL. Only the ID of linear transmissions will be accepted.
In the response, an array is returned of all transmission events in the transmission, including program segments.
[
{
"reconcileKey": "8652102327",
"date": "2022-05-04",
"startTime": "01:00:00.00",
"duration": "00:30:00.00",
"timecodeIn": "00:00:00.00",
"timecodeOut": "00:30:00.00",
"frameRate": "25fps",
"title": "THE MANDALORIAN - THE MANDALORIAN 1 - 1/2",
"contentId": "3934087527",
"contentType": "episode",
"interstitialType": null,
"productCode": null,
"mediaAssetId": null,
"mediaAssetLabel": null,
"videocomponentId": null,
"mediaLabel": null,
"timeAllocationType": "programSegment",
"transmissionId": "8652099812",
"channelId": "MgX"
},
{
"reconcileKey": "8660952327",
"date": "2022-05-04",
"startTime": "01:34:01.00",
"duration": "00:00:35.00",
"timecodeIn": "00:00:02.00",
"timecodeOut": "00:00:37.00",
"frameRate": "25fps",
"title": "Coca-Cola",
"contentId": "1000661414",
"contentType": "commercialProductType",
"interstitialType": "Commercial",
"productCode": "CIM-MgX-003",
"mediaAssetId": "1504211000",
"mediaAssetLabel": "0000000048",
"videocomponentId": "1504221000",
"mediaLabel": "0000000048",
"timeAllocationType": "commercial",
"transmissionId": "8652099812",
"channelId": "MgX"
}
]
Most attributes return the external reference of the object, a time or date, but some come from drop-down lists:
| Value for attribute | Is taken from API reference in drop-down list |
|---|---|
contentType
|
PSIProductType |
interstitialType
|
PSITrailerType, WOnCommercialType, WOnMusicClipType |
timeAllocationType
|
BMTimeAllocationType |
channelId
|
Channel |
Retrieve transmission events of a broadcast day
GET /transmissionEvents?filter=eq(channel,:channelID:);eq(date,YYYY-MM-DD)
This call retrieves all transmission events of all transmissions on a certain broadcast day. The date and channel are required search parameters in the request URL. If they are not part of the call, the following response is returned:
{
"statusCode": "422",
"message": "The following query parameters are mandatory and were not specified in the request URI: 'channel, date'",
"timestamp": "2022-05-10T12:20:31Z"
}
Similarly, only linear channels can be used in the query. For others, nothing will be returned. Only the events from the active schedule of the channel will be returned.
The parameters need to be configured with the necessary operators as in the example URL above. For channel, the following can be used: eq, ne, notNull, in. For date: eq, ne, gt, ge, lt , le, notNull, between, in. (See for more information.)
In the response, an array is returned of all transmission events on the day with the following attributes:
{
"reconcileKey": "8660952327",
"date": "2022-05-04",
"startTime": "01:30:30.00",
"duration": "00:00:35.00",
"timecodeIn": "00:00:02.00",
"timecodeOut": "00:00:37.00",
"frameRate": "25fps",
"title": "Coca-Cola",
"contentId": "1000661414",
"contentType": "commercialProductType",
"interstitialType": "Commercial",
"productCode": "CIM-MgX-003",
"mediaAssetId": "1504211000",
"mediaAssetLabel": "0000000048",
"videocomponentId": "1504221000",
"mediaLabel": "0000000048",
"timeAllocationType": "commercial",
"transmissionId": "8652099812",
"channelId": "MgX"
}
Most attributes return the external reference of the object, a time or date, but some come from drop-down lists:
| Value for attribute | Is taken from API reference in drop-down list |
|---|---|
contentType
|
PSIProductType |
interstitialType
|
PSITrailerType, WOnCommercialType, WOnMusicClipType |
timeAllocationType
|
BMTimeAllocationType |
channelId
|
Channel |
2022r3
Schedule version in linear schedule API
In a previous version, the linear schedule API always worked with the active schedule.
From this version, alternative schedule versions are also supported. This caused changes to the YAML so it is recommended to execute the call to get the newest version of the YAML.
A GET call was added to retrieve all possible schedule versions of a channel. (GET /channels/:channelId/scheduleVersions)
In the GET call to search for transmissions (GET /transmissions), the scheduleVersion attribute was added as filter and sort parameter.
The scheduleVersion attribute was added to the response body of the GET calls to search for transmissions (GET /transmissions) and search for specific transmissions (GET /transmissions/:transmission Id).
{
"title": null,
"transmissionId": "7917843812",
"channel": "MgX",
"scheduleVersion": "activeTxSchedule",
"template": null,
"startDate": "2022-05-02",
"startTime": "02:00",
"duration": "01:00:00"
...
}
In the POST call to create or update transmissions (POST /transmissions), the scheduleVersion attribute has been added.
{
"channel": "MgX",
"template": "Transmission",
"title": "Film",
"transmissionId": "ABBB",
"scheduleVersion": "Active",
"startDate": "2022-07-09",
"startTime": "14:00",
"duration": "01:30:00",
"announcedTime": "14:00"
}
-
It can only be used when creating a transmission, not updating one because it is not possible to change the schedule version of a transmission after creation. If you do enter a different value for an existing transmission, an error will be returned.
{
"statusCode": "422",
"message": "Operation cannot be completed due to violations",
"timestamp": "2022-04-11T15:29:57Z",
"concept": "Transmission",
"id": "ABBB",
"errors": [
{
"errorCode": "LINEARSCHEDULE-00027",
"description": "Schedule version can not be changed to Season template",
"data": [
"Season template"
]
}
]
}
-
When it is left out of the body, the transmission will be created on the active schedule.
-
When its value is
null, an error message is returned.
{
"statusCode": "422",
"message": "Operation cannot be completed due to violations",
"timestamp": "2022-04-11T15:21:42Z",
"concept": "Transmission",
"id": "ABBB",
"errors": [
{
"errorCode": "LINEARSCHEDULE-00029",
"description": "Schedule version can not be null",
"data": []
}
]
}
It was added to the PUT call to update a transmission (PUT /transmissions/:transmissionId:) but it is ignored because it is not possible to change the schedule version of a transmission after creation.
It was also added to the POST call to create full days (POST /fullDays). All transmissions will then be created on the chosen schedule version.
Additional fields in GET transmission calls of linear schedule API
From this version, in the response of the
-
GET call to search for a specific transmission (
GET /transmissions/:transmissionId:) -
GET call to search for transmissions (
GET /transmissions),
of the linear schedule API, additional fields have been added:
-
mediaAssetId: the external reference of the media asset linked to the transmission -
contentType: the description of the type of content, for example program, episode etc. -
exploitationRightId: the external reference of the right linked to the transmission
This caused changes to the YAML so it is recommended to execute the call to get the newest version of the YAML.
Fix for mapping of live attribute in GET call of linear schedule API
In a previous version, the live attribute in the GET call for a specific transmission (GET transmissions/:transmissionId:) mapped to the Should be live field on transmission. However, this is not the calculated value of the live state of a transmission.
This issue has been fixed in this version. The live attribute now maps to the calculated Live property of a transmission.