# Edit Service

### 1、修改单个视频信息

#### 描述

```
通过视频id等参数修改单个视频信息
接口地址（仅做说明使用）：https://api.polyv.net/v2/video/%s/video-info
```

#### 调用约束

1、接口调用有频率限制，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/limit/README.md)，调用常见异常，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/exceptionDoc/README.md)

#### 单元测试

```java
	@Test
	public void testUpdateVideoInfo() throws IOException, NoSuchAlgorithmException {
        VodUpdateVideoInfoRequest vodUpdateVideoInfoRequest = new VodUpdateVideoInfoRequest();
        VodUpdateVideoInfoResponse vodUpdateVideoInfoResponse = null;
        try {
            vodUpdateVideoInfoRequest
                    //可通过 new VodQueryServiceImpl().queryVideoList()获取
                    .setVideoId(super.getTestVideoId())
                    .setDesc("这是一个通过junit合并的视频")
                    .setTag("junit测试");
            vodUpdateVideoInfoResponse = new VodEditServiceImpl().updateVideoInfo(vodUpdateVideoInfoRequest);
            Assert.assertNotNull(vodUpdateVideoInfoResponse);
            if (vodUpdateVideoInfoResponse != null) {
                log.debug("测试修改单个视频信息成功，{}", JSON.toJSONString(vodUpdateVideoInfoResponse));
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误，错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑，记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }
```

#### 单元测试说明

1、请求正确，返回VodUpdateVideoInfoResponse对象，B端依据此对象处理业务逻辑；

2、请求参数校验不合格，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 输入参数 \[xxx.chat.VodxxxRequest]对象校验失败，失败字段 \[pic不能为空 / msg不能为空] ]

3、服务器处理异常，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 保利威请求返回数据错误，请求流水号：66e7ad29fd04425a84c2b2b562d2025b，错误原因： invalid signature. ]

#### 请求入参描述

| 参数名        | 必选    | 类型     | 说明                          |
| ---------- | ----- | ------ | --------------------------- |
| videoId    | true  | String | 视频ID【对应api文档的**vid**字段】     |
| desc       | false | String | 视频描述【对应api文档的**describ**字段】 |
| publishUrl | false | String | 视频首发外链地址                    |
| tag        | false | String | 视频标签                        |
| title      | false | String | 视频标题                        |

#### 返回对象描述

| 参数名                | 类型        | 说明                                                                                                                         |
| ------------------ | --------- | -------------------------------------------------------------------------------------------------------------------------- |
| imagesBig          | String\[] | 视频截图大图地址【对应api文档的**images\_b**字段】                                                                                          |
| images             | String\[] | 视频截图小图地址                                                                                                                   |
| tag                | String    | 视频标签                                                                                                                       |
| title              | String    | 视频标题                                                                                                                       |
| df                 | Integer   | 视频码率数                                                                                                                      |
| times              | String    | 播放次数                                                                                                                       |
| videoId            | String    | 视频id【对应api文档的**vid**字段】                                                                                                    |
| SDMp4              | String    | 流畅码率mp4格式视频地址【对应api文档的**mp4\_1**字段】                                                                                        |
| HDmp4              | String    | 高清码率mp4格式视频地址【对应api文档的**mp4\_2**字段】                                                                                        |
| FHDmp4             | String    | 超清码率mp4格式视频地址【对应api文档的**mp4\_3**字段】                                                                                        |
| categoryId         | String    | 分类id， 如1为根目录【对应api文档的**cataid**字段】                                                                                         |
| swfLink            | String    | 返回flash链接【对应api文档的**swf\_link**字段】                                                                                         |
| status             | String    | 视频状态：60/61已发布；10等待编码；20正在编码；50等待审核；51审核不通过；-1已删除；                                                                          |
| seed               | Integer   | 加密视频为1，非加密为0                                                                                                               |
| SDFlv              | String    | 流畅码率flv格式视频地址【对应api文档的**flv1**字段】                                                                                          |
| HDFlv              | String    | 高清码率flv格式视频地址【对应api文档的**flv2**字段】                                                                                          |
| FHDFlv             | String    | 超清码率flv格式视频地址【对应api文档的**flv3**字段】                                                                                          |
| sourceFile         | String    | 源文件【对应api文档的**sourcefile**字段】                                                                                              |
| playerWidth        | String    | 视频宽度【对应api文档的**playerwidth**字段】                                                                                            |
| defaultVideo       | String    | 用户默认播放视频【对应api文档的**default\_video**字段】                                                                                     |
| duration           | String    | 视频时长,如：00:00:48                                                                                                            |
| firstImage         | String    | 视频首图【对应api文档的**first\_image**字段】                                                                                           |
| originalDefinition | String    | 最佳分辨率【对应api文档的**original\_definition**字段】                                                                                  |
| context            | String    | 视频描述                                                                                                                       |
| playerHeight       | String    | 视频高度【对应api文档的**playerheight**字段】                                                                                           |
| uploadTime         | String    | 上传时间【对应api文档的**ptime**字段】                                                                                                  |
| sourceFilesize     | String    | 源文件大小【对应api文档的**source\_filesize**字段】                                                                                      |
| filesize           | String\[] | 编码后各个清晰度视频的文件大小，类型为array                                                                                                   |
| md5Checksum        | String    | md5校验值【对应api文档的**md5checksum**字段】                                                                                          |
| hls                | String\[] | 编码后各个清晰度视频的m3u8地址，类型为array                                                                                                 |
| keepSource         | String    | 是否为源文件，否：0,是：1【对应api文档的**keepsource**字段】                                                                                   |
| uploader           | Uploader  | 上传者信息【详见[Uploader参数描述](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/editService.md?id=polyv8)】 |
| hlsLevel           | String    | 加密等级 open:非授权加密 web：web授权 app：app授权 wxa\_app：小程序授权                                                                         |
| categoryName       | String    | 分类名称【对应api文档的**cataname**字段】                                                                                               |

[**Uploader参数描述**](#/editService.md?id=polyv8)

| 参数名   | 类型     | 说明                 |
| ----- | ------ | ------------------ |
| email | String | 上传者邮箱              |
| name  | String | 上传者名称              |
| role  | String | 上传者角色,如管理员,上传者,主账号 |

\ <br>

***

\ <br>

### 2、修改视频的授权播放开关

#### 描述

```
通过视频id修改单个视频或多个视频的授权播放开关状态
接口地址（仅做说明使用）：https://api.polyv.net/v2/video/%s/authplay-status
```

#### 调用约束

1、接口调用有频率限制，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/limit/README.md)，调用常见异常，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/exceptionDoc/README.md)

#### 单元测试

```java
	@Test
	public void testUpdateVideoPlayStatus() throws IOException, NoSuchAlgorithmException {
        VodUpdateVideoPlayStatusRequest vodUpdateVideoPlayStatusRequest = new VodUpdateVideoPlayStatusRequest();
        Boolean vodUpdateVideoPlayStatusResponse = null;
        try {
            vodUpdateVideoPlayStatusRequest
                    //可通过 new VodQueryServiceImpl().queryVideoList()获取
                    .setVideoIds("1b448be3238618df117f9302327f28d6_1").setPlayAuth(1);
            vodUpdateVideoPlayStatusResponse = new VodEditServiceImpl().updateVideoPlayStatus(
                    vodUpdateVideoPlayStatusRequest);
            Assert.assertTrue(vodUpdateVideoPlayStatusResponse);
            if (vodUpdateVideoPlayStatusResponse) {
                log.debug("测试修改视频的授权播放开关成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误，错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑，记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }
```

#### 单元测试说明

1、请求正确，返回Boolean对象，B端依据此对象处理业务逻辑；

2、请求参数校验不合格，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 输入参数 \[xxx.chat.VodxxxRequest]对象校验失败，失败字段 \[pic不能为空 / msg不能为空] ]

3、服务器处理异常，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 保利威请求返回数据错误，请求流水号：66e7ad29fd04425a84c2b2b562d2025b，错误原因： invalid signature. ]

#### 请求入参描述

| 参数名      | 必选    | 类型      | 说明                                                         |
| -------- | ----- | ------- | ---------------------------------------------------------- |
| videoIds | true  | String  | 多个视频id，用英文逗号隔开(状态为半角)，例如 1b8be3,239c2e【对应api文档的**vids**字段】 |
| playAuth | false | Integer | 是否开启，0：关闭，1：开启，默认为开启【对应api文档的**playauth**字段】               |

#### 返回对象描述

true为修改成功，false为修改失败\ <br>

***

\ <br>

### 3、批量修改视频的授权方式

#### 描述

```
通过视频id与加密授权参数批量修改视频的授权方式
接口地址（仅做说明使用）：https://api.polyv.net/v2/config/%s/hlslevel
```

#### 调用约束

1、接口调用有频率限制，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/limit/README.md)，调用常见异常，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/exceptionDoc/README.md)

#### 单元测试

```java
	@Test
	public void testUpdateVideoHlsLevelList() throws IOException, NoSuchAlgorithmException {
        VodUpdateVideoHlsLevelListRequest vodUpdateVideoHlsLevelListRequest = new VodUpdateVideoHlsLevelListRequest();
        Boolean vodUpdateVideoHlsLevelListResponse = null;
        try {
            vodUpdateVideoHlsLevelListRequest
                    //可通过 new VodQueryServiceImpl().queryVideoList()获取
                    .setVideoIds(super.getTestVideoId()).setHlsLevel("open");
            vodUpdateVideoHlsLevelListResponse = new VodEditServiceImpl().updateVideoHlsLevelList(
                    vodUpdateVideoHlsLevelListRequest);
            Assert.assertTrue(vodUpdateVideoHlsLevelListResponse);
            if (vodUpdateVideoHlsLevelListResponse) {
                log.debug("测试批量修改视频的授权方式成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误，错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑，记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }
```

#### 单元测试说明

1、请求正确，返回Boolean对象，B端依据此对象处理业务逻辑；

2、请求参数校验不合格，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 输入参数 \[xxx.chat.VodxxxRequest]对象校验失败，失败字段 \[pic不能为空 / msg不能为空] ]

3、服务器处理异常，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 保利威请求返回数据错误，请求流水号：66e7ad29fd04425a84c2b2b562d2025b，错误原因： invalid signature. ]

#### 请求入参描述

| 参数名      | 必选   | 类型     | 说明                                                                                                    |
| -------- | ---- | ------ | ----------------------------------------------------------------------------------------------------- |
| hlsLevel | true | String | 加密授权参数，值为open/web/app/wxa\_app之一，open为开放授权，web为WEB授权，app为APP授权，wxa\_app为小程序授权【对应api文档的**hlslevel**字段】 |
| videoIds | true | String | 多个视频的vid，用英文逗号隔开【对应api文档的**vids**字段】                                                                  |

#### 返回对象描述

true为修改视频授权方式成功，false为修改授权方式失败\ <br>

***

\ <br>

### 4、修改视频的播放预览时长

#### 描述

```
1、通过视频id修改视频的预览时长。
2、使用点播后台视频列表，选择视频，复制右侧预览代码即可播放预览视频
接口地址（仅做说明使用）：https://api.polyv.net/v2/video/%s/set-preview-duration
```

#### 调用约束

1、接口调用有频率限制，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/limit/README.md)，调用常见异常，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/exceptionDoc/README.md)

#### 单元测试

```java
	@Test
	public void testSetVideoPreviewDuration() throws IOException, NoSuchAlgorithmException {
        VodSetVideoPreviewDurationRequest vodSetVideoPreviewDurationRequest = new VodSetVideoPreviewDurationRequest();
        Boolean vodSetVideoPreviewDurationResponse = null;
        try {
            vodSetVideoPreviewDurationRequest
                    //可通过 new VodQueryServiceImpl().queryVideoList()获取
                    .setVideoId(super.getTestVideoId()).setDuration(60);
            vodSetVideoPreviewDurationResponse = new VodEditServiceImpl().setVideoPreviewDuration(
                    vodSetVideoPreviewDurationRequest);
            Assert.assertTrue(vodSetVideoPreviewDurationResponse);
            if (vodSetVideoPreviewDurationResponse) {
                log.debug("测试修改视频的播放预览时长成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误，错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑，记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }
```

#### 单元测试说明

1、请求正确，返回Boolean对象，B端依据此对象处理业务逻辑；

2、请求参数校验不合格，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 输入参数 \[xxx.chat.VodxxxRequest]对象校验失败，失败字段 \[pic不能为空 / msg不能为空] ]

3、服务器处理异常，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 保利威请求返回数据错误，请求流水号：66e7ad29fd04425a84c2b2b562d2025b，错误原因： invalid signature. ]

#### 请求入参描述

| 参数名      | 必选   | 类型      | 说明                      |
| -------- | ---- | ------- | ----------------------- |
| videoId  | true | String  | 视频ID【对应api文档的**vid**字段】 |
| duration | true | Integer | 预览的时长（单位是秒），例如：20       |

#### 返回对象描述

true为设置成功，false为设置失败\ <br>

***

\ <br>

### 5、修改视频禁播与解禁开关

#### 描述

```
通过视频id修改视频禁播与解禁状态
接口地址（仅做说明使用）：https://api.polyv.net/v2/video/%s/forbidden
```

#### 调用约束

1、接口调用有频率限制，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/limit/README.md)，调用常见异常，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/exceptionDoc/README.md)

2、禁播后会将视频状态（status）设置成53，一次最多只能操作500个vid

3、只能修改”已发布”状态的视频为禁播状态，只能修改“已禁播”状态的视频为已发布状态

4、当请求中的视频包含多种状态时，只对符合条件的视频进行状态修改操作，并返回成功；若没有符合条件的vid则返回错误。

#### 单元测试

```java
	@Test
	public void testSetVideoForbidden() throws IOException, NoSuchAlgorithmException {
        VodSetVideoForbiddenRequest vodSetVideoForbiddenRequest = new VodSetVideoForbiddenRequest();
        Boolean vodSetVideoForbiddenResponse = null;
        try {
            vodSetVideoForbiddenRequest
                    //可通过 new VodQueryServiceImpl().queryVideoList()获取
                    .setVideoIds(super.getTestVideoId()).setForbidden(0);
            vodSetVideoForbiddenResponse = new VodEditServiceImpl().setVideoForbidden(vodSetVideoForbiddenRequest);
            Assert.assertTrue(vodSetVideoForbiddenResponse);
            if (vodSetVideoForbiddenResponse) {
                log.debug("测试修改视频禁播与解禁开关成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误，错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑，记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }
```

#### 单元测试说明

1、请求正确，返回Boolean对象，B端依据此对象处理业务逻辑；

2、请求参数校验不合格，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 输入参数 \[xxx.chat.VodxxxRequest]对象校验失败，失败字段 \[pic不能为空 / msg不能为空] ]

3、服务器处理异常，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 保利威请求返回数据错误，请求流水号：66e7ad29fd04425a84c2b2b562d2025b，错误原因： invalid signature. ]

#### 请求入参描述

| 参数名       | 必选   | 类型      | 说明                                    |
| --------- | ---- | ------- | ------------------------------------- |
| videoIds  | true | String  | 视频vid，多个视频以英文逗号分隔【对应api文档的**vids**字段】 |
| forbidden | true | Integer | 1：禁播，0：解禁                             |

#### 返回对象描述

true为设置成功，false为设置失败\ <br>

***

\ <br>

### 6、修改视频密码

#### 描述

```
通过视频id批量修改视频密码
接口地址（仅做说明使用）：https://api.polyv.net/v2/video/%s/video-setting-save
```

#### 调用约束

1、接口调用有频率限制，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/limit/README.md)，调用常见异常，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/exceptionDoc/README.md)

#### 单元测试

```java
	@Test
	public void testUpdateVideoSetting() throws IOException, NoSuchAlgorithmException {
        VodUpdateVideoSettingRequest vodUpdateVideoSettingRequest = new VodUpdateVideoSettingRequest();
        Boolean vodUpdateVideoSettingResponse = null;
        try {
            vodUpdateVideoSettingRequest
                    //可通过 new VodQueryServiceImpl().queryVideoList()获取
                    .setVideoIds("1b448be32355403dad586f7468e63e23_1,1b448be323a9076c9941604ac1c667f9_1")
                    .setPassword(super.getRandomString(10))
                    .setPublishUrl(null)
                    .setTag("junit")
                    .setTitle("junit测试");
            vodUpdateVideoSettingResponse = new VodEditServiceImpl().updateVideoSetting(vodUpdateVideoSettingRequest);
            Assert.assertTrue(vodUpdateVideoSettingResponse);
            if (vodUpdateVideoSettingResponse) {
                log.debug("测试修改视频密码成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误，错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑，记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }
```

#### 单元测试说明

1、请求正确，返回Boolean对象，B端依据此对象处理业务逻辑；

2、请求参数校验不合格，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 输入参数 \[xxx.chat.VodxxxRequest]对象校验失败，失败字段 \[pic不能为空 / msg不能为空] ]

3、服务器处理异常，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 保利威请求返回数据错误，请求流水号：66e7ad29fd04425a84c2b2b562d2025b，错误原因： invalid signature. ]

#### 请求入参描述

| 参数名        | 必选    | 类型     | 说明                                  |
| ---------- | ----- | ------ | ----------------------------------- |
| videoIds   | true  | String | 视频ID,多个使用英文逗号分隔【对应api文档的**vids**字段】 |
| desc       | false | String | 视频描述【对应api文档的**describ**字段】         |
| password   | false | String | 视频密码                                |
| publishUrl | false | String | 首发外链                                |
| tag        | false | String | 视频标签                                |
| title      | false | String | 视频标题                                |

#### 返回对象描述

true为修改成功，false为删除失败\ <br>

***

\ <br>

### 7、移动视频到指定分类

#### 描述

```
通过视频id与分类id移动视频到指定分类
接口地址（仅做说明使用）：https://api.polyv.net/v2/video/%s/changeCata
```

#### 调用约束

1、接口调用有频率限制，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/limit/README.md)，调用常见异常，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/exceptionDoc/README.md)

#### 单元测试

```java
	@Test
	public void testMoveVideo() throws IOException, NoSuchAlgorithmException {
        VodMoveVideoRequest vodMoveVideoRequest = new VodMoveVideoRequest();
        Boolean vodMoveVideoResponse = null;
        try {
            vodMoveVideoRequest.setCategoryId("1602671097888").setVideoIds(super.getTestVideoId());
            vodMoveVideoResponse = new VodCategoryServiceImpl().moveVideo(vodMoveVideoRequest);
            Assert.assertTrue(vodMoveVideoResponse);
            if (vodMoveVideoResponse) {
                log.debug("测试移动视频到指定分类成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误，错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑，记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }
```

#### 单元测试说明

1、请求正确，返回Boolean对象，B端依据此对象处理业务逻辑；

2、请求参数校验不合格，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 输入参数 \[xxx.chat.VodxxxRequest]对象校验失败，失败字段 \[pic不能为空 / msg不能为空] ]

3、服务器处理异常，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 保利威请求返回数据错误，请求流水号：66e7ad29fd04425a84c2b2b562d2025b，错误原因： invalid signature. ]

#### 请求入参描述

| 参数名        | 必选   | 类型     | 说明                                                                 |
| ---------- | ---- | ------ | ------------------------------------------------------------------ |
| videoIds   | true | String | 视频的ID,可以选择多个视频，逗号分割，例如 e2e85038\_e,e2e85039\_e【对应api文档的**vids**字段】 |
| categoryId | true | String | 视频将要移动到的目标分类ID【对应api文档的**cataid**字段】                               |

#### 返回对象描述

true为修改成功，false为修改失败\ <br>

***

\ <br>

### 8、恢复回收站视频

#### 描述

```
通过视频id批量恢复回收站中的视频
接口地址（仅做说明使用）：https://api.polyv.net/v2/video/%s/recover-videos
```

#### 调用约束

1、接口调用有频率限制，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/limit/README.md)，调用常见异常，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/exceptionDoc/README.md)

2、接口支持批量恢复，一次性最多支持恢复100个视频。

#### 单元测试

```java
	@Test
	public void testRecoverDelList() throws IOException, NoSuchAlgorithmException {
        VodRecoverDelListRequest vodRecoverDelListRequest = new VodRecoverDelListRequest();
        Boolean vodRecoverDelListResponse = null;
        try {
            vodRecoverDelListRequest
                    //可通过 new VodListServiceImpl().getDelList()获取
                    .setVideoIds("1b448be3232a3206fbbf59f58594d428_1,1b448be32302cab82e0189d115beedd8_1");
            vodRecoverDelListResponse = new VodEditServiceImpl().recoverDelList(vodRecoverDelListRequest);
            Assert.assertTrue(vodRecoverDelListResponse);
            if (vodRecoverDelListResponse) {
                log.debug("测试恢复回收站视频成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误，错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑，记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }
```

#### 单元测试说明

1、请求正确，返回Boolean对象，B端依据此对象处理业务逻辑；

2、请求参数校验不合格，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 输入参数 \[xxx.chat.VodxxxRequest]对象校验失败，失败字段 \[pic不能为空 / msg不能为空] ]

3、服务器处理异常，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 保利威请求返回数据错误，请求流水号：66e7ad29fd04425a84c2b2b562d2025b，错误原因： invalid signature. ]

#### 请求入参描述

| 参数名      | 必选   | 类型     | 说明                                         |
| -------- | ---- | ------ | ------------------------------------------ |
| videoIds | true | String | 点播视频videoId，多个使用英文逗号分隔【对应api文档的**vids**字段】 |

#### 返回对象描述

true为恢复成功，false为恢复失败\ <br>

***

\ <br>

### 9、批量删除视频

#### 描述

```
1、通过视频id批量删除视频
2、删除分为逻辑删除与物理删除，逻辑删除可通过恢复回收站视频接口恢复被删除的视频，而物理删除则不可恢复
接口地址（仅做说明使用）：https://api.polyv.net/v2/video/del-videos
```

#### 调用约束

1、接口调用有频率限制，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/limit/README.md)，调用常见异常，[详细请查看](https://git.polyv.net/help-center/document-center/-/blob/master/vod/java/exceptionDoc/README.md)

2、视频id一次最多提交500个；

#### 单元测试

```java
	@Test
	public void testDeleteVideoList() throws IOException, NoSuchAlgorithmException {
        VodDeleteVideoListRequest vodDeleteVideolistRequest = new VodDeleteVideoListRequest();
        Boolean vodDeleteVideoListResponse = null;
        try {
            vodDeleteVideolistRequest
                    //可通过 new VodQueryServiceImpl().queryVideoList()获取
                    .setVideoIds("1b448be3238ae0aa1020ac2807c9e8c9_1,1b448be323c12aa5e048c3fb5e10ca99_1")
                    .setDeleteType(1);
            vodDeleteVideoListResponse = new VodEditServiceImpl().deleteVideoList(vodDeleteVideolistRequest);
            Assert.assertTrue(vodDeleteVideoListResponse);
            if (vodDeleteVideoListResponse) {
                log.debug("测试批量删除视频成功");
            }
        } catch (PloyvSdkException e) {
            //参数校验不合格 或者 请求服务器端500错误，错误信息见PloyvSdkException.getMessage()
            log.error(e.getMessage(), e);
            // 异常返回做B端异常的业务逻辑，记录log 或者 上报到ETL 或者回滚事务
            throw e;
        } catch (Exception e) {
            log.error("SDK调用异常", e);
            throw e;
        }
    }
```

#### 单元测试说明

1、请求正确，返回Boolean对象，B端依据此对象处理业务逻辑；

2、请求参数校验不合格，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 输入参数 \[xxx.chat.VodxxxRequest]对象校验失败，失败字段 \[pic不能为空 / msg不能为空] ]

3、服务器处理异常，抛出PloyvSdkException，错误信息见PloyvSdkException.getMessage()，如 \[ 保利威请求返回数据错误，请求流水号：66e7ad29fd04425a84c2b2b562d2025b，错误原因： invalid signature. ]

#### 请求入参描述

| 参数名        | 必选    | 类型      | 说明                                                 |
| ---------- | ----- | ------- | -------------------------------------------------- |
| videoIds   | true  | String  | 视频ID，多个视频以英文逗号(,)隔开，一次最多提交500个【对应api文档的**vids**字段】 |
| deleteType | false | Integer | 删除方式，1：删除到回收站，2：彻底删除，默认为：1                         |

#### 返回对象描述

true为批量删除成功，false为批量删除失败<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://polyv.gitbook.io/document/docs/vod/java/editservice.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
