Install
openclaw skills install hik-cloud-open-video-recording调用海康云眸开放平台视频云录制能力,包括云录制项目、转码录制任务、文件管理、流量管理、资源上传和视频剪辑。用户提到云录制、录像转码、抽帧、文件下载、项目流量、视频剪辑等场景时使用。本技能自动处理 access_token 获取与刷新,不向用户暴露 token 调用流程。
openclaw skills install hik-cloud-open-video-recording按固定链路执行海康云眸开放平台视频云录制接口,优先使用 {baseDir}/scripts/hik_open_video_recording.py,不要临时手写认证、URL 拼接和重试逻辑。
本技能覆盖以下能力:
本技能不对外暴露 “获取 access_token” 操作。鉴权属于内部基础设施:脚本会自动读取凭证、获取 token、缓存 token,并在 401 时自动刷新后重试一次。
当 OpenClaw 通过 ~/.openclaw/openclaw.json 管理本技能时,使用 metadata.openclaw.skillKey 作为配置键:
{
skills: {
entries: {
"hik-cloud-video-recording": {
enabled: true,
env: {
HIK_OPEN_CLIENT_ID: "...",
HIK_OPEN_CLIENT_SECRET: "...",
HIK_OPEN_BASE_URL: "https://your-custom-base-url"
}
}
}
}
}
若 Session 运行在 sandbox 中,宿主环境变量不会自动继承。此时应通过 OpenClaw 的 sandbox env 配置注入凭证,而不是依赖本机 shell 的 process.env。
域名切换优先级:
--base-urlHIK_OPEN_BASE_URLhttps://api2.hik-cloud.comAuthorization: Bearer <access_token>。--access-tokenHIK_OPEN_ACCESS_TOKENHIK_OPEN_CLIENT_ID + HIK_OPEN_CLIENT_SECRET 自动换取--base-urlHIK_OPEN_BASE_URLhttps://api2.hik-cloud.com401,自动刷新 token 并重试一次。record-preview 预约录制的开始时间必须落在未来时间窗口内,结束时间不能超过 24 小时。upload-address 返回的 url 和 fields 是后续上传步骤的输入,不要擅自改写字段名。clip 使用 timeLines 描述剪辑时间线,支持视频素材和图片水印/Logo 组合。recType:local 本地录像,cloud 云存储录像,live 实时录像/实时抽帧streamType:1 高清主码流,2 标清子码流,默认 1devProto:不传为萤石协议,传 gb28181 表示国标设备voiceSwitch:0 关,1 开,2 自动,默认 2,仅 record-instant 使用frameModel:0 普通,1 错峰,2 抽 I 帧;frame-interval 支持 0/1/2,frame-timing 页面仅列 0/1fileType / fileChildType:0 图片 / 00 jpg,1 视频 / 10 mp4,2 音频 / 20 mp3timeLines[].type:1 视频文件,3 图片文件;clip 里不要和 fileType 混用先准备环境变量:
export HIK_OPEN_CLIENT_ID="<YOUR_CLIENT_ID>"
export HIK_OPEN_CLIENT_SECRET="<YOUR_CLIENT_SECRET>"
创建项目:
python3 {baseDir}/scripts/hik_open_video_recording.py project-create \
--project-name "项目名称" \
--expire-days 3 \
--flow-limit 10240000
回放视频转码录制:
python3 {baseDir}/scripts/hik_open_video_recording.py record-replay \
--project-id p123 \
--device-serial E05426006 \
--channel-no 1 \
--start-time 20260324120000 \
--end-time 20260324120500 \
--rec-type cloud
查询项目列表:
python3 {baseDir}/scripts/hik_open_video_recording.py project-list \
--page-no 1 \
--page-size 20
获取上传地址:
python3 {baseDir}/scripts/hik_open_video_recording.py upload-address \
--suffix jpg \
--file-num 1 \
--file-type 0 \
--file-child-type 00
视频剪辑:
python3 {baseDir}/scripts/hik_open_video_recording.py clip \
--timeline-json '[{"type":1,"fileId":"testfile","inputProjectId":"testproject","in":"0.0f","out":"30.0f"}]'
project-create:创建项目project-get:查询项目project-update:更新项目project-delete:删除项目project-list:查询项目列表record-replay:回放视频转码录制record-preview:预约视频转码录制record-instant:即时视频转码录制frame-interval:按时间间隔抽帧frame-timing:按时间点抽帧frame-instant:实时抽帧task-stop:终止任务task-get:根据任务 ID 查询任务详情task-list:根据项目 ID 查询任务列表file-task-list:根据任务 ID 获取文件列表file-get:查询单个文件file-list:分页查询文件file-delete:删除文件file-download:获取文件下载地址flow-update:更新项目流量限制tenant-info:获取租户流量信息upload-address:获取上传地址save-file:保存文件clip:视频剪辑clip-file-query:视频剪辑文件查询字段判读:
record-replay、record-preview、record-instant 主要看 recType、streamType、devProtorecord-instant 额外看 voiceSwitchframe-interval / frame-timing 主要看 recType、frameModel、streamTypeupload-address / save-file 主要看 fileType、fileChildTypeclip 主要看 timeLines[].type、timeLines[].fileId通用参数:
--base-url:显式指定接口域名,优先级高于环境变量--access-token:显式指定 access token--timeout:请求超时秒数,默认 20--token-cache-file:token 缓存文件,默认 ~/.cache/hik_open/token.json--format:text 或 json通用环境变量:
HIK_OPEN_CLIENT_IDHIK_OPEN_CLIENT_SECRETHIK_OPEN_ACCESS_TOKENHIK_OPEN_BASE_URL--format text:输出简要结果摘要和关键字段--format json:输出结构化结果,包含请求上下文和原始响应数据{baseDir}/scripts/hik_open_video_recording.py:主脚本,负责认证、缓存和视频云录制接口调用{baseDir}/references/auth.md:认证与 token 自动刷新规则{baseDir}/references/video-recording.md:视频云录制文档摘要