Archiver Capture
- Capture object
- Capture Stats object
- Capture Available Content object
- Capture Segment object
- Supported Actions
All POST
and PUT
calls require the Content-Type
header to be set to application/json
Capture object
Property | Type | Nullable | Notes |
---|---|---|---|
id | string | No | /^[A-Za-z0-9_]+$/ PUT has no effect |
startTime | UTC ISO 8601 string | Yes | If null on POST or PUT the current date and time will be assigned. GET always returns a value. |
endTime | UTC ISO 8601 string | Yes | null if the capture runs indefinetly |
active | bool | No | |
decryptKey | string | Yes | KID:CEK |
expiresIn | int | Yes | Seconds |
publishingPoints | string array | No |
Capture Stats object
Property | Type | Nullable | Notes |
---|---|---|---|
id | string | No | |
startTime | UTC ISO 8601 string | Yes | [1] |
endTime | UTC ISO 8601 string | Yes | [1] |
failedCount | int | No | |
active | bool | No | |
publishingPoints | string array | No | |
profileIds | string array | No |
[1] startTime
and endTime
will either both have values or both be null
to indicate that no content has been captured
Capture Available Content object
Property | Type | Nullable | Notes |
---|---|---|---|
startTime | UTC ISO 8601 string | No | |
endTime | UTC ISO 8601 string | No |
Capture Segment object
Property | Type | Nullable | Notes |
---|---|---|---|
id | int | No | |
startTime | UTC ISO 8601 string | No | |
endTime | UTC ISO 8601 string | No | |
archived | bool | No | |
failed | bool | No | |
inProgress | bool | No | |
scheduled | bool | No | |
completed | bool | No | |
attempts | int | No | |
createdAt | UTC ISO 8601 string | No | |
updatedAt | UTC ISO 8601 string | No |
Supported Actions
GET /archivercapture/
Get all Captures, or all Capture IDs if onlyIds=true
Query Parameters:
Name | Type | Required |
---|---|---|
onlyIds | bool | No (default: false ) |
Response Body: Array of Capture objects, or an array of strings if onlyIds=true
Example Response:
[
{
"id": "MyCapture",
"startTime": "2018-09-18T10:00:00Z",
"endTime": "2018-09-18T10:30:00Z",
"active": true,
"decryptKey": "ABCDEF0123456789:ABCDEF0123456789",
"expiresIn": 1728000,
"publishingPoints": [
"http://primary.usp-origin.net/live/live.isml",
"http://secondary.usp-origin.net/live/live.isml"
]
},
{
"id": "MyCapture_2",
"startTime": "2018-09-25T15:08:17Z",
"endTime": null,
"active": false,
"decryptKey": null,
"expiresIn": null,
"publishingPoints": []
}
]
Example Request:
archivercapture?onlyIds=true
Example Response:
[
"MyCapture",
"MyCapture_2",
]
GET /archivercapture/{id}
Get the Capture with the specified ID
Response Body: A Capture object
Example Request:
archivercapture/MyCapture
Example Response Body:
{
"id": "MyCapture",
"startTime": "2018-09-18T10:00:00Z",
"endTime": "2018-09-18T10:30:00Z",
"active": true,
"decryptKey": "ABCDEF0123456789:ABCDEF0123456789",
"expiresIn": 1728000,
"publishingPoints": [
"http://primary.usp-origin.net/live/live.isml",
"http://secondary.usp-origin.net/live/live.isml"
]
}
GET /archivercapture/all/stats/
Get the Capture Stats for all Captures
Response Body: Array of Capture Stats objects
Example Response Body:
[
{
"id": "MyCapture",
"startTime": "2018-09-25T00:04:29Z",
"endTime": "2018-09-28T15:01:31Z",
"failedCount": 0,
"profileIds": [
"ClearPlayoutProfile"
],
"active": true,
"publishingPoints": [
"http://primary.usp-origin.net/live/live.isml",
"http://secondary.usp-origin.net/live/live.isml"
]
},
{
"id": "BadCapture",
"startTime": null,
"endTime": null,
"failedCount": 735,
"profileIds": [],
"active": true,
"publishingPoints": [
"http://bad.usp-origin.net/live/live.isml",
]
}
]
GET /archivercapture/{id}/stats/
Get the Capture Stats for the Capture with the specified ID
Response Body: A Capture Stats object
Example Request:
archivercapture/MyCapture/stats
Example Response Body:
{
"id": "MyCapture",
"startTime": "2018-09-25T00:04:29Z",
"endTime": "2018-09-28T15:01:31Z",
"failedCount": 0,
"profileIds": [
"ClearPlayoutProfile"
],
"active": true,
"publishingPoints": [
"http://primary.live-origin.net/live/live.isml",
"http://secondary.live-origin.net/live/live.isml"
]
}
GET /archivercapture/{id}/available/
Get the time ranges of continuous captured content for the Capture with the specified ID. This can be used to see if there are any gaps in the captured content.
Response Body: Array of Capture Available Content objects
Example Request:
archivercapture/MyCapture/available
Example Response Body:
[
{
"startTime": "2018-09-25T00:04:29Z",
"endTime": "2018-09-26T11:30:59Z"
},
{
"startTime": "2018-09-26T11:31:01Z",
"endTime": "2018-09-26T11:31:05Z"
},
{
"startTime": "2018-09-26T11:34:52Z",
"endTime": "2018-09-28T15:16:31Z"
}
]
GET /archivercapture/{id}/segments/
Retrieves the list of Capture Segment objects for the specified Capture.
Optionally, a time range can be specified to only retrieve segments which start and end within that time range. Otherwise, all known segments will be retrieved
Query Parameters:
Name | Value | Required |
---|---|---|
start | UTC ISO 8601 | No[1] |
end | UTC ISO 8601 | No[1] |
[1] start
and end
must be specified together
Response Body: Array of Capture Segment objects
Example Request:
archivercapture/MyCapture/segments?start=2018-09-28T09:11:00Z&end=2018-09-28T09:22:00Z"
Example Response:
[
{
"id": 140339,
"startTime": "2018-09-28T09:11:31Z",
"endTime": "2018-09-28T09:16:31Z",
"archived": true,
"failed": false,
"inProgress": false,
"scheduled": true,
"completed": true,
"attempts": 1,
"createdAt": "2018-09-28T09:16:49Z",
"updatedAt": "2018-09-28T09:17:49Z"
},
{
"id": 140349,
"startTime": "2018-09-28T09:16:31Z",
"endTime": "2018-09-28T09:21:31Z",
"archived": true,
"failed": false,
"inProgress": false,
"scheduled": true,
"completed": true,
"attempts": 1,
"createdAt": "2018-09-28T09:21:55Z",
"updatedAt": "2018-09-28T09:22:36Z"
}
]
POST /archivercapture/
Add a new Capture.
All properties are required in the request body.
Request Body: Capture object
Response Body: The persisted Capture object
Example Request Body:
{
"id": "my_new_capture",
"startTime": null,
"endTime": "2018-10-05T10:30:00Z",
"active": true,
"decryptKey": "123:456",
"expiresIn": 864000,
"publishingPoints": [
"http://primary.live-origin.net/live/live.isml"
]
}
Example Response Body:
{
"id": "my_new_capture",
"startTime": "2018-10-01T12:18:53Z",
"endTime": "2018-10-05T10:30:00Z",
"active": true,
"decryptKey": "123:456",
"expiresIn": 864000,
"publishingPoints": [
"http://primary.live-origin.net/live/live.isml"
]
}
PUT /archivercapture/{id}
Update an existing Capture.
All properties are required in the request body. Changing id
has no effect.
Request Body: Capture object
Response Body: The persisted Capture object
Example of adding a Publishing Point and changing the Decrypt Key of the Capture object returned in the POST example:
Example Request:
archivercapture/my_new_capture
Example Request Body:
{
"id": "my_new_capture",
"startTime": "2018-10-01T12:18:53Z",
"endTime": "2018-10-05T10:30:00Z",
"active": true,
"decryptKey": "123456789:ABCDEFG",
"expiresIn": 864000,
"publishingPoints": [
"http://primary.live-origin.net/live/live.isml",
"http://secondary.live-origin.net/live/live.isml"
]
}
Example Response Body:
{
"id": "my_new_capture",
"startTime": "2018-10-01T12:18:53Z",
"endTime": "2018-10-05T10:30:00Z",
"active": true,
"decryptKey": "123456789:ABCDEFG",
"expiresIn": 864000,
"publishingPoints": [
"http://primary.live-origin.net/live/live.isml",
"http://secondary.live-origin.net/live/live.isml"
]
}
DELETE /archivercapture/{id}
Delete the Capture with the specified ID
Response Body: The deleted Capture object
Example Request:
archivercapture/my_new_capture
Example Response Body:
{
"id": "my_new_capture",
"startTime": "2018-10-01T12:18:53Z",
"endTime": "2018-10-05T10:30:00Z",
"active": true,
"decryptKey": "123456789:ABCDEFG",
"expiresIn": 864000,
"publishingPoints": [
"http://primary.live-origin.net/live/live.isml",
"http://secondary.live-origin.net/live/live.isml"
]
}