# 第三方 API 分类速查
这一层只收录服务端到服务端的安全入口:长期 API Token 留在业务后端,浏览器和播放器只接收资源绑定的短时地址。接口按资源、直播、录像和裁剪删除分类。
本页覆盖 **27** 个接口。每一行都回答五件事:接口地址、它做什么、何时调用、如何确认完成、谁可以调用。参数字段的精确定义以同版本 OpenAPI 为准。
> “业务接口”可以由 WebUI 或第三方系统按权限调用;“管理员接口”需要后台管理员;“内部接口/内部回调”只允许产品组件之间使用。
## 接入与资源
| 接口 | 讲人话 | 什么时候用 | 调完看什么 | 身份 / 权限 | 主要输入 |
|---|---|---|---|---|---|
| `GET /api/v2/third-party/capabilities` | 验证第三方 API Token 并读取能力分类。 | 在展示功能、生成表单或发起控制前,先用它确认当前版本和目标设备真正支持什么。 | 以返回数据、分页总数和目标资源的当前状态为准。 | 第三方接口
`authenticated` | 无业务参数 |
| `GET /api/v2/third-party/media-servers` | 查询第三方可用媒体节点。 | 页面加载、刷新状态或按条件检索数据时调用。 | 以返回数据、分页总数和目标资源的当前状态为准。 | 第三方接口
`nodes.view` | clusterId |
## 通道与直播
| 接口 | 讲人话 | 什么时候用 | 调完看什么 | 身份 / 权限 | 主要输入 |
|---|---|---|---|---|---|
| `GET /api/v2/third-party/channels` | 分页查询第三方视频通道。 | 页面加载、刷新状态或按条件检索数据时调用。 | 以返回数据、分页总数和目标资源的当前状态为准。 | 第三方接口
`channels.view` | page、pageSize、mediaServerId、nodeId、protocol、vhost、app、stream、streamId、deviceId、deviceChannelId、enabled、autoVideo、autoRecord、noPlayerBreak、hasAudio、hasPtz、isShareChannel、desiredState、actualState、sourceUrl、keyword |
| `GET /api/v2/third-party/channels/{channelId}` | 查看第三方视频通道详情。 | 页面加载、刷新状态或按条件检索数据时调用。 | 以返回数据、分页总数和目标资源的当前状态为准。 | 第三方接口
`channels.view` | channelId(必填) |
| `POST /api/v2/third-party/channels/{channelId}/playback` | 签发第三方直播短时播放地址。 | 用户提交业务动作或配置变更时调用。 | 重新读取目标资源,确认保存值和运行状态都已更新。 | 第三方接口
`streams.play` | channelId(必填)、ThirdPartyLivePlaybackRequest |
| `POST /api/v2/third-party/channels/{channelId}/playback-lease` | 创建 URL 不变的第三方直播播放租约。 | 用户提交业务动作或配置变更时调用。 | 重新读取目标资源,确认保存值和运行状态都已更新。 | 第三方接口
`streams.play` | channelId(必填)、ThirdPartyPlaybackLeaseRequest |
| `POST /api/v2/third-party/channels/{channelId}/start` | 启动第三方视频通道拉流。 | 用户提交业务动作或配置变更时调用。 | HTTP 成功只表示请求被接收;继续查询命令、任务、通道或会话状态,直到成功或失败终态。 | 第三方接口
`channels.manage` | channelId(必填) |
| `POST /api/v2/third-party/channels/{channelId}/stop` | 停止并暂停第三方视频通道。 | 用户提交业务动作或配置变更时调用。 | HTTP 成功只表示请求被接收;继续查询命令、任务、通道或会话状态,直到成功或失败终态。 | 第三方接口
`channels.manage` | channelId(必填) |
| `GET /api/v2/third-party/streams` | 查询第三方流会话状态。 | 页面加载、刷新状态或按条件检索数据时调用。 | 以返回数据、分页总数和目标资源的当前状态为准。 | 第三方接口
`streams.view` | mediaServerId、streamId、state |
## 裁剪合并
| 接口 | 讲人话 | 什么时候用 | 调完看什么 | 身份 / 权限 | 主要输入 |
|---|---|---|---|---|---|
| `GET /api/v2/third-party/cut-merge/tasks` | 分页查询第三方裁剪合并任务。 | 页面加载、刷新状态或按条件检索数据时调用。 | 以返回数据、分页总数和目标资源的当前状态为准。 | 第三方接口
`recordings.view` | mediaServerId、taskStatus、mainId、page、pageSize |
| `POST /api/v2/third-party/cut-merge/tasks` | 创建第三方录像裁剪合并任务。 | 用户提交业务动作或配置变更时调用。 | HTTP 成功只表示请求被接收;继续查询命令、任务、通道或会话状态,直到成功或失败终态。 | 第三方接口
`recordings.manage` | CutMergeRequest |
| `DELETE /api/v2/third-party/cut-merge/tasks/{taskId}` | 删除第三方裁剪合并任务。 | 用户明确确认删除或清理后调用;调用前应先展示影响范围。 | HTTP 成功只表示请求被接收;继续查询命令、任务、通道或会话状态,直到成功或失败终态。 | 第三方接口
`recordings.delete` | taskId(必填)、deleteOutputFile |
| `GET /api/v2/third-party/cut-merge/tasks/{taskId}` | 查看第三方裁剪合并任务状态。 | 页面加载、刷新状态或按条件检索数据时调用。 | 以返回数据、分页总数和目标资源的当前状态为准。 | 第三方接口
`recordings.view` | taskId(必填) |
| `POST /api/v2/third-party/cut-merge/tasks/{taskId}/download-link` | 签发裁剪合并结果短时下载地址。 | 用户提交业务动作或配置变更时调用。 | HTTP 成功只表示请求被接收;继续查询命令、任务、通道或会话状态,直到成功或失败终态。 | 第三方接口
`recordings.download` | taskId(必填)、ThirdPartyMediaLinkRequest |
| `POST /api/v2/third-party/cut-merge/tasks/{taskId}/playback-lease` | 创建 URL 不变的裁剪结果播放租约。 | 用户提交业务动作或配置变更时调用。 | HTTP 成功只表示请求被接收;继续查询命令、任务、通道或会话状态,直到成功或失败终态。 | 第三方接口
`recordings.play` | taskId(必填)、ThirdPartyPlaybackLeaseRequest |
| `POST /api/v2/third-party/cut-merge/tasks/{taskId}/playback-link` | 签发裁剪合并结果短时播放地址。 | 用户提交业务动作或配置变更时调用。 | HTTP 成功只表示请求被接收;继续查询命令、任务、通道或会话状态,直到成功或失败终态。 | 第三方接口
`recordings.play` | taskId(必填)、ThirdPartyMediaLinkRequest |
## 国标录像回放
| 接口 | 讲人话 | 什么时候用 | 调完看什么 | 身份 / 权限 | 主要输入 |
|---|---|---|---|---|---|
| `POST /api/v2/third-party/gb28181/playback-sessions/{sessionId}/playback-lease` | 为 GB28181 回放会话创建播放租约。 | 用户提交业务动作或配置变更时调用。 | 重新读取目标资源,确认保存值和运行状态都已更新。 | 第三方接口
`streams.play` | sessionId(必填)、ThirdPartyPlaybackLeaseRequest |
## 播放租约
| 接口 | 讲人话 | 什么时候用 | 调完看什么 | 身份 / 权限 | 主要输入 |
|---|---|---|---|---|---|
| `DELETE /api/v2/third-party/playback-leases/{leaseId}` | 撤销第三方播放会话。 | 用户明确确认删除或清理后调用;调用前应先展示影响范围。 | 重新读取目标资源,确认保存值和运行状态都已更新。 | 第三方接口
`authenticated` | leaseId(必填)、reason |
| `GET /api/v2/third-party/playback-leases/{leaseId}` | 查询第三方可续租播放会话状态。 | 页面加载、刷新状态或按条件检索数据时调用。 | 以返回数据、分页总数和目标资源的当前状态为准。 | 第三方接口
`authenticated` | leaseId(必填) |
| `POST /api/v2/third-party/playback-leases/{leaseId}/renew` | 续租第三方播放会话且保持 URL 不变。 | 用户提交业务动作或配置变更时调用。 | 重新读取目标资源,确认保存值和运行状态都已更新。 | 第三方接口
`authenticated` | leaseId(必填)、RenewThirdPartyPlaybackLeaseRequest |
## 录像与删除
| 接口 | 讲人话 | 什么时候用 | 调完看什么 | 身份 / 权限 | 主要输入 |
|---|---|---|---|---|---|
| `GET /api/v2/third-party/recordings` | 分页查询第三方录像文件。 | 页面加载、刷新状态或按条件检索数据时调用。 | 以返回数据、分页总数和目标资源的当前状态为准。 | 第三方接口
`recordings.view` | page、pageSize、channelId、mediaServerId、nodeId、app、streamId、fileState、startTime、endTime |
| `POST /api/v2/third-party/recordings/{fileId}/download-link` | 签发录像短时下载地址。 | 用户提交业务动作或配置变更时调用。 | 重新读取目标资源,确认保存值和运行状态都已更新。 | 第三方接口
`recordings.download` | fileId(必填)、ThirdPartyMediaLinkRequest |
| `POST /api/v2/third-party/recordings/{fileId}/playback-lease` | 创建 URL 不变的录像播放租约。 | 用户提交业务动作或配置变更时调用。 | 重新读取目标资源,确认保存值和运行状态都已更新。 | 第三方接口
`recordings.play` | fileId(必填)、ThirdPartyPlaybackLeaseRequest |
| `POST /api/v2/third-party/recordings/{fileId}/playback-link` | 签发录像短时播放地址。 | 用户提交业务动作或配置变更时调用。 | 重新读取目标资源,确认保存值和运行状态都已更新。 | 第三方接口
`recordings.play` | fileId(必填)、ThirdPartyMediaLinkRequest |
| `POST /api/v2/third-party/recordings/hard-delete` | 第三方批量发起录像硬删除。 | 用户提交业务动作或配置变更时调用。 | 重新读取目标资源,确认保存值和运行状态都已更新。 | 第三方接口
`recordings.delete` | RecordFileBatchRequest |
| `POST /api/v2/third-party/recordings/restore` | 第三方批量恢复软删除录像。 | 用户提交业务动作或配置变更时调用。 | 重新读取目标资源,确认保存值和运行状态都已更新。 | 第三方接口
`recordings.manage` | RecordFileBatchRequest |
| `POST /api/v2/third-party/recordings/soft-delete` | 第三方批量软删除录像。 | 用户提交业务动作或配置变更时调用。 | 重新读取目标资源,确认保存值和运行状态都已更新。 | 第三方接口
`recordings.delete` | RecordFileBatchRequest |
## 接口字段与示例
本页故意先讲清业务用途,不把几百个字段塞进说明文字。真正编码时,请使用与部署版本一起提供的 OpenAPI 和 Postman 资产查看请求体、响应体、枚举、文件类型与示例;不要拿网站最新契约调用旧版本服务。