Introduction

The first thing you need to do is make a call to the dubs endpoint, this will search any Queues with a core_dubber role and return a set of Instruction lines within a list. Remember to include your access_token while making the request.

[
  {
    "isReady": false,
    "accountId": 194840,
    "advertiserName": "Avalon Industrial & Marine Supply Ltd.",
    "spotTitle": "Avalon 7am News Intro",
    "dubStatus": 1,
    "mediaId": 0,
    "mediaIntro": 0,
    "mediaEom": 0,
    "mediaLength": 0,
    "instructionId": 90483,
    "bankId": 87022,
    "dubbedOn": [
      625
    ],
    "cartNumber": "A0695",
    "spotStatus": {
      "coreId": 45871,
      "descriptor": "Audio Approved"
    },
    "startDate": "2017-05-15",
    "endDate": "2019-02-24",
    "spotLength": 10,
    "stations": [
      {
        "coreId": 625,
        "callLetters": "CHVO",
        "band": "FM"
      }
    ],
    "errors": [
      "no-media"
    ]
  },
  {
    "isReady": false,
    "accountId": 195816,
    "advertiserName": "Dominion Recycling",
    "spotTitle": "5pm News Cast",
    "dubStatus": 1,
    "mediaId": 0,
    "mediaIntro": 0,
    "mediaEom": 0,
    "mediaLength": 0,
    "instructionId": 105703,
    "bankId": 101006,
    "dubbedOn": [
      624
    ],
    "availableDownloads": [
      "wav": true,
      "mp3": true
    ],
    "cartNumber": "A0914",
    "spotStatus": {
      "coreId": 45871,
      "descriptor": "Audio Approved"
    },
    "startDate": "2017-12-16",
    "endDate": "2019-03-31",
    "spotLength": 30,
    "stations": [
      {
        "coreId": 624,
        "callLetters": "VOCM",
        "band": "AM"
      }
    ],
    "errors": [
      "no-media"
    ]
  },
  {
    "isReady": false,
    "accountId": 195816,
    "advertiserName": "Dominion Recycling",
    "spotTitle": "VOCM 5pm News BB",
    "dubStatus": 1,
    "mediaId": 0,
    "mediaIntro": 0,
    "mediaEom": 0,
    "mediaLength": 0,
    "instructionId": 105718,
    "bankId": 101019,
    "dubbedOn": [
      624
    ],
    "cartNumber": "A1094",
    "spotStatus": {
      "coreId": 45871,
      "descriptor": "Audio Approved"
    },
    "startDate": "2017-12-16",
    "endDate": "2019-03-31",
    "spotLength": 10,
    "stations": [
      {
        "coreId": 624,
        "callLetters": "VOCM",
        "band": "AM"
      }
    ],
    "errors": [
      "no-media"
    ]
  },
  {
    "isReady": true,
    "accountId": 193311,
    "advertiserName": "Ambrotek Printing",
    "spotTitle": "Ambrotek Morning Traffic Report Q1 2018 - 3",
    "dubStatus": 1,
    "mediaId": 21080,
    "mediaIntro": 0,
    "mediaEom": 0,
    "mediaLength": 17.8524,
    "instructionId": 74485,
    "bankId": 72020,
    "dubbedOn": [
      590
    ],
    "availableDownloads": {
      "wav": true,
      "mp3": true
    },
    "cartNumber": "5214",
    "spotStatus": {
      "coreId": 45871,
      "descriptor": "Audio Approved"
    },
    "startDate": "2018-01-01",
    "endDate": "2018-12-28",
    "spotLength": 15,
    "stations": [
      {
        "coreId": 590,
        "callLetters": "CILV",
        "band": "FM"
      }
    ]
  }
]

Once you have obtained a set of Instructions, you will need to loop through them to decide if you wish to dub them. We include a recommendation in the isReady attribute. This will always be of a boolean datatype. A true value means it past all our checks, a false value means it didn't, if the value is false, we include a reason for this in the errors attribute.

"isReady": false,
"errors": [
  "no-media"
]

Once you have decided if you wish to dub the media for the spot, the next step is to actually dub it. To do this you first need to obtain the media file from us. By default, we always store audio files in WAV and MP3 formats and they should be available. You will need to make a separate call to the media endpoint to obtain the media in the format you require.

❗️

A note about Scot Headers

If you are using WideOrbit, a scot header is required. As spot instructions can change, we write scot headers on the fly and you will need to make a call to the media endpoint to obtain a WAV file which includes a scot header.

Once you have the media file, you can process and dub the file in your Application. Once you have dubbed the audio you can confirm that it has been dubbed for a particular station by making a call to the dubbed endpoint with the stationId(s). The response will contain an updated Instruction line, so that you can confirm that we have indeed updated the status of the Instruction line. An instruction line is considered complete by us, when all stations that are listed in the stations attribute are also present in the dubbedOn attribute.

Once the Instruction line is dubbed on all stations, the dubStatus value will change from 0 to 1. Please note, that we will continue to include the spot in the instruction set until the Production Order is moved out of the clients Dubbing work queues. This usually happens automatically, but it is an option for our customers to move the order along manually, so you should always check the dubStatus and the dubbedOn status while making decisions about whether or not a spot needs to be dubbed. If audio is changed or updated, or the instruction item is edited by a user, then the dubbedOn status will be unset by our system forcing a new dub to take place.

"stations": [
  {
    "coreId": 606,
    "callLetters": "",
    "band": ""
  },
  {
    "coreId": 608,
    "callLetters": "",
    "band": ""
  },
  {
    "coreId": 609,
    "callLetters": "",
    "band": ""
  }
],
"dubbedOn": [
  606,
  608,
  609
]