Skip to main content

Create a Screenshot Template

Request

Request-Line

Post /lls/v1.0/template/screenshot

Request Body

ParameterTypeRequiredDescription
templateNameStringMandatoryscreenshot template name.
domainStringMandatoryingest domain name
appStringOptionalapp name. if not specified, the screenshot template will be applied to all apps.
streamStringOptionalstream name. if not specified, the screenshot template will be applied to all streams.
screenshotFormatStringMandatoryscreenshot format. Valid values: png, jpg.
bucketStringMandatorybucket name to store the screenshot.
pathStringMandatorystorage path under the bucket.

Response

Response Body

ParameterTypeRequiredDescription
templateNameStringMandatoryscreenshot template name.
createdTimestampMandatoryTimestamp of created time in UTC timezone. Default is now.
statusStringMandatoryStatus of screenshot template. Valid values: active, inactive.
domainStringMandatoryingest domain name
appStringOptionalapp name. if not specified, the screenshot template will be applied to all apps.
streamStringOptionalstream name. if not specified, the screenshot template will be applied to all streams.
screenshotFormatStringMandatoryscreenshot format. Valid values: png, jpg.
bucketStringMandatorybucket name to store the screenshot.
pathStringMandatorystorage path under the bucket.

Status Codes, Error Codes and Error Messages

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

Examples

Create a domain-level screenshot template with PNG format

Request

POST /lls/v1.0/template/screenshot HTTP/1.1
{
"templateName": "domainTemplate",
"domain": "ingest.example.com",
"screenshotFormat": "png",
"bucket": "my-bucket",
"path": "/recording/mp4/"
}

Successful Response Body

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

Create a domain+app level screenshot template with PNG format

Request

POST /lls/v1.0/template/screenshot HTTP/1.1
{
"templateName": "appTemplate",
"domain": "ingest.example.com",
"app": "live",
"screenshotFormat": "png",
"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",
"screenshotFormat": "png",
"bucket": "my-bucket",
"path": "/recording/hls/"
}

Create a domain+app+stream level screenshot template with PNG format

Request

POST /lls/v1.0/template/screenshot HTTP/1.1
{
"templateName": "streamTemplate",
"domain": "ingest.example.com",
"app": "live",
"stream": "stream1",
"screenshotFormat": "png",
"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",
"screenshotFormat": "png",
"bucket": "my-bucket",
"path": "/recording/hls/"
}

Create a screenshot template with JPG format

Request

POST /lls/v1.0/template/screenshot HTTP/1.1
{
"templateName": "deliveryTemplate",
"domain": "ingest.example.com",
"app": "live",
"stream": "stream1",
"screenshotFormat": "jpg",
"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",
"screenshotFormat": "jpg",
"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