Back to top

Content Automation API

Welcome to Global Conductor Content Automation API. This API provides access to PlayNetwork’s audio assets, including upload, retrieval, transcoding, and basic search.

Application Version

Get the current version of the API

Resource

GET/v0/version

Example URI

GET /v0/version
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "name": "gc-content-api",
  "version": "0.2.0"
}

Asset API

Provides access to upload, retrieve, and transcode an asset

Resource

POST/v0/assets

Upload an audio file to Content Automation.

Example URI

POST /v0/assets
Request
HideShow
Headers
Content-Type: multipart/form-data; boundary=---BOUNDARY
x-client-id: 216c2f3cf288432eb75cbea1431f5axx
x-authentication-token: eb0fc26ad7484c2db34d0cbba7ac1f8e
assetType: audio/x-flac
assetLength: 19782435
legacyTrackToken: 370456
Body
---BOUNDARY
            Content-Disposition: form-data; name="assetfile"; filename="370456.flac"
            Content-Type: audio/x-flac
            Content-Transfer-Encoding: binary

            $binarydata
            ---BOUNDARY
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "assetType": "audio/x-flac",
  "originalAssetId": "0001fcbe1459a8e2db2b04fa8a22a74fbefccea5374ca1709e39857502493e3c",
  "bitrate": 846000,
  "channels": 2,
  "duration": 187000,
  "lufs": -9,
  "deleted": false,
  "modified": "2014-10-02T20:16:42.079Z",
  "created": "2014-10-02T20:16:42.079Z"
}

Resource

GET/v0/assets/{assetId}{?bitrate,channels,format,exact}

Retrieve an asset by its original asset id.
If bitrate/channels/format are included, Content API will transcode and return an asset in the quality specified. When the quality of an original asset is not enough to be further transcoded, Content API by default will return an asset with an asset with the closest quality All bitrate, channels, format must be all provided for Content API to transcode an asset.

Example URI

GET /v0/assets/assetId?bitrate=&channels=&format=&exact=
URI Parameters
HideShow
assetId
string (required) 

the original asset id of the asset

bitrate
number (optional) 

retrieve an asset in the bitrate specified; supported values: 64000, 80000, 96000, 128000, 160000, 256000, and 320000

channels
number (optional) 
format
string (optional) 

retrieve an asset in the format specified. Followings are the supported formats: flac, mp3, ogg, and wav

exact
boolean (optional) 

default to false. set to true to enforce Content API to generate and return an asset to match the exact bitrate, channels, and format specified in the request. When set to true, and the quality of the original asset is not high enough to support requested bitrate/channels/format, a LowQualityError will be returned.

Request
HideShow
Headers
x-client-id: 216c2f3cf288432eb75cbea1431f5axx
x-authentication-token: eb0fc26ad7484c2db34d0cbba7ac1f8e
Response  302
HideShow
Headers
Content-Type: application/json
Body
{
  "name": "ModelNotReadyError",
  "message": "asset {id} in requested format is not ready",
  "statusCode": 409
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "name": "ModelNotFoundError",
  "message": "Original asset not found ({asset id})"
}
Response  409
HideShow
Headers
Content-Type: application/json
Body
{
  "name": "LowQualityError",
  "message": "Quality for asset {id} is too low",
  "statusCode": 409
}
Response  409
HideShow
Headers
Content-Type: application/json
Body
{
  "name": "ModelInvalidError",
  "message": "unable to sign a url for asset {id}",
  "statusCode": 409
}

Legacy Track Support API

Provides access to retrieve assets and asset information through legacy track tokens

Resource

GET/v0/legacy/tracks/{trackToken}{?bitrate,channels,format}

To retrieve an asset by its legacy track token

Example URI

GET /v0/legacy/tracks/trackToken?bitrate=&channels=&format=
URI Parameters
HideShow
trackToken
string (required) 

the legacy track token of an asset

bitrate
number (optional) 

retrieve an asset in the bitrate specified; supported values: 64000, 80000, 96000, 128000, 160000, 256000, and 320000

channels
number (optional) 
format
string (optional) 

retrieve an asset in the format specified. Followings are the supported formats: flac, mp3, ogg, and wav

Request
HideShow
Headers
x-client-id: 216c2f3cf288432eb75cbea1431f5axx
x-authentication-token: eb0fc26ad7484c2db34d0cbba7ac1f8e
Response  302
HideShow
Headers
Content-Type: application/json
Body
{
  "name": "ModelNotReadyError",
  "message": "asset {id} in requested format is not ready",
  "statusCode": 409
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "name": "ModelNotFoundError",
  "message": "Original asset not found ({asset id})"
}
Response  409
HideShow
Headers
Content-Type: application/json
Body
{
  "name": "ModelInvalidError",
  "message": "Unable to sign a url for asset {id}",
  "statusCode": 409
}

Resource

GET/v0/legacy/tracks/{trackToken}/originalAssets

To retrieve an asset’s meta data by its legacy track token

Example URI

GET /v0/legacy/tracks/trackToken/originalAssets
URI Parameters
HideShow
trackToken
string (required) 

the legacy track token

Request
HideShow
Headers
x-client-id: 216c2f3cf288432eb75cbea1431f5axx
x-authentication-token: eb0fc26ad7484c2db34d0cbba7ac1f8e
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "assetType": "audio/x-flac",
  "originalAssetId": "0001fcbe1459a8e2db2b04fa8a22a74fbefccea5374ca1709e39857502493e3c",
  "bitrate": 846000,
  "channels": 2,
  "duration": 187000,
  "lufs": -9,
  "deleted": false,
  "modified": "2014-10-02T20:16:42.079Z",
  "created": "2014-10-02T20:16:42.079Z"
}

Resource

HEAD/v0/legacy/tracks/{trackToken}

To quickly find out if Content API has an asset in its catalog by the asset’s legacy track token

Example URI

HEAD /v0/legacy/tracks/trackToken
URI Parameters
HideShow
trackToken
string (required) 

the legacy track token

Request
HideShow
Headers
x-client-id: 216c2f3cf288432eb75cbea1431f5axx
x-authentication-token: eb0fc26ad7484c2db34d0cbba7ac1f8e
Response  200
Response  404
Response  409
HideShow
Headers
Content-Type: application/json

Resource

POST/v0/legacy/tracks/{trackToken}/originalAssets

To create a mapping between a legacy track token and one or more original assets

Example URI

POST /v0/legacy/tracks/trackToken/originalAssets
URI Parameters
HideShow
trackToken
string (required) 

the legacy track token

Request
HideShow
Headers
x-client-id: 216c2f3cf288432eb75cbea1431f5axx
x-authentication-token: eb0fc26ad7484c2db34d0cbba7ac1f8e
Body
[
  "0001fcbe1459a8e2db2b04fa8a22a74fbefccea5374ca1709e39857502493e3c",
  "2493e3c0db2b04fa8a22a7001fcbe1459a4ca1709e398e24fbefccea53785750"
]
Response  201
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "originalAssetId": "0001fcbe1459a8e2db2b04fa8a22a74fbefccea5374ca1709e39857502493e3c",
    "legacyTrackToken": "1153552"
  },
  {
    "originalAssetId": "2493e3c0db2b04fa8a22a7001fcbe1459a4ca1709e398e24fbefccea53785750",
    "legacyTrackToken": "1153552"
  }
]

Legacy Asset Support API

Similar to Legacy Track Support API, this API provides resources to create, update, verify, and sign the CDN URL of a legacy asset by a legacy track token. The source of all legacy assets is from the Cache folder on Playnetwork’s media server (aka “Skynyrd”).

Resource

GET/v0/legacy/assets{?filters,count,start}

To retrieve a list of legacy assets with pagination

Example URI

GET /v0/legacy/assets?filters=&count=&start=
URI Parameters
HideShow
filters
string (optional) 

apply search conditions to filter returned recordset. Please refer to Mongoose-Middleware for further detail

count
number (optional) 

number of legacy assets to retrieve. default and maximum to 100

start
number (optional) 

the starting index of the legacy assets in the database, default is 0

Request
HideShow
Headers
x-client-id: 216c2f3cf288432eb75cbea1431f5axx
x-authentication-token: eb0fc26ad7484c2db34d0cbba7ac1f8e
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "options": {
    "count": 2,
    "filters": {},
    "sort": {},
    "start": 0
  },
  "results": [
    {
      "legacyTrackToken": "1032904",
      "originalFileName": "1032904.wav",
      "legacyAssetId": "0002b8c48609bb965a85de217d788b2a2ec8dd945746e74966062646936a001c"
    },
    {
      "legacyTrackToken": "1032902",
      "originalFileName": "1032902.wav",
      "legacyAssetId": "e3c69a2a0fb2f3dd20199c5fa66c3e192e85bf5da2f61894d5fcf7e5c2ff58ba"
    }
  ],
  "total": 11
}

Resource

GET/v0/legacy/assets/{compositeKey}

To sign a CDN URL for a legacy asset by its legacyTrackToken

Example URI

GET /v0/legacy/assets/compositeKey
URI Parameters
HideShow
compositeKey
string (required) 

A composite key representing a key-value pair separated by a colon :. For example, to retrieve a legacy asset by its track token, use trackToken:{value}

Request
HideShow
Headers
x-client-id: 216c2f3cf288432eb75cbea1431f5axx
x-authentication-token: eb0fc26ad7484c2db34d0cbba7ac1f8e
Response  302
HideShow
Headers
Content-Type: text/html
Body
Moved Temporarily
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "name": "ModelNotFoundError",
  "message": "legacy asset {track token} was not found",
  "statusCode": 404
}
Response  409
HideShow
Headers
Content-Type: application/json
Body
{
  "name": "ModelInvalidError",
  "message": "unable to sign a url for asset {id}",
  "statusCode": 409
}

Resource

HEAD/v0/legacy/assets/{compositeKey}

To check the existence of a legacy asset. If so, obtain its legacyAssetId, which is a SHA256 string of the actual bits of the asset

Example URI

HEAD /v0/legacy/assets/compositeKey
URI Parameters
HideShow
compositeKey
string (required) 

A composite key representing a key-value pair separated by a colon :. For example, to retrieve a legacy asset by its track token, use trackToken:{value}

Request
HideShow
Headers
x-client-id: 216c2f3cf288432eb75cbea1431f5axx
x-authentication-token: eb0fc26ad7484c2db34d0cbba7ac1f8e
Response  404
Response  200
HideShow
Headers
x-legacy-asset-id: 0002b8c48609bb965a85de217d788b2a2ec8dd945746e74966062646936a001c

Resource

POST/v0/legacy/assets

To create a legacy asset, which contains following properties:

  • legacyTrackToken (required, string) … the legacy track token of the legacy assetId

  • originalFileName (optional, string) … the original file name of the track

  • legacyAssetId (optional, string) … the SHA256 of the track file

Example URI

POST /v0/legacy/assets
Request
HideShow
Headers
Content-Type: application/json
x-client-id: 216c2f3cf288432eb75cbea1431f5axx
x-authentication-token: eb0fc26ad7484c2db34d0cbba7ac1f8e
Body
{
  "originalFileName": "1032920.wav"
}
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "statusCode": 409,
  "name": "ArgumentNullOrEmptyError",
  "message": "legacyTrackToken cannot be null or empty"
}
Request
HideShow
Headers
Content-Type: application/json
x-client-id: 216c2f3cf288432eb75cbea1431f5axx
x-authentication-token: eb0fc26ad7484c2db34d0cbba7ac1f8e
Body
{
  "legacyTrackToken": "1032920",
  "originalFileName": "1032920.wav"
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "legacyTrackToken": "1032920",
  "legacyAssetId": null,
  "originalFileName": "1032920.wav"
}

Resource

PUT/v0/legacy/assets/{compositeKey}

To modify an existing legacy asset

Example URI

PUT /v0/legacy/assets/compositeKey
URI Parameters
HideShow
compositeKey
string (required) 

A composite key representing a key-value pair separated by a colon :. For example, to retrieve a legacy asset by its track token, use trackToken:{value}

Request
HideShow
Headers
Content-Type: application/json
x-client-id: 216c2f3cf288432eb75cbea1431f5axx
x-authentication-token: eb0fc26ad7484c2db34d0cbba7ac1f8e
Response  404
HideShow
Headers
Content-Type: application/json
Body
{
  "statusCode": 409,
  "name": "ArgumentNullOrEmptyError",
  "message": "legacyTrackToken cannot be null or empty",
  "sentryId": "7a69ad74624f4202b2ea9bbfafebd9e1"
}
Request
HideShow
Headers
Content-Type: application/json
x-client-id: 216c2f3cf288432eb75cbea1431f5axx
x-authentication-token: eb0fc26ad7484c2db34d0cbba7ac1f8e
Body
{
  "legacyAssetId": "0001fcbe1459a8e2db2b04fa8a22a74fbefccea5374ca1709e39857502493e3c",
  "originalFileName": "1032920.ogg"
}
Response  202
HideShow
Headers
Content-Type: application/json
Body
{
  "legacyTrackToken": "1032920",
  "legacyAssetId": "0001fcbe1459a8e2db2b04fa8a22a74fbefccea5374ca1709e39857502493e3c",
  "originalFileName": "1032920.ogg"
}

Generated by aglio on 01 Sep 2016