Amazon Interactive Video Service

2021/04/07 - Amazon Interactive Video Service - 4 new5 updated api methods

Changes  This release adds support for the Auto-Record to S3 feature. Amazon IVS now enables you to save your live video to Amazon S3.

CreateRecordingConfiguration (new) Link ¶

Creates a new recording configuration, used to enable recording to Amazon S3.

Known issue: In the us-east-1 region, if you use the AWS CLI to create a recording configuration, it returns success even if the S3 bucket is in a different region. In this case, the state of the recording configuration is CREATE_FAILED (instead of ACTIVE). (In other regions, the CLI correctly returns failure if the bucket is in a different region.)

Workaround: Ensure that your S3 bucket is in the same region as the recording configuration. If you create a recording configuration in a different region as your S3 bucket, delete that recording configuration and create a new one with an S3 bucket from the correct region.

See also: AWS API Documentation

Request Syntax

client.create_recording_configuration(
    name='string',
    destinationConfiguration={
        's3': {
            'bucketName': 'string'
        }
    },
    tags={
        'string': 'string'
    }
)
type name:

string

param name:

An arbitrary string (a nickname) that helps the customer identify that resource. The value does not need to be unique.

type destinationConfiguration:

dict

param destinationConfiguration:

[REQUIRED]

A complex type that contains a destination configuration for where recorded video will be stored.

  • s3 (dict) --

    An S3 destination configuration where recorded videos will be stored.

    • bucketName (string) -- [REQUIRED]

      Location (S3 bucket name) where recorded videos will be stored.

type tags:

dict

param tags:

Array of 1-50 maps, each of the form string:string (key:value).

  • (string) --

    • (string) --

rtype:

dict

returns:

Response Syntax

{
    'recordingConfiguration': {
        'arn': 'string',
        'name': 'string',
        'destinationConfiguration': {
            's3': {
                'bucketName': 'string'
            }
        },
        'state': 'CREATING'|'CREATE_FAILED'|'ACTIVE',
        'tags': {
            'string': 'string'
        }
    }
}

Response Structure

  • (dict) --

    • recordingConfiguration (dict) --

      An object representing a configuration to record a channel stream.

      • arn (string) --

        Recording-configuration ARN.

      • name (string) --

        An arbitrary string (a nickname) assigned to a recording configuration that helps the customer identify that resource. The value does not need to be unique.

      • destinationConfiguration (dict) --

        A complex type that contains information about where recorded video will be stored.

        • s3 (dict) --

          An S3 destination configuration where recorded videos will be stored.

          • bucketName (string) --

            Location (S3 bucket name) where recorded videos will be stored.

      • state (string) --

        Indicates the current state of the recording configuration. When the state is ACTIVE, the configuration is ready for recording a channel stream.

      • tags (dict) --

        Array of 1-50 maps, each of the form string:string (key:value).

        • (string) --

          • (string) --

ListRecordingConfigurations (new) Link ¶

Gets summary information about all recording configurations in your account, in the AWS region where the API request is processed.

See also: AWS API Documentation

Request Syntax

client.list_recording_configurations(
    nextToken='string',
    maxResults=123
)
type nextToken:

string

param nextToken:

The first recording configuration to retrieve. This is used for pagination; see the nextToken response field.

type maxResults:

integer

param maxResults:

Maximum number of recording configurations to return. Default: 50.

rtype:

dict

returns:

Response Syntax

{
    'recordingConfigurations': [
        {
            'arn': 'string',
            'name': 'string',
            'destinationConfiguration': {
                's3': {
                    'bucketName': 'string'
                }
            },
            'state': 'CREATING'|'CREATE_FAILED'|'ACTIVE',
            'tags': {
                'string': 'string'
            }
        },
    ],
    'nextToken': 'string'
}

Response Structure

  • (dict) --

    • recordingConfigurations (list) --

      List of the matching recording configurations.

      • (dict) --

        Summary information about a RecordingConfiguration.

        • arn (string) --

          Recording-configuration ARN.

        • name (string) --

          An arbitrary string (a nickname) assigned to a recording configuration that helps the customer identify that resource. The value does not need to be unique.

        • destinationConfiguration (dict) --

          A complex type that contains information about where recorded video will be stored.

          • s3 (dict) --

            An S3 destination configuration where recorded videos will be stored.

            • bucketName (string) --

              Location (S3 bucket name) where recorded videos will be stored.

        • state (string) --

          Indicates the current state of the recording configuration. When the state is ACTIVE, the configuration is ready for recording a channel stream.

        • tags (dict) --

          Array of 1-50 maps, each of the form string:string (key:value).

          • (string) --

            • (string) --

    • nextToken (string) --

      If there are more recording configurations than maxResults, use nextToken in the request to get the next set.

GetRecordingConfiguration (new) Link ¶

Gets the recording configuration for the specified ARN.

See also: AWS API Documentation

Request Syntax

client.get_recording_configuration(
    arn='string'
)
type arn:

string

param arn:

[REQUIRED]

ARN of the recording configuration to be retrieved.

rtype:

dict

returns:

Response Syntax

{
    'recordingConfiguration': {
        'arn': 'string',
        'name': 'string',
        'destinationConfiguration': {
            's3': {
                'bucketName': 'string'
            }
        },
        'state': 'CREATING'|'CREATE_FAILED'|'ACTIVE',
        'tags': {
            'string': 'string'
        }
    }
}

Response Structure

  • (dict) --

    • recordingConfiguration (dict) --

      An object representing a configuration to record a channel stream.

      • arn (string) --

        Recording-configuration ARN.

      • name (string) --

        An arbitrary string (a nickname) assigned to a recording configuration that helps the customer identify that resource. The value does not need to be unique.

      • destinationConfiguration (dict) --

        A complex type that contains information about where recorded video will be stored.

        • s3 (dict) --

          An S3 destination configuration where recorded videos will be stored.

          • bucketName (string) --

            Location (S3 bucket name) where recorded videos will be stored.

      • state (string) --

        Indicates the current state of the recording configuration. When the state is ACTIVE, the configuration is ready for recording a channel stream.

      • tags (dict) --

        Array of 1-50 maps, each of the form string:string (key:value).

        • (string) --

          • (string) --

DeleteRecordingConfiguration (new) Link ¶

Deletes the recording configuration for the specified ARN.

If you try to delete a recording configuration that is associated with a channel, you will get an error (409 ConflictException). To avoid this, for all channels that reference the recording configuration, first use UpdateChannel to set the recordingConfigurationArn field to an empty string, then use DeleteRecordingConfiguration.

See also: AWS API Documentation

Request Syntax

client.delete_recording_configuration(
    arn='string'
)
type arn:

string

param arn:

[REQUIRED]

ARN of the recording configuration to be deleted.

returns:

None

BatchGetChannel (updated) Link ¶
Changes (response)
{'channels': {'recordingConfigurationArn': 'string'}}

Performs GetChannel on multiple ARNs simultaneously.

See also: AWS API Documentation

Request Syntax

client.batch_get_channel(
    arns=[
        'string',
    ]
)
type arns:

list

param arns:

[REQUIRED]

Array of ARNs, one per channel.

  • (string) --

rtype:

dict

returns:

Response Syntax

{
    'channels': [
        {
            'arn': 'string',
            'name': 'string',
            'latencyMode': 'NORMAL'|'LOW',
            'type': 'BASIC'|'STANDARD',
            'recordingConfigurationArn': 'string',
            'ingestEndpoint': 'string',
            'playbackUrl': 'string',
            'authorized': True|False,
            'tags': {
                'string': 'string'
            }
        },
    ],
    'errors': [
        {
            'arn': 'string',
            'code': 'string',
            'message': 'string'
        },
    ]
}

Response Structure

  • (dict) --

    • channels (list) --

      • (dict) --

        Object specifying a channel.

        • arn (string) --

          Channel ARN.

        • name (string) --

          Channel name.

        • latencyMode (string) --

          Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. Default: LOW. (Note: In the Amazon IVS console, LOW and NORMAL correspond to Ultra-low and Standard, respectively.)

        • type (string) --

          Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. Valid values:

          • STANDARD: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Vertical resolution can be up to 1080 and bitrate can be up to 8.5 Mbps.

          • BASIC: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Vertical resolution can be up to 480 and bitrate can be up to 1.5 Mbps.

        • recordingConfigurationArn (string) --

          Recording-configuration ARN. A value other than an empty string indicates that recording is enabled. Default: "" (empty string, recording is disabled).

        • ingestEndpoint (string) --

          Channel ingest endpoint, part of the definition of an ingest server, used when you set up streaming software.

        • playbackUrl (string) --

          Channel playback URL.

        • authorized (boolean) --

          Whether the channel is private (enabled for playback authorization). Default: false.

        • tags (dict) --

          Array of 1-50 maps, each of the form string:string (key:value).

          • (string) --

            • (string) --

    • errors (list) --

      Each error object is related to a specific ARN in the request.

      • (dict) --

        Error related to a specific channel, specified by its ARN.

        • arn (string) --

          Channel ARN.

        • code (string) --

          Error code.

        • message (string) --

          Error message, determined by the application.

CreateChannel (updated) Link ¶
Changes (request, response)
Request
{'recordingConfigurationArn': 'string'}
Response
{'channel': {'recordingConfigurationArn': 'string'}}

Creates a new channel and an associated stream key to start streaming.

See also: AWS API Documentation

Request Syntax

client.create_channel(
    name='string',
    latencyMode='NORMAL'|'LOW',
    type='BASIC'|'STANDARD',
    authorized=True|False,
    recordingConfigurationArn='string',
    tags={
        'string': 'string'
    }
)
type name:

string

param name:

Channel name.

type latencyMode:

string

param latencyMode:

Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. (Note: In the Amazon IVS console, LOW and NORMAL correspond to Ultra-low and Standard, respectively.) Default: LOW.

type type:

string

param type:

Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. Valid values:

  • STANDARD: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Vertical resolution can be up to 1080 and bitrate can be up to 8.5 Mbps.

  • BASIC: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Vertical resolution can be up to 480 and bitrate can be up to 1.5 Mbps.

type authorized:

boolean

param authorized:

Whether the channel is private (enabled for playback authorization). Default: false.

type recordingConfigurationArn:

string

param recordingConfigurationArn:

Recording-configuration ARN. Default: "" (empty string, recording is disabled).

type tags:

dict

param tags:

Array of 1-50 maps, each of the form string:string (key:value).

  • (string) --

    • (string) --

rtype:

dict

returns:

Response Syntax

{
    'channel': {
        'arn': 'string',
        'name': 'string',
        'latencyMode': 'NORMAL'|'LOW',
        'type': 'BASIC'|'STANDARD',
        'recordingConfigurationArn': 'string',
        'ingestEndpoint': 'string',
        'playbackUrl': 'string',
        'authorized': True|False,
        'tags': {
            'string': 'string'
        }
    },
    'streamKey': {
        'arn': 'string',
        'value': 'string',
        'channelArn': 'string',
        'tags': {
            'string': 'string'
        }
    }
}

Response Structure

  • (dict) --

    • channel (dict) --

      Object specifying a channel.

      • arn (string) --

        Channel ARN.

      • name (string) --

        Channel name.

      • latencyMode (string) --

        Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. Default: LOW. (Note: In the Amazon IVS console, LOW and NORMAL correspond to Ultra-low and Standard, respectively.)

      • type (string) --

        Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. Valid values:

        • STANDARD: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Vertical resolution can be up to 1080 and bitrate can be up to 8.5 Mbps.

        • BASIC: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Vertical resolution can be up to 480 and bitrate can be up to 1.5 Mbps.

      • recordingConfigurationArn (string) --

        Recording-configuration ARN. A value other than an empty string indicates that recording is enabled. Default: "" (empty string, recording is disabled).

      • ingestEndpoint (string) --

        Channel ingest endpoint, part of the definition of an ingest server, used when you set up streaming software.

      • playbackUrl (string) --

        Channel playback URL.

      • authorized (boolean) --

        Whether the channel is private (enabled for playback authorization). Default: false.

      • tags (dict) --

        Array of 1-50 maps, each of the form string:string (key:value).

        • (string) --

          • (string) --

    • streamKey (dict) --

      Object specifying a stream key.

      • arn (string) --

        Stream-key ARN.

      • value (string) --

        Stream-key value.

      • channelArn (string) --

        Channel ARN for the stream.

      • tags (dict) --

        Array of 1-50 maps, each of the form string:string (key:value).

        • (string) --

          • (string) --

GetChannel (updated) Link ¶
Changes (response)
{'channel': {'recordingConfigurationArn': 'string'}}

Gets the channel configuration for the specified channel ARN. See also BatchGetChannel.

See also: AWS API Documentation

Request Syntax

client.get_channel(
    arn='string'
)
type arn:

string

param arn:

[REQUIRED]

ARN of the channel for which the configuration is to be retrieved.

rtype:

dict

returns:

Response Syntax

{
    'channel': {
        'arn': 'string',
        'name': 'string',
        'latencyMode': 'NORMAL'|'LOW',
        'type': 'BASIC'|'STANDARD',
        'recordingConfigurationArn': 'string',
        'ingestEndpoint': 'string',
        'playbackUrl': 'string',
        'authorized': True|False,
        'tags': {
            'string': 'string'
        }
    }
}

Response Structure

  • (dict) --

    • channel (dict) --

      Object specifying a channel.

      • arn (string) --

        Channel ARN.

      • name (string) --

        Channel name.

      • latencyMode (string) --

        Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. Default: LOW. (Note: In the Amazon IVS console, LOW and NORMAL correspond to Ultra-low and Standard, respectively.)

      • type (string) --

        Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. Valid values:

        • STANDARD: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Vertical resolution can be up to 1080 and bitrate can be up to 8.5 Mbps.

        • BASIC: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Vertical resolution can be up to 480 and bitrate can be up to 1.5 Mbps.

      • recordingConfigurationArn (string) --

        Recording-configuration ARN. A value other than an empty string indicates that recording is enabled. Default: "" (empty string, recording is disabled).

      • ingestEndpoint (string) --

        Channel ingest endpoint, part of the definition of an ingest server, used when you set up streaming software.

      • playbackUrl (string) --

        Channel playback URL.

      • authorized (boolean) --

        Whether the channel is private (enabled for playback authorization). Default: false.

      • tags (dict) --

        Array of 1-50 maps, each of the form string:string (key:value).

        • (string) --

          • (string) --

ListChannels (updated) Link ¶
Changes (request, response)
Request
{'filterByRecordingConfigurationArn': 'string'}
Response
{'channels': {'recordingConfigurationArn': 'string'}}

Gets summary information about all channels in your account, in the AWS region where the API request is processed. This list can be filtered to match a specified name or recording-configuration ARN. Filters are mutually exclusive and cannot be used together. If you try to use both filters, you will get an error (409 ConflictException).

See also: AWS API Documentation

Request Syntax

client.list_channels(
    filterByName='string',
    filterByRecordingConfigurationArn='string',
    nextToken='string',
    maxResults=123
)
type filterByName:

string

param filterByName:

Filters the channel list to match the specified name.

type filterByRecordingConfigurationArn:

string

param filterByRecordingConfigurationArn:

Filters the channel list to match the specified recording-configuration ARN.

type nextToken:

string

param nextToken:

The first channel to retrieve. This is used for pagination; see the nextToken response field.

type maxResults:

integer

param maxResults:

Maximum number of channels to return. Default: 50.

rtype:

dict

returns:

Response Syntax

{
    'channels': [
        {
            'arn': 'string',
            'name': 'string',
            'latencyMode': 'NORMAL'|'LOW',
            'authorized': True|False,
            'recordingConfigurationArn': 'string',
            'tags': {
                'string': 'string'
            }
        },
    ],
    'nextToken': 'string'
}

Response Structure

  • (dict) --

    • channels (list) --

      List of the matching channels.

      • (dict) --

        Summary information about a channel.

        • arn (string) --

          Channel ARN.

        • name (string) --

          Channel name.

        • latencyMode (string) --

          Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. Default: LOW. (Note: In the Amazon IVS console, LOW and NORMAL correspond to Ultra-low and Standard, respectively.)

        • authorized (boolean) --

          Whether the channel is private (enabled for playback authorization). Default: false.

        • recordingConfigurationArn (string) --

          Recording-configuration ARN. A value other than an empty string indicates that recording is enabled. Default: "" (empty string, recording is disabled).

        • tags (dict) --

          Array of 1-50 maps, each of the form string:string (key:value).

          • (string) --

            • (string) --

    • nextToken (string) --

      If there are more channels than maxResults, use nextToken in the request to get the next set.

UpdateChannel (updated) Link ¶
Changes (request, response)
Request
{'recordingConfigurationArn': 'string'}
Response
{'channel': {'recordingConfigurationArn': 'string'}}

Updates a channel's configuration. This does not affect an ongoing stream of this channel. You must stop and restart the stream for the changes to take effect.

See also: AWS API Documentation

Request Syntax

client.update_channel(
    arn='string',
    name='string',
    latencyMode='NORMAL'|'LOW',
    type='BASIC'|'STANDARD',
    authorized=True|False,
    recordingConfigurationArn='string'
)
type arn:

string

param arn:

[REQUIRED]

ARN of the channel to be updated.

type name:

string

param name:

Channel name.

type latencyMode:

string

param latencyMode:

Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. (Note: In the Amazon IVS console, LOW and NORMAL correspond to Ultra-low and Standard, respectively.)

type type:

string

param type:

Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately. Valid values:

  • STANDARD: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Vertical resolution can be up to 1080 and bitrate can be up to 8.5 Mbps.

  • BASIC: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Vertical resolution can be up to 480 and bitrate can be up to 1.5 Mbps.

type authorized:

boolean

param authorized:

Whether the channel is private (enabled for playback authorization).

type recordingConfigurationArn:

string

param recordingConfigurationArn:

Recording-configuration ARN. If this is set to an empty string, recording is disabled. A value other than an empty string indicates that recording is enabled

rtype:

dict

returns:

Response Syntax

{
    'channel': {
        'arn': 'string',
        'name': 'string',
        'latencyMode': 'NORMAL'|'LOW',
        'type': 'BASIC'|'STANDARD',
        'recordingConfigurationArn': 'string',
        'ingestEndpoint': 'string',
        'playbackUrl': 'string',
        'authorized': True|False,
        'tags': {
            'string': 'string'
        }
    }
}

Response Structure

  • (dict) --

    • channel (dict) --

      Object specifying a channel.

      • arn (string) --

        Channel ARN.

      • name (string) --

        Channel name.

      • latencyMode (string) --

        Channel latency mode. Use NORMAL to broadcast and deliver live video up to Full HD. Use LOW for near-real-time interaction with viewers. Default: LOW. (Note: In the Amazon IVS console, LOW and NORMAL correspond to Ultra-low and Standard, respectively.)

      • type (string) --

        Channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream probably will disconnect immediately. Default: STANDARD. Valid values:

        • STANDARD: Multiple qualities are generated from the original input, to automatically give viewers the best experience for their devices and network conditions. Vertical resolution can be up to 1080 and bitrate can be up to 8.5 Mbps.

        • BASIC: Amazon IVS delivers the original input to viewers. The viewer’s video-quality choice is limited to the original input. Vertical resolution can be up to 480 and bitrate can be up to 1.5 Mbps.

      • recordingConfigurationArn (string) --

        Recording-configuration ARN. A value other than an empty string indicates that recording is enabled. Default: "" (empty string, recording is disabled).

      • ingestEndpoint (string) --

        Channel ingest endpoint, part of the definition of an ingest server, used when you set up streaming software.

      • playbackUrl (string) --

        Channel playback URL.

      • authorized (boolean) --

        Whether the channel is private (enabled for playback authorization). Default: false.

      • tags (dict) --

        Array of 1-50 maps, each of the form string:string (key:value).

        • (string) --

          • (string) --