Adds a recording configuration for an application or a live stream.

Usage note

The recording feature supports the automatic recording, on-demand recording, and manual recording modes. You must call this operation to configure a recording template regardless of the recording mode used. You can configure information such as the format and duration of a recording in a recording template. The format of a recording can be M3U8, MP4, or FLV. You can specify multiple recording modes at the same time. For example, you can specify automatic recording for an application and manual recording for a specific live stream. However, a live stream can be recorded in only one mode. If you specify a recording mode for an application and another recording mode for a live stream under the application, the live stream is recorded in the mode specified for the live stream. Assume that you specify automatic recording for an application and manual recording for specific live streams under the application. In this case, the specific live streams are manually recorded. Take note that if you only configure a recording template but do not call the operations related to manual recording for the live streams, the live streams are not recorded.

If the permissions to write live stream recordings to the specified bucket are deleted, use the following methods to reconfigure the permissions:

  • Configure the permissions in the ApsaraVideo Live console. For more information, see Configure OSS.
  • Authorize the RAM user to access ApsaraVideo Live. For more information, see Overview.
Notice You must set one of RecordFormat and TranscodeRecordFormat in the request.

QPS limit

A single user can perform a maximum of 30 queries per second (QPS). Throttling is triggered when the number of calls per second exceeds the QPS limit. The throttling may affect your business. Thus, we recommend that you observe the QPS limit on this operation. For more information about what a single user means and the QPS details, see QPS limit on an API operation in ApsaraVideo Live.

Debugging

OpenAPI Explorer automatically calculates the signature value. For your convenience, we recommend that you call this operation in OpenAPI Explorer. OpenAPI Explorer dynamically generates the sample code of the operation for different SDKs.

Request parameters

Parameter Type Required Example Description
Action String Yes AddLiveAppRecordConfig

The operation that you want to perform. Set the value to AddLiveAppRecordConfig.

AppName String Yes liveApp****

The name of the application to which the live stream belongs.

DomainName String Yes example.com

The main streaming domain.

OssBucket String Yes liveBucket****

The name of the OSS bucket in which the recording is stored.

OssEndpoint String Yes oss-cn-shanghai.aliyundoc.com

The endpoint of OSS.

RecordFormat.N.Format String No m3u8

The format of the recording. Valid values:

  • m3u8
  • flv
  • mp4
RecordFormat.N.OssObjectPrefix String No record/{AppName}/{StreamName}/{Sequence}{EscapedStartTime}{EscapedEndTime}

The name of the recording that is stored in OSS.

  • The name must be less than 256 bytes in length and can contain the {AppName}, {StreamName}, {Sequence}, {StartTime}, {EndTime}, {EscapedStartTime}, and {EscapedEndTime} variables.
  • The name must contain the {StartTime} and {EndTime} variables or the {EscapedStartTime} and {EscapedEndTime} variables.
  • The default recording duration is one hour. The minimum duration is 15 minutes and the maximum duration is six hours.
RecordFormat.N.SliceOssObjectPrefix String No record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}

The name of the TS segment. If the value of the Format parameter is m3u8, this parameter is required.

  • By default, the duration of a TS segment is 30 seconds. The name must be less than 256 bytes in length and can contain the {AppName}, {StreamName}, {UnixTimestamp}, and {Sequence} variables.
  • The name must contain the {UnixTimestamp} and {Sequence} variables.
RecordFormat.N.CycleDuration Integer No 1

The duration of the recording. Unit: seconds. If this parameter is not specified, the default value is six hours.

Note
  • If a live stream is interrupted during a recording period but is resumed within three minutes, the stream is recorded in the same recording before and after the interruption.
  • If a live stream is interrupted for more than three minutes, a new recording is generated. To change the default stream interruption time, submit a ticket.
RecordFormat.N.SliceDuration Integer No 30

The duration of a single segment file in the recording. If the value of the Format parameter is m3u8, this parameter takes effect. Unit: seconds.

If you do not specify this parameter, the default value is 30 seconds. Valid values: 5 to 30.

TranscodeRecordFormat.N.Format String No m3u8

The format of the transcoded stream recording. Valid values:

  • m3u8
  • flv
  • mp4
TranscodeRecordFormat.N.OssObjectPrefix String No record/{AppName}/{StreamName}/{Sequence}{EscapedStartTime}{EscapedEndTime}

The name of the transcoded stream recording that is stored in OSS.

  • The name must be less than 256 bytes in length and can contain the {AppName}, {StreamName}, {Sequence}, {StartTime}, {EndTime}, {EscapedStartTime}, and {EscapedEndTime} variables.
  • The name must contain the {StartTime} and {EndTime} variables or the {EscapedStartTime} and {EscapedEndTime} variables.
  • The default recording duration is one hour. The minimum duration is 15 minutes and the maximum duration is six hours.
TranscodeRecordFormat.N.SliceOssObjectPrefix String No record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}

The name of the TS segment in the transcoded stream recording. If the value of the Format parameter is m3u8, this parameter is required.

  • By default, the duration of a TS segment is 30 seconds. The name must be less than 256 bytes in length and can contain the {AppName}, {StreamName}, {UnixTimestamp}, and {Sequence} variables.
  • The name must contain the {UnixTimestamp} and {Sequence} variables.
TranscodeRecordFormat.N.CycleDuration Integer No 1

The duration of the transcoded stream recording. Unit: seconds. If this parameter is not specified, the default value is six hours.

TranscodeRecordFormat.N.SliceDuration Integer No 30

The duration of a single segment file in the transcoded stream recording. If the value of the Format parameter is m3u8, this parameter takes effect.

Unit: seconds. If you do not specify this parameter, the default value is 30 seconds. Valid values: 5 to 30.

StreamName String No teststream

The name of the live stream.

StartTime String No 2018-04-10T09:57:21Z

The start time of the recording. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.

Note The start time must be within seven days after the stream ingest starts. This parameter takes effect only on the live stream specified by the StreamName parameter. If the StreamName parameter is not specified, this parameter does not take effect.
EndTime String No 2018-04-16T09:57:21Z

The end time of the recording. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.

Note The difference between EndTime and StartTime must be within seven days. If the difference exceeds seven days, ApsaraVideo Live considers seven days as the difference. This parameter takes effect only on the live stream specified by the StreamName parameter. If the StreamName parameter is not specified, this parameter does not take effect.
OnDemand Integer No 1

Specifies whether to enable on-demand recording. Valid values:

  • 0: disables on-demand recording.
  • 1: enables on-demand recording by using the HTTP callback method.
  • 2: enables on-demand recording by parsing the ingest parameters.
  • 7: By default, ApsaraVideo Live does not automatically record live streams. You can call the RealTimeRecordCommand operation to manually start or stop recording.
Note If you set the OnDemand parameter to 1, you must call the AddLiveRecordNotifyConfig operation to configure the OnDemandUrl parameter. Otherwise, ApsaraVideo Live does not perform on-demand recording.
TranscodeTemplates.N RepeatList No sd
  • The AddLiveStreamTranscode of the transcoded stream. You can configure up to 10 transcoding templates at a time.
  • If you specify the TranscodeRecordFormat.N.xxx parameter, configure at least one transcoding template.
  • If you want to record multiple or all transcoded streams, set TranscodeTemplates.1 to *.
    Note
    • You cannot set the value of the TranscodeTemplates parameter to raw. raw is a reserved identifier.
    • The data type RepeatList means to increment the transcode template setting. It is indicated by N in the parameter name. For example, you can set the transcode templates as follows:TranscodeTemplates.1=sd,TranscodeTemplates.2=hd.
Note You must specify the RecordFormat or TranscodeRecordFormat parameter.

Response parameters

Parameter Type Example Description
RequestId String 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8

The ID of the request.

Examples

Sample requests

http(s)://live.aliyundoc.com/?Action=AddLiveAppRecordConfig
&AppName=liveApp****
&DomainName=example.com
&OssBucket=liveBucket****
&OssEndpoint=oss-cn-shanghai.aliyundoc.com
&<Common request parameters>

Sample success responses

XML format

<AddLiveAppRecordConfigResponse>
      <RequestId>16A96B9A-F203-4EC5-8E43-CB92E68F4CD8</RequestId>
</AddLiveAppRecordConfigResponse>

JSON format

{
    "RequestId":"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8"
}

Errors codes

HttpCode Errors code Error message Description
400 InvalidOssBucket.Malformed Specified parameter OssBucket is not valid. The error message returned because the value of the OssBucket parameter is invalid. Check whether the value of the OssBucket parameter is correct.
400 InvalidOssBucket.NotFound The parameter OssBucket does not exist. The error message returned because the OSS bucket does not exist. Check whether the value of the OssBucket parameter is correct.
400 InvalidFormat.Malformed Specified parameter Format is not valid. The error message returned because the format specified for the recording is invalid. Check whether the value of the RecordFormat.N.Format parameter is correct.
400 InvalidCycleDuration.Malformed Specified CycleDuration Format is not valid. The error message returned because the format of the recording duration is invalid. Check whether the value of the RecordFormat.N.CycleDuration parameter is correct.
400 MissingOssObjectPrefix OssObjectPrefix is mandatory for this action. The error message returned because the name of the recording is not specified. Check whether the value of the RecordFormat.N.OssObjectPrefix parameter is correct.
400 InvalidOssObjectPrefix.Malformed Specified parameter OssObjectPrefix is not valid. The error message returned because the name of the recording is invalid. Check whether the value of the RecordFormat.N.OssObjectPrefix parameter is correct.
400 InvalidSliceOssObjectPrefix.Malformed Specified parameter SliceOssObjectPrefix is not valid. The error message returned because the name of the TS segment is invalid. Check whether the value of the RecordFormat.N.SliceOssObjectPrefix parameter is correct.
400 ConfigAlreadyExists Config has already exist. The error message returned because an existing recording configuration is found.
400 InvalidStartTime.Malformed Specified StartTime is malformed. The error message returned because the format of the start time is invalid. Check whether the value of the StartTime parameter is correct.
400 InvalidEndTime.Malformed Specified EndTime is malformed. The error message returned because the format of the end time is invalid. Check whether the value of the EndTime parameter is correct.
400 MissingTemplate You must specify Template. The error message returned because the recording template is not specified. Make sure that the recording template is specified correctly.
400 InvalidSliceDuration.Malformed The specified format of SliceDuration is invalid. The error message returned because the specified segment duration is invalid. Check whether the value of the RecordFormat.N.SliceDuration parameter is correct.
400 InvalidTemplate.ForbidRaw Template named raw is forbidden. The error message returned because the name of the recording template is invalid. You are not allowed to enter a template named raw.
400 InvalidTemplateLength.Malformed The specified number of record template is invalid. The error message returned because the number of specified recording templates is invalid. Check whether the number of specified recording templates is correct.

For a list of error codes, visit the API Error Center.

Take note of the following items:

  • ApsaraVideo Live supports triggered stream pulling. If the streaming URL of the corresponding domain name is used for streaming, ApsaraVideo Live is automatically triggered to pull live streams. If live streams are not played, ApsaraVideo Live does not pull live streams from the origin. In this case, the recording feature in automatic, on-demand and manual modes is also disabled.