All Products
Search
Document Center

ApsaraVideo Live:CreateLiveStreamRecordIndexFiles

Last Updated:Dec 05, 2024

Creates an M3U8 index file for a recording in a specified time period.

Operation description

You must have configured Object Storage Service (OSS) before you call this operation. For more information, see Configure OSS. ApsaraVideo Live allows you to record a live stream in the M3U8 format and store the M3U8 file in OSS. You can edit the TS segments that are included in the stored M3U8 file in real time.

Note
  • You can create an index file only after a live stream is ingested. If no live stream is available within the specified time range or the name of the specified live stream is invalid, the index file fails to be created.

  • The time range that is specified by the StartTime and EndTime parameters must be the duration of at least one TS segment. The default duration of a TS segment is 30 seconds.

  • ApsaraVideo Live stores the information about TS segments for only three months. You can create M3U8 index files only for the recordings of the last three months.

  • OSS stores TS segments for a time period that is specified by the storage configuration in OSS. For more information, see Configure lifecycle rules.

  • ApsaraVideo Live stores the information about M3U8 index files for six months. You can query the information about only the M3U8 index files that were created in the last six months.

  • OSS stores M3U8 index files for a time period that is specified by the storage configuration in OSS.

QPS limit

You can call this operation up to 45 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation.

Debugging

You can run this interface directly in OpenAPI Explorer, saving you the trouble of calculating signatures. After running successfully, OpenAPI Explorer can automatically generate SDK code samples.

Authorization information

The following table shows the authorization information corresponding to the API. The authorization information can be used in the Action policy element to grant a RAM user or RAM role the permissions to call this API operation. Description:

  • Operation: the value that you can use in the Action element to specify the operation on a resource.
  • Access level: the access level of each operation. The levels are read, write, and list.
  • Resource type: the type of the resource on which you can authorize the RAM user or the RAM role to perform the operation. Take note of the following items:
    • The required resource types are displayed in bold characters.
    • If the permissions cannot be granted at the resource level, All Resources is used in the Resource type column of the operation.
  • Condition Key: the condition key that is defined by the cloud service.
  • Associated operation: other operations that the RAM user or the RAM role must have permissions to perform to complete the operation. To complete the operation, the RAM user or the RAM role must have the permissions to perform the associated operations.
OperationAccess levelResource typeCondition keyAssociated operation
live:CreateLiveStreamRecordIndexFilescreate
*Domain
acs:cdn:*:{#accountId}:domain/{#DomainName}
    none
none

Request parameters

ParameterTypeRequiredDescriptionExample
DomainNamestringYes

The main streaming domain.

example.com
AppNamestringYes

The name of the application to which the live stream belongs. The value of this parameter must be the same as the application name in the ingest URL. Otherwise, the configuration does not take effect. If you want to match all applications, specify an asterisk (*) as the value.

liveApp****
StreamNamestringYes

The name of the live stream. The value of this parameter must be the same as the stream name in the ingest URL. Otherwise, the configuration does not take effect. If you want to match all streams, specify an asterisk (*) as the value.

liveStream****
OssEndpointstringYes

The endpoint of the OSS bucket.

cn-oss-****.aliyuncs.com
OssBucketstringYes

The name of the OSS bucket.

liveBucket****
OssObjectstringYes

The name of the recording that is stored in OSS.

{AppName}/{StreamName}/{Date}/{Hour}/{Minute}_{Second}.m3u8
StartTimestringYes

The start time of the index file. TS segments that are uploaded after the start time are included in the index file. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.

2017-12-21T08:00:00Z
EndTimestringYes

The end time of the index file. TS segments that are uploaded before the end time are included in the index file. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.

2017-12-22T08:00:00Z
EndTimeIncludedbooleanNo

Specifies whether to include the end time. If you set this parameter to true, the system attempts to include one more TS segment. The created index file covers the entire time range that is specified by the StartTime and EndTime parameters.

false

Response parameters

ParameterTypeDescriptionExample
object
RequestIdstring

The ID of the request.

550439A3-F8EC-4CA2-BB62-B9DB43EEEF30
RecordInfoobject

The recording configuration.

RecordUrlstring

The URL of the M3U8 index file.

http://*****/atestObject.m3u8
StreamNamestring

The name of the live stream.

liveStream****
CreateTimestring

The time when the index file was created. The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mm:ssZ format. The time is displayed in UTC.

2016-05-27T09:40:56Z
RecordIdstring

The ID of the index file.

c4d7f0a4-b506-43f9-8de3-07732c3f****
Heightinteger

The height of the video.

480
OssBucketstring

The name of the OSS bucket.

liveBucket****
DomainNamestring

The main streaming domain.

example.com
OssObjectstring

The name of the recording that is stored in OSS.

liveObject****.m3u8
EndTimestring

The end time of the index file. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.

2015-12-01T07:40:00Z
AppNamestring

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

liveApp****
StartTimestring

The start time of the index file. The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mm:ssZ format. The time is displayed in UTC.

2015-12-01T07:36:00Z
Widthinteger

The width of the video.

640
Durationfloat

The recording length. Unit: seconds.

20
OssEndpointstring

The endpoint of the OSS bucket.

cn-oss-****.aliyuncs.com

Examples

Sample success responses

JSONformat

{
  "RequestId": "550439A3-F8EC-4CA2-BB62-B9DB43EEEF30",
  "RecordInfo": {
    "RecordUrl": "http://*****/atestObject.m3u8",
    "StreamName": "liveStream****",
    "CreateTime": "2016-05-27T09:40:56Z",
    "RecordId": "c4d7f0a4-b506-43f9-8de3-07732c3f****",
    "Height": 480,
    "OssBucket": "liveBucket****",
    "DomainName": "example.com",
    "OssObject": "liveObject****.m3u8",
    "EndTime": "2015-12-01T07:40:00Z",
    "AppName": "liveApp****",
    "StartTime": "2015-12-01T07:36:00Z",
    "Width": 640,
    "Duration": 20,
    "OssEndpoint": "cn-oss-****.aliyuncs.com"
  }
}

Error codes

HTTP status codeError codeError messageDescription
400InvalidStartTime.MismatchSpecified StartTime does not math the current time.-
400InvalidStartTime.MalformedSpecified StartTime is malformed.-
400InvalidParamsinvalid params-
400InvalidEndTime.MalformedSpecified EndTime is malformed.-
400InvalidEndTime.MismatchSpecified end time does not math the specified start time.The end time does not match the start time. Make sure that the start and end times match.
400InvalidOssEndpoint.MalformedSpecified OssEndpoint is malformed.-
400InvalidOssBucket.MalformedSpecified OssBucket is malformed.Invalid value of OSSBucket. Check whether the OSSBucket parameter that you specified is correct.
400InvalidOssObject.MalformedSpecified OssObject is malformed.-
400InvalidStream.NotFoundSpeicified stream does not exist.-
400InvalidConfig.ChangedThe oss bucket info between StartTime and EndTime has changed.ossbucket start end time has changed.
400NoRecordContentThe record content between StartTime and EndTime is empty.-
400RecordContentExceedThe record content between StartTime and EndTime is exceeded, please narrow down the range.-
400OperationNotSupportThe Operation is not support for flv/mp4 format or live to vod record.-
404InvalidBucket.NotFoundThe bucket does not belong to you.the specified bucket does not belong to the current user.
500InternalErrorThe request processing has failed due to some unknown error, exception or failure.-

For a list of error codes, visit the Service error codes.

Change history

Change timeSummary of changesOperation
No change history