Archiver Playout Profile


All POST and PUT calls require the Content-Type header to be set to application/json


Playout Profile object

Property Type Nullable Notes
id string No /^[A-Za-z0-9_]+$/
PUT has no effect
expiresIn int Yes Seconds
key string Yes KID:CEK
issKeyIv string Yes  
issLicenseUrl string Yes  
widevineDrmData string Yes  
widevineLicenseUrl string Yes  
aesKey string Yes  
aesKeyIv string Yes  
aesLicenseUrl string Yes  
captures PlayoutProfileCapture array No  
streamingFormats string array No "HLS", "HDS", "DASH", "SMOOTH" [1]
GET only

[1] The available streamingFormats is automatically determined based on the configuration of the DRM properties

Playout Profile Capture object

Property Type Nullable Notes
captureId string No  
liveRedirectUrl string Yes  

Supported Actions

GET /archiverplayoutprofile/

Get all Playout Profiles, or all Playout Profile IDs if onlyIds=true

Query Parameters:

Name Type Required
onlyIds bool No (default: false)

Response Body: Array of Playout Profile objects, or an array of strings if onlyIds=true

Example Request:

archiverplayoutprofile

Example Response:

[
    {
        "id": "MyProfile",
        "expiresIn": 864000,
        "key": "012345:ABCDEF",
        "issKeyIv": "0123456789ABCDEF",
        "issLicenseUrl": "http://licenseserver/license.aspx",
        "widevineDrmData": null,
        "widevineLicenseUrl": null,
        "aesKey": null,
        "aesKeyIv": null,
        "aesLicenseUrl": null,
        "captures": [
            {
                "captureId": "MyCapture",
                "liveRedirectUrl": null
            },
            {
                "captureId": "MyCapture2",
                "liveRedirectUrl": "http://live.origin-server.net/live.isml"
            }
        ],
        "streamingFormats": [
            "SMOOTH",
            "DASH"
        ]
    },
    {
        "id": "MyProfile2",
        "expiresIn": null,
        "key": null,
        "issKeyIv": null,
        "issLicenseUrl": null,
        "widevineDrmData": null,
        "widevineLicenseUrl": null,
        "aesKey": null,
        "aesKeyIv": null,
        "aesLicenseUrl": null,
        "captures": [],
        "streamingFormats": [
            "HLS",
            "DASH",
            "SMOOTH",
            "HDS"
        ]
    }
]

Example Request:

archiverplayoutprofile?onlyIds=true

Example Response:

[
    "MyProfile",
    "MyProfile2"
]

GET /archiverplayoutprofile/{id}

Get the Playout Profile with the specified ID

Response Body: A Playout Profile object

Example Request:

archiverplayoutprofile/MyProfile

Example Response Body:

{
    "id": "MyProfile",
    "expiresIn": 864000,
    "key": "012345:ABCDEF",
    "issKeyIv": "0123456789ABCDEF",
    "issLicenseUrl": "http://licenseserver/license.aspx",
    "widevineDrmData": null,
    "widevineLicenseUrl": null,
    "aesKey": null,
    "aesKeyIv": null,
    "aesLicenseUrl": null,
    "captures": [
        {
            "captureId": "MyCapture",
            "liveRedirectUrl": null
        },
        {
            "captureId": "MyCapture2",
            "liveRedirectUrl": "http://live.origin-server.net/live.isml"
        }
    ],
    "streamingFormats": [
        "SMOOTH",
        "DASH"
    ]
}

GET /archiverplayoutprofile/{id}/captures/

Get the Playout Profile Capture objects for the Playout Profile with the specified ID. This is the same array of objects from the Playout Profile object’s captures property.

Response Body: Array of Playout Profile Capture objects

Example Request:

archiverplayoutprofile/MyProfile/captures

Example Response Body:

[
    {
        "captureId": "MyCapture",
        "liveRedirectUrl": null
    },
    {
        "captureId": "MyCapture2",
        "liveRedirectUrl": "http://live.origin-server.net/live.isml"
    }
]

POST /archiverplayoutprofile/

Add a new Playout Profile.

All properties are required except for streamingFormats, which is ignored.

Request Body: Playout Profile object

Response Body: The persisted Playout Profile object

Example Request Body:

{
    "id": "NewProfile",
    "expiresIn": 864000,
    "key": "key",
    "issKeyIv": "issKeyIv",
    "issLicenseUrl": "http://issLicenseUrl",
    "widevineDrmData": "widevineDrmData",
    "widevineLicenseUrl": "http://widevineLicenseUrl",
    "aesKey": "aesKey",
    "aesKeyIv": "aesKeyIv",
    "aesLicenseUrl": "http://aesLicenseUrl",
    "captures": [
        {
            "captureId": "Capture1",
            "liveRedirectUrl": "http://live.origin-server.net/live.isml"
        },
        {
            "captureId": "Capture2",
            "liveRedirectUrl": "http://live.origin-server.net/live.isml"
        }
    ]
}

Example Response Body:

{
    "id": "NewProfile",
    "expiresIn": 864000,
    "key": "key",
    "issKeyIv": "issKeyIv",
    "issLicenseUrl": "http://issLicenseUrl",
    "widevineDrmData": "widevineDrmData",
    "widevineLicenseUrl": "http://widevineLicenseUrl",
    "aesKey": "aesKey",
    "aesKeyIv": "aesKeyIv",
    "aesLicenseUrl": "http://aesLicenseUrl",
    "captures": [
        {
            "captureId": "Capture1",
            "liveRedirectUrl": "http://live.origin-server.net/live.isml"
        },
        {
            "captureId": "Capture2",
            "liveRedirectUrl": "http://live.origin-server.net/live.isml"
        }
    ],
    "streamingFormats": [
        "SMOOTH",
        "DASH",
        "HLS"
    ]
}

PUT /archiverplayoutprofile/{id}

Update the Playout Profile with the specified ID.

All properties are required except for streamingFormats, which is ignored. Changing id has no effect.

Request Body: Playout Profile object

Response Body: The persisted Playout Profile object

Example Request:

archiverplayoutprofile/NewProfile

Example Request Body:

{
    "id": "NewProfile",
    "expiresIn": 864000,
    "key": "key",
    "issKeyIv": "issKeyIv",
    "issLicenseUrl": "http://issLicenseUrl",
    "widevineDrmData": "widevineDrmData",
    "widevineLicenseUrl": "http://widevineLicenseUrl",
    "aesKey": null,
    "aesKeyIv": null,
    "aesLicenseUrl": null,
    "captures": [
        {
            "captureId": "Capture1",
            "liveRedirectUrl": "http://live.origin-server.net/live-2.isml"
        },
        {
            "captureId": "Capture3",
            "liveRedirectUrl": null
        }
    ]
}

Example Response Body:

{
    "id": "NewProfile",
    "expiresIn": 864000,
    "key": "key",
    "issKeyIv": "issKeyIv",
    "issLicenseUrl": "http://issLicenseUrl",
    "widevineDrmData": "widevineDrmData",
    "widevineLicenseUrl": "http://widevineLicenseUrl",
    "aesKey": null,
    "aesKeyIv": null,
    "aesLicenseUrl": null,
    "captures": [
        {
            "captureId": "Capture1",
            "liveRedirectUrl": "http://live.origin-server.net/live-2.isml"
        },
        {
            "captureId": "Capture3",
            "liveRedirectUrl": null
        }
    ],
    "streamingFormats": [
        "SMOOTH",
        "DASH"
    ]
}

DELETE /archiverplayoutprofile/{id}

Delete the Playout Profile with the specified ID

Response Body: The deleted Playout Profile object

Note: The Playout Profile Capture objects are deleted before the Playout Profile object is. Therefore, when the Playout Profile object is returned in the Response Body, the captures array will always be empty.

Example Request:

archiverplayoutprofile/NewProfile

Example Response Body:

{
    "id": "NewProfile",
    "expiresIn": 864000,
    "key": "key",
    "issKeyIv": "issKeyIv",
    "issLicenseUrl": "http://issLicenseUrl",
    "widevineDrmData": "widevineDrmData",
    "widevineLicenseUrl": "http://widevineLicenseUrl",
    "aesKey": null,
    "aesKeyIv": null,
    "aesLicenseUrl": null,
    "captures": [],
    "streamingFormats": [
        "SMOOTH",
        "DASH"
    ]
}