Skip to content

RecordingConfiguration ​

The RecordingConfiguration resource lets you manage AWS IVS RecordingConfigurations for your video streaming applications. This resource allows you to configure recording settings for your live streams, including destination storage, rendition settings, and thumbnail generation.

Minimal Example ​

Create a basic recording configuration with required properties and a common optional property.

ts
import AWS from "alchemy/aws/control";

const recordingConfig = await AWS.IVS.RecordingConfiguration("basicRecordingConfig", {
  destinationConfiguration: {
    s3: {
      bucketName: "my-video-recordings",
      prefix: "recordings/",
      roleArn: "arn:aws:iam::123456789012:role/IVSRecordingRole"
    }
  },
  recordingReconnectWindowSeconds: 30
});

Advanced Configuration ​

Configure a recording setup with additional options for thumbnails and renditions.

ts
const advancedRecordingConfig = await AWS.IVS.RecordingConfiguration("advancedRecordingConfig", {
  destinationConfiguration: {
    s3: {
      bucketName: "my-advanced-video-recordings",
      prefix: "advanced_recordings/",
      roleArn: "arn:aws:iam::123456789012:role/IVSAdvancedRecordingRole"
    }
  },
  renditionConfiguration: {
    renditions: [
      {
        resolution: "1280x720",
        framerate: 30,
        bitrate: 3000
      },
      {
        resolution: "640x360",
        framerate: 30,
        bitrate: 800
      }
    ]
  },
  thumbnailConfiguration: {
    destination: {
      s3: {
        bucketName: "my-thumbnail-recordings",
        prefix: "thumbnails/",
        roleArn: "arn:aws:iam::123456789012:role/IVSThumbnailRole"
      }
    },
    intervalSeconds: 60
  },
  tags: [
    {
      key: "Project",
      value: "LiveStreaming"
    }
  ]
});

Custom Reconnect Window ​

This example demonstrates how to set a custom reconnect window for recording.

ts
const customReconnectConfig = await AWS.IVS.RecordingConfiguration("customReconnectConfig", {
  destinationConfiguration: {
    s3: {
      bucketName: "my-custom-reconnect-recordings",
      prefix: "custom_recordings/",
      roleArn: "arn:aws:iam::123456789012:role/IVSCustomReconnectRole"
    }
  },
  recordingReconnectWindowSeconds: 45
});

Thumbnail Configuration ​

Configure a recording with thumbnail generation enabled at specific intervals.

ts
const thumbnailConfig = await AWS.IVS.RecordingConfiguration("thumbnailConfig", {
  destinationConfiguration: {
    s3: {
      bucketName: "my-thumbnail-config-recordings",
      prefix: "thumbnails/",
      roleArn: "arn:aws:iam::123456789012:role/IVSThumbnailRole"
    }
  },
  thumbnailConfiguration: {
    destination: {
      s3: {
        bucketName: "my-thumbnails-bucket",
        prefix: "thumbnail_images/",
        roleArn: "arn:aws:iam::123456789012:role/IVSThumbnailRole"
      }
    },
    intervalSeconds: 30
  }
});