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.
-
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
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.
Operation | Access level | Resource type | Condition key | Associated operation |
---|---|---|---|---|
live:CreateLiveStreamRecordIndexFiles | create | *Domain acs:cdn:*:{#accountId}:domain/{#DomainName} |
| none |
Request parameters
Parameter | Type | Required | Description | Example |
---|---|---|---|---|
DomainName | string | Yes | The main streaming domain. | example.com |
AppName | string | Yes | 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**** |
StreamName | string | Yes | 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**** |
OssEndpoint | string | Yes | The endpoint of the OSS bucket. | cn-oss-****.aliyuncs.com |
OssBucket | string | Yes | The name of the OSS bucket. | liveBucket**** |
OssObject | string | Yes | The name of the recording that is stored in OSS. | {AppName}/{StreamName}/{Date}/{Hour}/{Minute}_{Second}.m3u8 |
StartTime | string | Yes | 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 |
EndTime | string | Yes | 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 |
EndTimeIncluded | boolean | No | 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
Examples
Sample success responses
JSON
format
{
"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 code | Error code | Error message | Description |
---|---|---|---|
400 | InvalidStartTime.Mismatch | Specified StartTime does not math the current time. | - |
400 | InvalidStartTime.Malformed | Specified StartTime is malformed. | - |
400 | InvalidParams | invalid params | - |
400 | InvalidEndTime.Malformed | Specified EndTime is malformed. | - |
400 | InvalidEndTime.Mismatch | Specified 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. |
400 | InvalidOssEndpoint.Malformed | Specified OssEndpoint is malformed. | - |
400 | InvalidOssBucket.Malformed | Specified OssBucket is malformed. | Invalid value of OSSBucket. Check whether the OSSBucket parameter that you specified is correct. |
400 | InvalidOssObject.Malformed | Specified OssObject is malformed. | - |
400 | InvalidStream.NotFound | Speicified stream does not exist. | - |
400 | InvalidConfig.Changed | The oss bucket info between StartTime and EndTime has changed. | ossbucket start end time has changed. |
400 | NoRecordContent | The record content between StartTime and EndTime is empty. | - |
400 | RecordContentExceed | The record content between StartTime and EndTime is exceeded, please narrow down the range. | - |
400 | OperationNotSupport | The Operation is not support for flv/mp4 format or live to vod record. | - |
404 | InvalidBucket.NotFound | The bucket does not belong to you. | the specified bucket does not belong to the current user. |
500 | InternalError | The 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 time | Summary of changes | Operation |
---|