Creates an M3U8 index file for a specified time period.
Usage notes
Object Storage Service (OSS) is configured. 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 period 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 only six months. You can query only the information about the M3U8 index files that are 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. For more information, see QPS limit on an API operation in ApsaraVideo Live.
Debugging
Request parameters
Parameter | Type | Required | Example | Description |
---|---|---|---|---|
Action | String | Yes | CreateLiveStreamRecordIndexFiles | The operation that you want to perform. Set the value to CreateLiveStreamRecordIndexFiles. |
DomainName | String | Yes | example.com | The main streaming domain. |
AppName | String | Yes | liveApp**** | The name of the application to which the live stream belongs. |
StreamName | String | Yes | liveStream**** | The name of the live stream. |
OssEndpoint | String | Yes | cn-oss-****.aliyuncs.com | The endpoint of the OSS bucket. |
OssBucket | String | Yes | liveBucket**** | The name of the OSS bucket. |
OssObject | String | Yes | {AppName}/{StreamName}/{Date}/{Hour}/{Minute}_{Second}.m3u8 | The name of the recording that is stored in OSS. |
StartTime | String | Yes | 2017-12-21T08:00:00Z | 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. |
EndTime | String | Yes | 2017-12-22T08:00:00Z | 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. |
EndTimeIncluded | Boolean | No | false | 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. |
Response parameters
Parameter | Type | Example | Description |
---|---|---|---|
RequestId | String | 550439A3-F8EC-4CA2-BB62-B9DB43EEEF30 | The ID of the request. |
RecordInfo | Object | The recording configuration. |
|
RecordUrl | String | http://*****/atestObject.m3u8 | The URL of the index file. |
StreamName | String | liveStream**** | The name of the live stream. |
CreateTime | String | 2016-05-27T09:40:56Z | 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. |
RecordId | String | c4d7f0a4-b506-43f9-8de3-07732c3f**** | The ID of the index file. |
Height | Integer | 480 | The height of the video. |
OssBucket | String | liveBucket**** | The name of the OSS bucket. |
DomainName | String | example.com | The main streaming domain. |
OssObject | String | liveObject****.m3u8 | The name of the recording that is stored in OSS. |
EndTime | String | 2015-12-01T07:40:00Z | 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. |
AppName | String | liveApp**** | The name of the application to which the live stream belongs. |
StartTime | String | 2015-12-01T07:36:00Z | 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. |
Width | Integer | 640 | The width of the video. |
Duration | Float | 20 | The recording length. Unit: seconds. |
OssEndpoint | String | cn-oss-****.aliyuncs.com | The endpoint of the OSS bucket. |
Examples
Sample requests
http(s)://[Endpoint]/?Action=CreateLiveStreamRecordIndexFiles
&DomainName=example.com
&AppName=liveApp****
&StreamName=liveStream****
&OssEndpoint=cn-oss-****.aliyuncs.com
&OssBucket=liveBucket****
&OssObject={AppName}/{StreamName}/{Date}/{Hour}/{Minute}_{Second}.m3u8
&StartTime=2017-12-21T08:00:00Z
&EndTime=2017-12-22T08:00:00Z
&EndTimeIncluded=false
&<Common request parameters>
Sample success responses
XML
format
HTTP/1.1 200 OK
Content-Type:application/xml
<CreateLiveStreamRecordIndexFilesResponse>
<RequestId>550439A3-F8EC-4CA2-BB62-B9DB43EEEF30</RequestId>
<RecordInfo>
<EndTime>2015-12-01T07:40:00Z</EndTime>
<DomainName>example.com</DomainName>
<CreateTime>2016-05-27T09:40:56Z</CreateTime>
<StartTime>2015-12-01T07:36:00Z</StartTime>
<OssBucket>liveBucket****</OssBucket>
<Duration>20</Duration>
<AppName>liveApp****</AppName>
<StreamName>liveStream****</StreamName>
<OssEndpoint>cn-oss-****.aliyuncs.com</OssEndpoint>
<RecordUrl>http://*****/atestObject.m3u8</RecordUrl>
<OssObject>liveObject****.m3u8</OssObject>
<Height>480</Height>
<RecordId>c4d7f0a4-b506-43f9-8de3-07732c3f****</RecordId>
<Width>640</Width>
</RecordInfo>
</CreateLiveStreamRecordIndexFilesResponse>
JSON
format
HTTP/1.1 200 OK
Content-Type:application/json
{
"CreateLiveStreamRecordIndexFilesResponse" : {
"RequestId" : "550439A3-F8EC-4CA2-BB62-B9DB43EEEF30",
"RecordInfo" : {
"EndTime" : "2015-12-01T07:40:00Z",
"DomainName" : "example.com",
"CreateTime" : "2016-05-27T09:40:56Z",
"StartTime" : "2015-12-01T07:36:00Z",
"OssBucket" : "liveBucket****",
"Duration" : 20,
"AppName" : "liveApp****",
"StreamName" : "liveStream****",
"OssEndpoint" : "cn-oss-****.aliyuncs.com",
"RecordUrl" : "http://*****/atestObject.m3u8",
"OssObject" : "liveObject****.m3u8",
"Height" : 480,
"RecordId" : "c4d7f0a4-b506-43f9-8de3-07732c3f****",
"Width" : 640
}
}
}
Error codes
HTTP status code | Error code | Error message | Description |
---|---|---|---|
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 valid. |
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 valid. |
400 | InvalidEndTime.Mismatch | Specified end time does not math the specified start time. | The error message returned because the end time does not match the start time. Check whether the value of the EndTime parameter matches. |
400 | InvalidOssBucket.Malformed | Specified OssBucket is malformed. | The error message returned because the OSS bucket is invalid. Check whether the value of the OssBucket parameter is valid. |
400 | InvalidOssObject.Malformed | Specified OssObject is malformed. | The error message returned because the OSS object is invalid. Check whether the value of the OssObject parameter is valid. |
400 | InvalidStream.NotFound | Speicified stream does not exist. | The error message returned because the live stream does not exist. Check whether the value of the StreamName parameter is valid. |
400 | InvalidConfig.Changed | The oss bucket info between StartTime and EndTime has changed. | The error message returned because the time range that is specified by the StartTime and EndTime parameters for the OSS bucket changed. |
400 | NoRecordContent | The record content between StartTime and EndTime is empty. | The error message returned because no recordings exist in the time range that is specified by the StartTime and EndTime parameters. |
400 | OperationNotSupport | The operation does not support the FLV or MP4 format, nor does it support streaming recorded from live to VOD. | The error message returned because this operation is not allowed for streams in the FLV and MP4 formats or streams that are recorded to ApsaraVideo VOD. |
For a list of error codes, see Service error codes.