
# 多字幕封装 - ModifySubtitle
#### 功能介绍
多字幕封装，支持HLS VTT格式和HLS SRT格式。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/VOD/doc?api=ModifySubtitle)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-vod/vod_04_0012.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                  | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | vod:subtitles:update | Write | -           | -   | -  | -      |
     
  
 
#### URI
PUT /v1/{project_id}/asset/subtitles
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                             |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID，获取方法请参考[获取项目ID](https://support.huaweicloud.com/api-vod/vod_04_0211.html) |
   
#### 请求参数
表2请求Header参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                                         |
|:---|:---|:---|:---|
| X-Auth-Token  | 否    | String | 用户Token，使用Token鉴权方式时必选。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
| Authorization | 否    | String | 使用AK/SK方式认证时必选，携带的鉴权信息。                                                                                    |
| X-Sdk-Date    | 否    | String | 使用AK/SK方式认证时必选，请求的发生时间。                                                                                    |
   
表3请求Body参数 
| 参数               | 是否必选 | 参数类型                                                                       | 描述                                                                                                                                                                        |
|:---|:---|:---|:---|
| asset_id         | 是    | String                                                                     | VOD分配的媒资ID，仅支持查询，不支持修改。                                                                                                                                                   |
| default_language | 否    | String                                                                     | 字幕默认语言（字幕必须存在）                                                                                                                                                            |
| repackage_mode   | 否    | String                                                                     | 外挂模式，不传默认取值为0 取值如下： -0：表示添加的字幕会外挂上历史产物 -1：表示添加的字幕不会外挂上历史产物          |
| delete_mode      | 否    | String                                                                     | 删除模式，不传默认取值为0 取值如下： -0：表示删除字幕会清除历史产物携带的字幕信息 -1：表示删除字幕不清除历史产物携带的字幕信息 |
| add_subtitles    | 否    | Array of [AddSubtitle] objects       | 需新增或修改的字幕                                                                                                                                                                 |
| delete_subtitles | 否    | Array of [DeleteSubtitle] objects | 需删除的字幕，language不能与add_subtitles重复                                                                                                                                         |
   
 表4AddSubtitle 
| 参数       | 是否必选 | 参数类型                                               | 描述                   |
|:---|:---|:---|:---|
| type     | 是    | String                                             | 字幕类型，字幕封装当前支持VTT和SRT |
| language | 是    | String                                             | 字幕语言                 |
| obs_info | 是    | [ObsInfo] object | 字幕OBS桶信息             |
   
 表5ObsInfo 
| 参数     | 是否必选 | 参数类型   | 描述             |
|:---|:---|:---|:---|
| bucket | 是    | String | OBS的bucket名称   |
| object | 是    | String | OBS对象路径，需具体到对象 |
| region | 否    | String | 桶所在区域          |
   
 表6DeleteSubtitle 
| 参数       | 是否必选 | 参数类型   | 描述                   |
|:---|:---|:---|:---|
| type     | 是    | String | 字幕类型，字幕封装当前支持VTT和SRT |
| language | 是    | String | 字幕语言                 |
   
#### 响应参数
**状态码：202**
表7响应Body参数 
| 参数                | 参数类型   | 描述                      |
|:---|:---|:---|
| asset_id          | String | VOD分配的媒资ID，仅支持查询，不支持修改。 |
| thumbnail_task_id | String | 截图任务id，仅支持多截图场景会返回。     |
   
**状态码：400**
表8响应Body参数 
| 参数         | 参数类型   | 描述    |
|:---|:---|:---|
| error_code | String | 错误码。  |
| error_msg  | String | 错误描述。 |
   
#### 请求示例
多字幕封装
```
PUT https://{endpoint}/v1/{project_id}/asset/subtitles
Content-Type: application/json
{
  "asset_id": "f488337c31c8e4622f1590735b134c65",
  "default_language": "cn",
  "add_subtitles": [
    {
      "obs_info": {
        "bucket": "test",
        "object": "subtitle_test/happyNewYearCn.vtt"
      },
      "type": "VTT",
      "language": "cn"
    }
  ],
  "delete_subtitles": [
    {
      "type": "VTT",
      "language": "cn"
    }
  ]
}
```
#### 响应示例
**状态码：202**
处理成功返回。
```
{
  "asset_id" : "a3ef6526e787acff2ca81c7da840f11f"
}
```
**状态码：400**
处理失败返回。
```
{
  "error_code" : "VOD.10053",
  "error_msg" : "The request parameter is illegal, illegal field: {xx}."
}
```
#### 状态码
| 状态码 | 描述      |
|:---|:---|
| 202 | 处理成功返回。 |
| 400 | 处理失败返回。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-vod/ErrorCode.html)。
