jf-open-pro-local-record

API key required
Other

杰峰设备本地录像技能(开发版)。支持 TF 卡/硬盘存储设备的录像日历查询、回放列表、录像回放下载、本地报警图片获取、主辅码流切换等功能。

Install

openclaw skills install jf-open-pro-local-record

jf-open-pro-local-record - 杰峰设备本地录像技能(开发版)

技能描述

支持杰峰设备本地录像管理功能,适用于搭载 TF 卡或硬盘存储的设备:

  • 录像日历查询 - 查询指定月份哪些日期有录像
  • 录像回放列表 - 获取指定时间段的录像文件列表
  • 录像回放地址 - 获取 FLV/HLS/RTSP/MP4 回放地址
  • 录像下载 - 获取 MP4 格式录像下载地址
  • 本地报警图片 - 获取设备本地存储的报警图片
  • 主辅码流切换 - 切换本地录像的主码流(高清)或辅码流(标清)

适用场景:

  • 回看历史录像
  • 下载重要录像片段
  • 查看报警时的抓拍图片
  • 调整录像存储质量(高清/标清)

触发词

  • 查询录像日历 / 查询录像列表 / 录像回放
  • 下载录像 / 获取报警图片 / 切换码流
  • 本地录像 / 卡存录像 / TF 卡录像 / 硬盘录像

前置条件

硬件要求

  1. 设备支持卡存录像 - 设备需有 TF 卡或硬盘存储
  2. 录像已开启 - 设备已配置录像计划并正常录像

必需配置

  1. 签名算法 - 使用杰峰官方移位加密算法生成 signature
  2. 时间戳算法 - counter(7 位) + timeMillis(13 位),实时生成
  3. 设备绑定 - 设备需先绑定到开放平台账号

环境变量

变量名说明默认值必需
JF_UUID开放平台用户 uuid-
JF_APP_KEY开放平台应用 appKey-
JF_APP_SECRET开放平台应用密钥-
JF_MOVE_CARD移动卡标识(用于签名)2
JF_DEVICE_SN设备序列号-
JF_DEVICE_TOKEN设备接口访问令牌-
JF_DEVICE_USERNAME设备用户名admin
JF_DEVICE_PASSWORD设备密码-
JF_ENDPOINTAPI 接入地址api-cn.jftechws.com

API 接口

功能地址方法需要 Token需要在线
录像日历POST /gwp/v3/rtc/device/cardPlaybackCalendar/{token}POST
录像列表POST /gwp/v3/rtc/device/opdev/{token}POST
回放地址POST /gwp/v3/rtc/device/playbackUrl/{token}POST
报警图片POST /gwp/v3/rtc/device/getDeviceLocalPic/{token}POST
切换码流POST /gwp/v3/rtc/device/cardVideoSwitchStream/{token}POST

核心功能

1. 录像日历查询(CardPlaybackCalendar)

API: POST /gwp/v3/rtc/device/cardPlaybackCalendar/{deviceToken}

请求参数:

参数类型必需说明
Namestring固定为 OPSCalendar
OPSCalendar.Eventstring录像类型(*=全部,A=外部报警,M=动检,H=手动等)
OPSCalendar.FileTypestring文件类型(h264=视频,jpg=图片)
OPSCalendar.Yearint年份
OPSCalendar.Monthint月份(1-12)
OPSCalendar.Channelint通道号(默认 0)

响应参数:

字段类型说明
CalendarListobject[]日历列表
├─ datestring日期(YYYY-MM-DD)
├─ is_existint是否存在录像(0=不存在,1=存在)

2. 录像回放列表(OPFileQuery)

API: POST /gwp/v3/rtc/device/opdev/{deviceToken}

请求参数:

参数类型必需说明
Namestring固定为 OPFileQuery
OPFileQuery.BeginTimestring开始时间(yyyy-MM-dd HH:mm:ss)
OPFileQuery.EndTimestring结束时间(yyyy-MM-dd HH:mm:ss)
OPFileQuery.Channelint通道号(0=第一通道)
OPFileQuery.Eventstring录像类型(*=全部,R=常规,A=报警,M=动检,H=手动等)
OPFileQuery.StreamTypestring码流类型(0x00000000=主码流,0x00000001=辅码流)
OPFileQuery.Typestring文件类型(h264=视频,jpg=图片)
OPFileQuery.DriverTypeMaskstring固定为 0x0000FFFF

录像类型说明:

类型代码说明
全部*所有类型的录像
常规录像R没有报警时的录像(包含 AOV 录像)
外部报警AIO 口报警等非视频类报警
动态检测M移动侦测、人形检测等视频类报警
手动录像H手动开启的录像
AOV 录像V低功耗全时录像
入侵I入侵检测录像
人脸F人脸识别录像
车牌N车牌识别录像
关键录像K关键录像

响应参数:

字段类型说明
OPFileQueryobject[]录像文件列表
├─ BeginTimestring开始时间
├─ EndTimestring结束时间
├─ FileNamestring录像文件名
├─ FileLengthint文件大小(KB)

3. 录像回放/下载地址(PlaybackUrl)

API: POST /gwp/v3/rtc/device/playbackUrl/{deviceToken}

请求参数:

参数类型必需说明
channelint通道号(0=第一通道)
streamTypeint码流类型(0=高清主码流,1=标清辅码流)
protocolstring播放协议(flv/hls-ts/hls-fmp4/mp4/rtsp-sdp
startTimestring回放开始时间
endTimestring回放结束时间
fileNamestring录像文件名(从回放列表获取)
usernamestring设备登录用户名
passwordstring设备登录密码
downloadint0=在线回放,1=录像下载(仅 protocol=mp4 时有效)
playPrioritizeint回放优先级(0-2=普通,8=优先播放,9=持续播放)

协议说明:

协议说明
FLVflv标准 FLV 封装(推荐用于 Web 播放)
FLV 增强flv-enhancedFLV 增强封装(H.265 编码推荐)
HLS-TShls-tsHLS 协议,TS 格式切片
HLS-FMP4hls-fmp4HLS 协议,FMP4 格式切片
MP4mp4HTTP 协议,MP4 格式(用于下载)
RTSPrtsp-sdpRTSP 标准协议

响应参数:

字段类型说明
urlstring播放/下载地址(有效期 10 小时
Retint设备响应状态码

⚠️ 注意:

  • URL 有效期为 10 小时
  • 同时只支持 一路回放或下载
  • 本地录像回放和下载按照流量计费

4. 本地报警图片(GetDeviceLocalPic)

API: POST /gwp/v3/rtc/device/getDeviceLocalPic/{deviceToken}

请求参数:

参数类型必需说明
startTimestring开始时间
endTimestring结束时间
fileNamestring图片文件名(从录像列表获取)

响应参数:

字段类型说明
imagestring图片地址 URL

5. 切换主辅码流(CardVideoSwitchStream)

API: POST /gwp/v3/rtc/device/cardVideoSwitchStream/{deviceToken}

请求参数:

参数类型必需说明
streamint码流类型(0=高清主码流,1=标清辅码流)

说明:

  • 切换后新录制的视频将使用新码流
  • 不影响已存储的录像文件

使用示例

环境准备

# 设置环境变量
export JF_UUID="uuidxxxx"
export JF_APP_KEY="appkeyxxxx"
export JF_APP_SECRET="appsecretxxxx"
export JF_MOVE_CARD=0
export JF_DEVICE_SN="snxxx1"
export JF_DEVICE_TOKEN="NTQ0NzQ3YmE3MXwyYzFk..."
export JF_DEVICE_USERNAME="admin"
export JF_DEVICE_PASSWORD="xxxx"
export JF_ENDPOINT="api-cn.jftechws.com"

1. 查询录像日历

cd ~/.openclaw/workspace/skills/developer/jf-open-pro-local-record/scripts

# 查询本月录像日历
python3 local_record.py --action get-calendar --year 2026 --month 5

# 查询指定月份
python3 local_record.py --action get-calendar --year 2026 --month 4

2. 查询录像列表

# 查询今天录像列表
python3 local_record.py --action get-record-list \
  --start "2026-05-07 00:00:00" \
  --end "2026-05-07 23:59:59"

# 查询报警录像
python3 local_record.py --action get-record-list \
  --start "2026-05-07 00:00:00" \
  --end "2026-05-07 23:59:59" \
  --event "AMRH"

3. 获取录像回放地址

# 获取 FLV 回放地址(Web 播放)
python3 local_record.py --action get-playback-url \
  --file-name "/idea0/2026-05-07/001/10.00.00-11.00.00[R][@12345][0].h264" \
  --start "2026-05-07 10:00:00" \
  --end "2026-05-07 11:00:00" \
  --protocol flv

# 获取 HLS 回放地址(移动端播放)
python3 local_record.py --action get-playback-url \
  --file-name "/idea0/2026-05-07/001/10.00.00-11.00.00[R][@12345][0].h264" \
  --start "2026-05-07 10:00:00" \
  --end "2026-05-07 11:00:00" \
  --protocol hls-ts

4. 下载录像

# 获取 MP4 下载地址
python3 local_record.py --action download-record \
  --file-name "/idea0/2026-05-07/001/10.00.00-11.00.00[R][@12345][0].h264" \
  --start "2026-05-07 10:00:00" \
  --end "2026-05-07 11:00:00"

5. 获取本地报警图片

# 获取报警图片地址
python3 local_record.py --action get-alarm-pic \
  --file-name "/idea1/2026-05-07/001/10.24.01-10.24.02[M][@48][0].jpg" \
  --start "2026-05-07 10:24:01" \
  --end "2026-05-07 10:24:02"

6. 切换主辅码流

# 切换到标清辅码流(节省存储空间)
python3 local_record.py --action switch-stream --stream 1

# 切换到高清主码流(更高画质)
python3 local_record.py --action switch-stream --stream 0

# 查询当前码流状态
python3 local_record.py --action get-stream-status

状态码

平台状态码

code说明处理建议
2000成功-
28007Header 参数错误检查 uuid、appKey、timeMillis、signature
40103无效 TokendeviceToken 过期,重新获取
50000服务器内部错误联系杰峰技术支持

设备状态码(Ret)

Ret说明
100成功
200成功(图片接口)

注意事项

  1. 设备要求 - 设备需支持卡存录像(TF 卡或硬盘)
  2. deviceToken 有效期 - 24 小时,过期需重新获取
  3. 设备在线要求 - 所有操作需要设备在线
  4. 回放 URL 有效期 - 10 小时,请及时使用
  5. 单路限制 - 同时只支持一路回放或下载
  6. 流量计费 - 本地录像回放和下载按照流量计费
  7. 时间格式 - 所有时间参数使用 yyyy-MM-dd HH:mm:ss 格式
  8. 文件名获取 - 录像文件名需从回放列表接口获取

相关文件

文件说明
SKILL.md技能文档
scripts/local_record.pyPython 执行脚本
scripts/crypto.py签名/时间戳加密工具(复用)

参考文档