Skip to main content

Modify a Recording Template

Modify a recording template for an ingest domain, an app, or a stream.

Request

Request-Line

PUT /lls/v1.0/template/recording/{templateName}

Request

Path Parameters

ParameterTypeRequiredDescription
templateNameStringMandatoryrecording template name

Request Body

ParameterTypeRequiredDescription
domainStringMandatoryingest domain name
appStringOptionalapp name. if not specified, the recording template will be applied to all apps.
streamStringOptionalstream name. if not specified, the recording template will be applied to all streams.
recordingFromStringMandatoryrecording from. Valid values: ingest, delivery.
recordingFormatStringMandatoryrecording format. Valid values: mp4, hls, dash.
bucketStringMandatorybucket name to store the recording.
pathStringMandatorystorage path under the bucket.

Response

Response Body

ParameterTypeRequiredDescription
templateNameStringMandatoryrecording template name.
createdTimestampMandatoryTimestamp of created time in UTC timezone. Default is now.
updatedTimestampMandatoryTimestamp of updated time in UTC timezone. Default is now.
statusStringMandatoryStatus of recording template. Valid values: active, inactive.
domainStringMandatoryingest domain name
appStringOptionalapp name. if not specified, the recording template will be applied to all apps.
streamStringOptionalstream name. if not specified, the recording template will be applied to all streams.
recordingFromStringMandatoryrecording from. Valid values: ingest, delivery.
recordingFormatArrayMandatoryrecording formats. Valid values: mp4, hls, dash.
bucketStringMandatorybucket name to store the recording.
pathStringMandatorystorage path under the bucket.

Status Codes, Error Codes and Error Messages

Status CodeError CodeError Message
400LLS.RecordingTemplate.InvalidTemplateNameRecording template name invalid.
400LLS.RecordingTemplate.TemplateNotFoundTemplate not found.
400LLS.RecordingTemplate.DomainNotFoundDomain not found.
400LLS.RecordingTemplate.AppNotFoundApp not found.
400LLS.RecordingTemplate.StreamNotFoundStream not found.
400LLS.RecordingTemplate.InvalidRecordingFromInvalid recording from.
400LLS.RecordingTemplate.InvalidRecordingFormatInvalid recording format.
400LLS.RecordingTemplate.BucketNotFoundBucket not found.
400LLS.RecordingTemplate.InvalidStatusInvalid status.
400LLS.RecordingTemplate.InvalidPathInvalid path.
400LLS.RecordingTemplate.TemplateExistsTemplate already exists.
400LLS.RecordingTemplate.ConflictTemplateTemplate conflict.

Examples

Modify a domain-level recording template with mp4 format from ingest stream

Request

PUT /lls/v1.0/template/recording/domainTemplate HTTP/1.1
{
"domain": "ingest.example.com",
"recordingFrom": "ingest",
"recordingFormat": ["mp4"],
"status": "active",
"bucket": "my-bucket",
"path": "/recording/mp4/"
}

Successful Response Body

{
"templateName": "domainTemplate",
"created": "2025-07-15T08:47:10Z",
"status": "active",
"domain": "ingest.example.com",
"recordingFrom": "ingest",
"recordingFormat": ["mp4", "hls"],
"bucket": "my-bucket",
"path": "/recording/mp4/"
}

Modify a domain+app level recording template with hls format from ingest stream

Request

PUT /lls/v1.0/template/recording/appTemplate HTTP/1.1
{
"domain": "ingest.example.com",
"app": "live",
"status": "active",
"recordingFrom": "ingest",
"recordingFormat": ["hls"],
"bucket": "my-bucket",
"path": "/recording/hls/"
}

Successful Response Body

{
"templateName": "appTemplate",
"created": "2025-07-15T08:48:30Z",
"status": "active",
"domain": "ingest.example.com",
"app": "live",
"recordingFrom": "ingest",
"recordingFormat": ["hls"],
"bucket": "my-bucket",
"path": "/recording/hls/"
}

Modify a domain+app+stream level recording template with hls format from ingest stream

Request

PUT /lls/v1.0/template/recording/streamTemplate HTTP/1.1
{
"domain": "ingest.example.com",
"app": "live",
"stream": "stream1",
"status": "active",
"recordingFrom": "ingest",
"recordingFormat": ["hls"],
"bucket": "my-bucket",
"path": "/recording/hls/"
}

Successful Response Body

{
"templateName": "streamTemplate",
"created": "2025-07-15T08:49:45Z",
"status": "active",
"domain": "ingest.example.com",
"app": "live",
"stream": "stream1",
"recordingFrom": "ingest",
"recordingFormat": ["hls"],
"bucket": "my-bucket",
"path": "/recording/hls/"
}

Modify a recording template from delivery stream

Request

PUT /lls/v1.0/template/recording/deliveryTemplate HTTP/1.1
{
"domain": "ingest.example.com",
"app": "live",
"stream": "stream1",
"status": "active",
"recordingFrom": "delivery",
"recordingFormat": ["hls"],
"bucket": "my-bucket",
"path": "/recording/hls/"
}

Successful Response Body

{
"templateName": "deliveryTemplate",
"created": "2025-07-15T08:51:30Z",
"status": "active",
"domain": "ingest.example.com",
"app": "live",
"stream": "stream1",
"recordingFrom": "delivery",
"recordingFormat": ["hls"],
"bucket": "my-bucket",
"path": "/recording/hls/"
}

Modify a recording template status to inactive

Request

PUT /lls/v1.0/template/recording/appTemplate HTTP/1.1
{
"domain": "ingest.example.com",
"app": "live",
"status": "inactive",
"recordingFrom": "ingest",
"recordingFormat": ["hls"],
"bucket": "my-bucket",
"path": "/recording/hls/"
}

Successful Response Body

{
"templateName": "appTemplate",
"created": "2025-07-15T08:48:30Z",
"updated": "2025-07-15T10:05:04Z",
"status": "inactive",
"domain": "ingest.example.com",
"app": "live",
"recordingFrom": "ingest",
"recordingFormat": ["hls"],
"bucket": "my-bucket",
"path": "/recording/hls/"
}
Rate Limits

Rate limiting is posed upon the API, please kindly check your API calls to ensure complying with the rate limit below:

  • 100 requests per minute
  • 1000 requests per hour