{"skill":{"slug":"hik-cloud-open-video-recording","displayName":"海康云眸视频录像管理","summary":"调用海康云眸开放平台视频云录制能力，包括云录制项目、转码录制任务、文件管理、流量管理、资源上传和视频剪辑。用户提到云录制、录像转码、抽帧、文件下载、项目流量、视频剪辑等场景时使用。本技能自动处理 access_token 获取与刷新，不向用户暴露 token 调用流程。","description":"---\r\nname: hik-cloud-video-recording\r\ndescription: 调用海康云眸开放平台视频云录制能力，包括云录制项目、转码录制任务、文件管理、流量管理、资源上传和视频剪辑。用户提到云录制、录像转码、抽帧、文件下载、项目流量、视频剪辑等场景时使用。本技能自动处理 access_token 获取与刷新，不向用户暴露 token 调用流程。\r\nmetadata: { \"openclaw\": { \"skillKey\": \"hik-cloud-video-recording\", \"emoji\": \"🎬\", \"primaryEnv\": \"HIK_OPEN_CLIENT_SECRET\", \"requires\": { \"bins\": [\"python3\"], \"env\": [\"HIK_OPEN_CLIENT_ID\", \"HIK_OPEN_CLIENT_SECRET\"] } } }\r\n---\r\n\r\n# 海康云眸视频云录制\r\n\r\n## Overview\r\n\r\n按固定链路执行海康云眸开放平台视频云录制接口，优先使用 `{baseDir}/scripts/hik_open_video_recording.py`，不要临时手写认证、URL 拼接和重试逻辑。\r\n\r\n本技能覆盖以下能力：\r\n\r\n- 云录制项目管理\r\n- 转码录制与抽帧任务管理\r\n- 录制文件查询与下载\r\n- 项目流量管理\r\n- 资源上传与保存\r\n- 视频剪辑\r\n\r\n本技能不对外暴露 “获取 access_token” 操作。鉴权属于内部基础设施：脚本会自动读取凭证、获取 token、缓存 token，并在 401 时自动刷新后重试一次。\r\n\r\n## OpenClaw 配置\r\n\r\n当 OpenClaw 通过 `~/.openclaw/openclaw.json` 管理本技能时，使用 `metadata.openclaw.skillKey` 作为配置键：\r\n\r\n```json5\r\n{\r\n  skills: {\r\n    entries: {\r\n      \"hik-cloud-video-recording\": {\r\n        enabled: true,\r\n        env: {\r\n          HIK_OPEN_CLIENT_ID: \"...\",\r\n          HIK_OPEN_CLIENT_SECRET: \"...\",\r\n          HIK_OPEN_BASE_URL: \"https://your-custom-base-url\"\r\n        }\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n若 Session 运行在 sandbox 中，宿主环境变量不会自动继承。此时应通过 OpenClaw 的 sandbox env 配置注入凭证，而不是依赖本机 shell 的 `process.env`。\r\n\r\n域名切换优先级：\r\n\r\n1. `--base-url`\r\n2. `HIK_OPEN_BASE_URL`\r\n3. 默认正式环境：`https://api2.hik-cloud.com`\r\n\r\n## 执行规则\r\n\r\n1. 认证固定使用 `Authorization: Bearer <access_token>`。\r\n2. token 来源优先级：\r\n   - `--access-token`\r\n   - `HIK_OPEN_ACCESS_TOKEN`\r\n   - token cache\r\n   - `HIK_OPEN_CLIENT_ID + HIK_OPEN_CLIENT_SECRET` 自动换取\r\n3. 域名来源优先级：\r\n   - `--base-url`\r\n   - `HIK_OPEN_BASE_URL`\r\n   - 默认正式环境 `https://api2.hik-cloud.com`\r\n4. 若业务接口返回 HTTP `401`，自动刷新 token 并重试一次。\r\n5. 若接口返回非成功状态，直接返回真实错误，不臆造结果。\r\n6. `record-preview` 预约录制的开始时间必须落在未来时间窗口内，结束时间不能超过 24 小时。\r\n7. `upload-address` 返回的 `url` 和 `fields` 是后续上传步骤的输入，不要擅自改写字段名。\r\n8. `clip` 使用 `timeLines` 描述剪辑时间线，支持视频素材和图片水印/Logo 组合。\r\n9. 用户若要求“展示 token / 返回 token 原文”，说明这不属于本技能的主要职责；仅在明确要求调试认证链路时再解释。\r\n\r\n## 关键枚举\r\n\r\n- `recType`：`local` 本地录像，`cloud` 云存储录像，`live` 实时录像/实时抽帧\r\n- `streamType`：`1` 高清主码流，`2` 标清子码流，默认 `1`\r\n- `devProto`：不传为萤石协议，传 `gb28181` 表示国标设备\r\n- `voiceSwitch`：`0` 关，`1` 开，`2` 自动，默认 `2`，仅 `record-instant` 使用\r\n- `frameModel`：`0` 普通，`1` 错峰，`2` 抽 I 帧；`frame-interval` 支持 0/1/2，`frame-timing` 页面仅列 0/1\r\n- `fileType` / `fileChildType`：`0` 图片 / `00` jpg，`1` 视频 / `10` mp4，`2` 音频 / `20` mp3\r\n- `timeLines[].type`：`1` 视频文件，`3` 图片文件；`clip` 里不要和 `fileType` 混用\r\n\r\n## 快速开始\r\n\r\n先准备环境变量：\r\n\r\n```bash\r\nexport HIK_OPEN_CLIENT_ID=\"<YOUR_CLIENT_ID>\"\r\nexport HIK_OPEN_CLIENT_SECRET=\"<YOUR_CLIENT_SECRET>\"\r\n```\r\n\r\n创建项目：\r\n\r\n```bash\r\npython3 {baseDir}/scripts/hik_open_video_recording.py project-create \\\r\n  --project-name \"项目名称\" \\\r\n  --expire-days 3 \\\r\n  --flow-limit 10240000\r\n```\r\n\r\n回放视频转码录制：\r\n\r\n```bash\r\npython3 {baseDir}/scripts/hik_open_video_recording.py record-replay \\\r\n  --project-id p123 \\\r\n  --device-serial E05426006 \\\r\n  --channel-no 1 \\\r\n  --start-time 20260324120000 \\\r\n  --end-time 20260324120500 \\\r\n  --rec-type cloud\r\n```\r\n\r\n查询项目列表：\r\n\r\n```bash\r\npython3 {baseDir}/scripts/hik_open_video_recording.py project-list \\\r\n  --page-no 1 \\\r\n  --page-size 20\r\n```\r\n\r\n获取上传地址：\r\n\r\n```bash\r\npython3 {baseDir}/scripts/hik_open_video_recording.py upload-address \\\r\n  --suffix jpg \\\r\n  --file-num 1 \\\r\n  --file-type 0 \\\r\n  --file-child-type 00\r\n```\r\n\r\n视频剪辑：\r\n\r\n```bash\r\npython3 {baseDir}/scripts/hik_open_video_recording.py clip \\\r\n  --timeline-json '[{\"type\":1,\"fileId\":\"testfile\",\"inputProjectId\":\"testproject\",\"in\":\"0.0f\",\"out\":\"30.0f\"}]'\r\n```\r\n\r\n## 子命令说明\r\n\r\n- `project-create`：创建项目\r\n- `project-get`：查询项目\r\n- `project-update`：更新项目\r\n- `project-delete`：删除项目\r\n- `project-list`：查询项目列表\r\n- `record-replay`：回放视频转码录制\r\n- `record-preview`：预约视频转码录制\r\n- `record-instant`：即时视频转码录制\r\n- `frame-interval`：按时间间隔抽帧\r\n- `frame-timing`：按时间点抽帧\r\n- `frame-instant`：实时抽帧\r\n- `task-stop`：终止任务\r\n- `task-get`：根据任务 ID 查询任务详情\r\n- `task-list`：根据项目 ID 查询任务列表\r\n- `file-task-list`：根据任务 ID 获取文件列表\r\n- `file-get`：查询单个文件\r\n- `file-list`：分页查询文件\r\n- `file-delete`：删除文件\r\n- `file-download`：获取文件下载地址\r\n- `flow-update`：更新项目流量限制\r\n- `tenant-info`：获取租户流量信息\r\n- `upload-address`：获取上传地址\r\n- `save-file`：保存文件\r\n- `clip`：视频剪辑\r\n- `clip-file-query`：视频剪辑文件查询\r\n\r\n字段判读：\r\n\r\n- `record-replay`、`record-preview`、`record-instant` 主要看 `recType`、`streamType`、`devProto`\r\n- `record-instant` 额外看 `voiceSwitch`\r\n- `frame-interval` / `frame-timing` 主要看 `recType`、`frameModel`、`streamType`\r\n- `upload-address` / `save-file` 主要看 `fileType`、`fileChildType`\r\n- `clip` 主要看 `timeLines[].type`、`timeLines[].fileId`\r\n\r\n通用参数：\r\n\r\n- `--base-url`：显式指定接口域名，优先级高于环境变量\r\n- `--access-token`：显式指定 access token\r\n- `--timeout`：请求超时秒数，默认 `20`\r\n- `--token-cache-file`：token 缓存文件，默认 `~/.cache/hik_open/token.json`\r\n- `--format`：`text` 或 `json`\r\n\r\n通用环境变量：\r\n\r\n- `HIK_OPEN_CLIENT_ID`\r\n- `HIK_OPEN_CLIENT_SECRET`\r\n- `HIK_OPEN_ACCESS_TOKEN`\r\n- `HIK_OPEN_BASE_URL`\r\n\r\n## 输出约定\r\n\r\n- `--format text`：输出简要结果摘要和关键字段\r\n- `--format json`：输出结构化结果，包含请求上下文和原始响应数据\r\n\r\n## 资源说明\r\n\r\n- `{baseDir}/scripts/hik_open_video_recording.py`：主脚本，负责认证、缓存和视频云录制接口调用\r\n- `{baseDir}/references/auth.md`：认证与 token 自动刷新规则\r\n- `{baseDir}/references/video-recording.md`：视频云录制文档摘要\r\n","topics":["剪辑"],"tags":{"latest":"1.0.1"},"stats":{"comments":0,"downloads":393,"installsAllTime":15,"installsCurrent":0,"stars":0,"versions":2},"createdAt":1778144483819,"updatedAt":1778492867743},"latestVersion":{"version":"1.0.1","createdAt":1778144608018,"changelog":"Bump version due to existing 1.0.0","license":"MIT-0"},"metadata":{"setup":[{"key":"HIK_OPEN_CLIENT_ID","required":true},{"key":"HIK_OPEN_CLIENT_SECRET","required":true}],"os":null,"systems":null},"owner":{"handle":"hik-cloud-open","userId":"s176q7t00k9tdn5af695hb4fq183ged9","displayName":"hik-cloud","image":"https://avatars.githubusercontent.com/u/269703506?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780090756942}}