保利威文档中心

帮助中心

分页查询暂存视频大纲

更新时间:2026-09-22 17:01:21

接口描述

1、分页查询指定频道下已创建的暂存视频大纲(AI看)任务,无需逐个提交暂存文件ID。
2、接口返回大纲和答题内容的 json 地址,内容需由调用方自行请求该地址获取。
3、接口仅查询已有结果,不会触发大纲生成。
4、接口支持 HTTPS 协议。

接口URL

https://api.polyv.net/live/v4/channel/record-file/subtitle/outline/list

请求方式

GET

接口约束

1、接口调用有频率限制,建议使用 HTTPS,详见调用限制

2、请在服务端生成签名并调用接口,严禁在 Web、App、小程序等客户端保存或使用 appSecret

3、只返回已创建过大纲任务的暂存文件;从未发起过大纲生成的暂存文件不会出现在结果中。

4、只返回当前账号有权限访问的频道数据。

请求参数描述

参数名 必选 类型 说明
appId true String 账号 appId,详见获取密钥
timestamp true Long 当前 13 位毫秒级时间戳,3 分钟内有效
sign true String 32 位大写 MD5 签名,详见签名生成规则
channelId true Integer 频道号
fileId false String 暂存文件 ID。不传则查询该频道下全部大纲任务;仅支持单个,不支持批量
pageNumber false Integer 分页页码,默认 1
pageSize false Integer 每页数据量,默认 10

请求示例

https://api.polyv.net/live/v4/channel/record-file/subtitle/outline/list?appId=yourAppId&timestamp=1700000000000&sign=YOUR_SIGN&channelId=1234567&pageNumber=1&pageSize=10

响应参数描述

参数名 类型 说明
code Integer HTTP 语义状态码,200 表示请求成功
status String 响应状态,成功为 success,失败为 error
success Boolean 是否成功响应
requestId String 请求 ID;排查问题时请一并提供,不应作为业务字段保存
error Object 请求失败时的错误信息,详见error 参数描述
data Object 分页数据,详见data 参数描述

error参数描述

参数名 类型 说明
code Integer 错误码
desc String 错误描述

data参数描述

参数名 类型 说明
pageNumber Integer 当前页码
pageSize Integer 每页数据量
totalPages Long 总页数
totalItems Long 总数据量
contents Array 当前页大纲任务列表,详见contents 参数描述

contents参数描述

参数名 类型 说明
fileId String 暂存文件 ID,与暂存列表、字幕列表的 fileId 一致
status String 大纲生成状态:init 初始化、srt_processing 字幕生成中、outline_processing 大纲生成中、audit 待审核、success 完成、fail 生成失败
outlineUrl String 大纲内容的 json 地址,需自行请求该地址获取内容;未生成完成时为空,结构详见大纲内容结构
questionUrl String 答题内容的 json 地址,需自行请求该地址获取内容;未生成或未开启答题时为空,结构详见答题内容结构
failReason String 生成失败原因,statusfail 时返回,其余为空

同一页中可能同时存在已完成、生成中、生成失败的记录,单个文件的生成状态不影响同页其他文件的返回。

大纲内容结构

请求 outlineUrl 得到的 json 结构如下:

参数名 类型 说明
introduction String 整场内容简介
outlineContent Array 大纲分段列表
outlineContent[].title String 分段标题
outlineContent[].startTime String 分段开始时间,格式 HH:mm:ss,SSS
outlineContent[].endTime String 分段结束时间,格式 HH:mm:ss,SSS
outlineContent[].startIndex Integer 分段对应字幕的开始序号
outlineContent[].endIndex Integer 分段对应字幕的结束序号
outlineContent[].summary Array 该分段的内容要点,字符串数组
outlineContent[].keyword Array 该分段的关键词,字符串数组
{
  "introduction": "本场直播的整体内容简介",
  "outlineContent": [
    {
      "title": "分段标题",
      "startTime": "00:00:00,020",
      "endTime": "00:03:17,080",
      "startIndex": 0,
      "endIndex": 94,
      "summary": [
        "该分段的内容要点一",
        "该分段的内容要点二"
      ],
      "keyword": [
        "关键词一",
        "关键词二"
      ]
    }
  ]
}

答题内容结构

请求 questionUrl 得到的 json 结构如下:

参数名 类型 说明
questions Array 题目列表
questions[].questionId String 题目 ID
questions[].summaryId Integer 题目关联的大纲分段序号
questions[].question String 题干
questions[].selectOptions Array 选项列表
questions[].selectOptions[].option String 选项标识,如 AB
questions[].selectOptions[].content String 选项内容
questions[].answer String 正确答案,对应选项标识
questions[].type String 题目类型:single 单选、multiple 多选
questions[].videoReviewTime Long 视频回顾时间点,单位:秒
questions[].questionTriggerTime Long 题目弹出时间点,单位:秒
questions[].videoReviewTimeFormat String 视频回顾时间点,格式 HH:mm:ss,SSS
questions[].questionTriggerFormat String 题目弹出时间点,格式 HH:mm:ss,SSS
{
  "questions": [
    {
      "questionId": "示例题目ID",
      "summaryId": 1,
      "question": "题干内容",
      "selectOptions": [
        {
          "option": "A",
          "content": "选项A的内容"
        },
        {
          "option": "B",
          "content": "选项B的内容"
        }
      ],
      "answer": "A",
      "type": "single",
      "videoReviewTime": 120,
      "questionTriggerTime": 180,
      "videoReviewTimeFormat": "00:02:00,000",
      "questionTriggerFormat": "00:03:00,000"
    }
  ]
}

Java请求示例

快速接入基础代码请 下载相关依赖源码点击下载源码,下载后加入到自己的源码工程中即可。测试用例中的 HttpUtil.java 和 LiveSignUtil.java 都包含在下载文件中。

强烈建议您使用直播Java SDK完成API的功能对接,直播Java SDK 对API调用逻辑、异常处理、数据签名、HTTP请求线程池进行了统一封装和优化。

private static final Logger log = LoggerFactory.getLogger(getClass());
/**
 * 分页查询暂存视频大纲
 * @throws IOException
 * @throws NoSuchAlgorithmException
 */
@Test
public void pageRecordFileOutlineTest() throws IOException, NoSuchAlgorithmException {
    //公共参数,填写自己的实际参数
    String appId = super.appId;
    String appSecret = super.appSecret;
    String timestamp = String.valueOf(System.currentTimeMillis());

    //业务参数
    String url = "https://api.polyv.net/live/v4/channel/record-file/subtitle/outline/list";
    String channelId = "1234567";

    //http 调用逻辑
    Map<String, String> requestMap = new HashMap<>();
    requestMap.put("appId", appId);
    requestMap.put("timestamp", timestamp);
    requestMap.put("channelId", channelId);
    requestMap.put("pageNumber", "1");
    requestMap.put("pageSize", "10");
    requestMap.put("sign", LiveSignUtil.getSign(requestMap, appSecret));

    String response = HttpUtil.get(url, requestMap);
    log.info("测试分页查询暂存视频大纲成功:{}", response);
    //do somethings
}

响应示例

系统全局错误说明详见全局错误说明

成功示例:

{
  "code": 200,
  "status": "success",
  "success": true,
  "requestId": "示例请求ID",
  "error": null,
  "data": {
    "pageNumber": 1,
    "pageSize": 10,
    "totalPages": 1,
    "totalItems": 3,
    "contents": [
      {
        "fileId": "示例暂存文件ID1",
        "status": "success",
        "outlineUrl": "https://liveimages.videocc.net/video-outline/xxxxxxxxxx/示例大纲文件.json",
        "questionUrl": "https://liveimages.videocc.net/video-question/xxxxxxxxxx/示例答题文件.json",
        "failReason": null
      },
      {
        "fileId": "示例暂存文件ID2",
        "status": "outline_processing",
        "outlineUrl": null,
        "questionUrl": null,
        "failReason": null
      },
      {
        "fileId": "示例暂存文件ID3",
        "status": "fail",
        "outlineUrl": null,
        "questionUrl": null,
        "failReason": "找不到暂存文件字幕"
      }
    ]
  }
}

异常示例:

{
  "code": 400,
  "status": "error",
  "requestId": "示例请求ID",
  "error": {
    "code": 20001,
    "desc": "application not found."
  },
  "success": false
}
联系客服,在线咨询
在线咨询