TerraformPilot

DevOps

Terraform for webOS LG Smart TV App Backends

Provision LG webOS smart TV app backends with Terraform: AWS streaming, content APIs, low-latency analytics, and OTT delivery on CloudFront.

LLuca Berton1 min read

webOS is LG's smart TV OS. App backends share the OTT pattern: Cognito or your own auth, AppSync or REST for content, CloudFront for delivery. Terraform provisions everything except the on-device app.

Quick Pattern (TL;DR)

#
resource "aws_apigatewayv2_api" "webos" {
  name          = "webos-api"
  protocol_type = "HTTP"
  cors_configuration {
    allow_origins = ["*"]
    allow_methods = ["GET", "POST"]
  }
}
 
resource "aws_cloudfront_distribution" "webos_vod" {
  enabled = true
  http_version = "http2and3"
 
  origin {
    domain_name = aws_s3_bucket.vod.bucket_regional_domain_name
    origin_id   = "vod"
    origin_access_control_id = aws_cloudfront_origin_access_control.vod.id
  }
 
  default_cache_behavior {
    target_origin_id = "vod"
    viewer_protocol_policy = "redirect-to-https"
    allowed_methods = ["GET", "HEAD"]
    cached_methods  = ["GET", "HEAD"]
    cache_policy_id = data.aws_cloudfront_cache_policy.optimized.id
  }
 
  restrictions { geo_restriction { restriction_type = "none" } }
  viewer_certificate { cloudfront_default_certificate = true }
}

DRM Key Server

#
resource "aws_lambda_function" "widevine_kms" {
  function_name = "webos-widevine"
  role          = aws_iam_role.drm.arn
  package_type  = "Image"
  image_uri     = "${aws_ecr_repository.drm.repository_url}:${var.tag}"
  timeout       = 5
  memory_size   = 512
}

Best Practices

#
  • webOS supports DASH + HLS + Widevine + PlayReady — encode for both DRMs.
  • Aggressive client-side caching — TV apps update slowly; design APIs for cache-friendliness.
  • Voice search payloads can be large — keep them on POST, not GET.
  • Test on real LG TVs — webOS emulator misrepresents memory budgets.
#
#Terraform#webOS#LG#Smart TV#OTT

Share this article