← Back to Skills Marketplace
🔌

jftech-open-pro-video-record

by jftech · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
49
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install jftech-open-pro-video-record
Description
杰峰设备录像回放技能。支持获取设备云存储录像和设备本地录像回放地址,包括录像列表查询、回放地址获取、录像下载等功能。使用场景:云存回放、本地卡录像回放、录像下载、历史视频查看。
README (SKILL.md)

JF Open Pro Video Record - 杰峰设备录像回放技能

面向开发者的杰峰设备录像回放工具 (Python)

支持设备云存储录像和设备本地录像回放地址获取,包括录像列表查询、回放地址获取、录像下载等功能。


🔒 安全说明

凭据存储:仅支持环境变量

方式 支持 说明
环境变量 ✅ 支持 推荐方式,避免凭据出现在进程列表或日志中
命令行参数 ❌ 不支持 避免凭据泄露风险
配置文件 ❌ 不支持 避免明文存储凭据

网络访问:

  • ✅ 仅访问杰峰官方 API 端点 (api.jftechws.com / api-cn.jftech.com)
  • ❌ 不访问第三方服务
  • ❌ 不读取敏感系统文件

🚀 快速开始

设置环境变量

# 开放平台凭证(必需)
export JF_UUID="your-uuid"              # 开放平台用户唯一标识
export JF_APPKEY="your-appkey"          # 开放平台应用 Key
export JF_APPSECRET="your-appsecret"    # 开放平台应用密钥
export JF_MOVECARD=5                    # 签名算法偏移量 (0-9)

# 设备信息
export JF_SN="your-device-sn"           # 设备序列号
export JF_USERNAME="admin"              # 设备登录用户名(可选,默认:admin)
export JF_PASSWORD="your-password"      # 设备登录密码(本地录像必需)
export JF_ENDPOINT="api.jftechws.com"   # API 端点(可选)

使用技能

# ========== 云存录像 ==========

# 获取云存视频列表(按时间范围查询)
python scripts/cloud_video_list.py --start-time "2026-04-07 10:00:00" --stop-time "2026-04-07 18:00:00"

# 获取云存视频列表(带报警类型过滤)
python scripts/cloud_video_list.py --start-time "2026-04-07 10:00:00" --stop-time "2026-04-07 18:00:00" --events "HumanDetect"

# 获取云存回放地址(按时间范围)
python scripts/cloud_playback_url.py --start-time "2026-04-07 15:23:26" --stop-time "2026-04-07 15:23:36"

# 获取云存回放地址(按视频 ID 精准查询)
python scripts/cloud_playback_url.py --video-id "xxxxxxxxxx"

# 获取云存回放地址(下载 MP4 格式)
python scripts/cloud_playback_url.py --start-time "2026-04-07 15:23:26" --stop-time "2026-04-07 15:23:36" --format MP4

# ========== 本地录像 ==========

# 获取本地录像回放列表
python scripts/local_video_list.py --start-time "2026-04-07 10:00:00" --stop-time "2026-04-07 18:00:00"

# 获取本地录像回放地址
python scripts/local_playback_url.py --file-name "/idea0/2026-04-07/001/15.23.26-15.23.36[R][@39733][2].h264" --start-time "2026-04-07 15:23:26" --stop-time "2026-04-07 15:23:36"

# 本地录像下载(MP4 格式)
python scripts/local_playback_url.py --file-name "xxx.h264" --start-time "2026-04-07 15:23:26" --stop-time "2026-04-07 15:23:36" --download

📋 环境变量

变量名 说明 必需 默认值
JF_UUID 开放平台用户唯一标识 -
JF_APPKEY 开放平台应用 Key -
JF_APPSECRET 开放平台应用密钥 -
JF_MOVECARD 签名算法偏移量 (0-9) -
JF_SN 设备序列号 云存必需 -
JF_USERNAME 设备登录用户名 本地录像必需 admin
JF_PASSWORD 设备登录密码 本地录像必需 -
JF_ENDPOINT API 端点 api.jftechws.com

🛠️ 功能

1. 云存录像

1.1 获取云存视频列表

查询设备在指定时间段内的云存视频列表。

支持场景:

  • 条件查询(时间范围)
  • 组合条件查询(分页 + 报警类型过滤)

支持的报警类型:

  • HumanDetect - 人形检测
  • MotionDetect - 移动侦测
  • appEventHumanDetectAlarm - 人形报警
  • 更多类型参考 报警消息类型

使用示例:

# 按时间范围查询
python scripts/cloud_video_list.py \
  --start-time "2026-04-07 10:00:00" \
  --stop-time "2026-04-07 18:00:00"

# 带报警类型过滤
python scripts/cloud_video_list.py \
  --start-time "2026-04-07 10:00:00" \
  --stop-time "2026-04-07 18:00:00" \
  --events "HumanDetect"

# 分页查询
python scripts/cloud_video_list.py \
  --start-time "2026-04-07 10:00:00" \
  --stop-time "2026-04-07 18:00:00" \
  --page-start 1 \
  --page-size 50

返回字段:

字段 说明 示例
StartTime 录像开始时间 2026-04-07 13:12:34
StopTime 录像结束时间 2026-04-07 13:12:51
IndexFile 录像文件名 xxx.m3u8
PicFlag 是否有缩略图 (1=有,0=无) 1
VideoSize 视频大小(字节) 339014
thumbURL 缩略图 URL http://...
events 报警类型列表 ["HumanDetect"]
videoId 视频 ID(精准查询用) 0...9a...z

1.2 获取云存回放地址

获取云存视频回放或下载地址,支持 HLS 在线播放和 MP4 下载。

支持模式:

  • 精准查询:根据视频 ID 查询
  • 条件查询:根据时间范围查询

使用示例:

# 按时间范围获取回放地址(HLS 在线播放)
python scripts/cloud_playback_url.py \
  --start-time "2026-04-07 15:23:26" \
  --stop-time "2026-04-07 15:23:36"

# 按视频 ID 精准查询
python scripts/cloud_playback_url.py \
  --video-id "xxxxxxxxxx"

# 获取下载链接(MP4 格式)
python scripts/cloud_playback_url.py \
  --start-time "2026-04-07 15:23:26" \
  --stop-time "2026-04-07 15:23:36" \
  --format MP4

# 多目设备(多镜头摄像头)
python scripts/cloud_playback_url.py \
  --start-time "2026-04-07 15:23:26" \
  --stop-time "2026-04-07 15:23:36" \
  --multi-video

播放方式:

# VLC 播放
vlc "https://xxx.com/xxx.m3u8?Expires=..."

# 网页播放(HLS.js)
\x3Cvideo src="https://xxx.com/xxx.m3u8?Expires=..." controls>\x3C/video>

# 下载 MP4
curl -o video.mp4 "https://xxx.com/xxx.mp4?Expires=..."
# 或
ffmpeg -i "https://xxx.com/xxx.mp4?Expires=..." -c copy video.mp4

注意事项:

  • 回放地址有效期:24 小时
  • MP4 下载按文件大小流量计费
  • 多目设备返回多个地址,以分号 ; 分隔

2. 本地录像(TF 卡/硬盘)

2.1 获取本地录像回放列表

查询设备本地存储(TF 卡或硬盘)中的录像文件列表。

前置条件:

  • 设备支持卡存录像(有 TF 卡或硬盘)
  • 需配置设备登录凭据(JF_USERNAMEJF_PASSWORD

录像类型说明:

类型 说明
* 所有类型的录像
R 常规录像(无报警时的连续录像,含 AOV 录像)
A 非视频类报警(如 IO 口报警)
M 视频类报警(移动侦测、人形检测等)
H 手动录像
C 卡号录像
V AOV 录像(低功耗全时录像)
I 入侵报警
S 盗移/滞留报警
F 人脸识别录像
N 车牌识别录像
K 关键录像

使用示例:

# 查询所有类型录像
python scripts/local_video_list.py \
  --start-time "2026-04-07 10:00:00" \
  --stop-time "2026-04-07 18:00:00"

# 只查询报警录像(移动侦测 + 人形检测 + 常规)
python scripts/local_video_list.py \
  --start-time "2026-04-07 10:00:00" \
  --stop-time "2026-04-07 18:00:00" \
  --event "AMRH"

# 只查询常规录像
python scripts/local_video_list.py \
  --start-time "2026-04-07 10:00:00" \
  --stop-time "2026-04-07 18:00:00" \
  --event "R"

返回字段:

字段 说明 示例
BeginTime 录像开始时间 2026-04-07 20:00:00
EndTime 录像结束时间 2026-04-07 21:00:00
FileName 录像文件路径 /idea0/2026-04-07/002/20.00.00-21.00.00[R][@2dcc5][0].h264
FileLength 文件大小(KB) 123456

2.2 获取本地录像回放地址

获取本地录像文件的回放或下载地址。

支持的协议格式:

协议 格式 说明
flv FLV 标准 FLV 封装(H.265 采用国内行业 FLV 标准)
flv-enhanced FLV-Enhanced H.265 标准 FLV-Enhanced 封装
hls-ts HLS-TS HLS 协议,TS 格式切片
hls-fmp4 HLS-fMP4 HLS 协议,fMP4 格式切片
mp4 MP4 HTTP 协议,MP4 格式(用于下载)
rtsp-sdp RTSP-SDP RTSP 标准协议(默认)
rtsp-pri RTSP-PRI RTSP 私有协议

使用示例:

# 在线播放(FLV 格式)
python scripts/local_playback_url.py \
  --file-name "/idea0/2026-04-07/001/15.23.26-15.23.36[R][@39733][2].h264" \
  --start-time "2026-04-07 15:23:26" \
  --stop-time "2026-04-07 15:23:36" \
  --protocol flv

# HLS 播放
python scripts/local_playback_url.py \
  --file-name "xxx.h264" \
  --start-time "2026-04-07 15:23:26" \
  --stop-time "2026-04-07 15:23:36" \
  --protocol hls-ts

# 录像下载(MP4 格式)
python scripts/local_playback_url.py \
  --file-name "xxx.h264" \
  --start-time "2026-04-07 15:23:26" \
  --stop-time "2026-04-07 15:23:36" \
  --protocol mp4 \
  --download

# 指定码流类型(0=主码流/高清,1=辅码流/标清)
python scripts/local_playback_url.py \
  --file-name "xxx.h264" \
  --start-time "2026-04-07 15:23:26" \
  --stop-time "2026-04-07 15:23:36" \
  --stream-type 0

注意事项:

  • 回放地址有效期:10 小时
  • 同时只支持一路回放或下载
  • 本地录像回放和下载按流量计费
  • 必须先获取录像文件列表,使用返回的 FileName 字段

⚠️ 错误处理

错误码 说明 解决方案
2000 成功 -
12504 授权失败 - 设备未开通服务 登录开放平台为设备绑定对应套餐
10001 参数错误 检查请求参数格式
10002 签名失败 检查 appKey/appSecret 和时间戳
200 设备响应成功 -
401 设备认证失败 检查设备用户名/密码

常见错误

1. 云存服务未开通

code: 12504
msg: authorize failed, Please check it in the open platform

→ 登录杰峰开放平台,为设备购买并绑定云存套餐卡

2. 本地录像文件不存在

Ret: 404
msg: File not found

→ 检查文件名是否正确,确认设备 TF 卡/硬盘中有录像

3. 设备登录失败

Ret: 401
msg: Authentication failed

→ 检查 JF_USERNAMEJF_PASSWORD 是否正确


📚 官方参考资料


📁 脚本工具

云存录像脚本:

脚本 功能
cloud_video_list.py 获取云存视频列表
cloud_playback_url.py 获取云存回放地址

本地录像脚本:

脚本 功能
local_video_list.py 获取本地录像回放列表
local_playback_url.py 获取本地录像回放地址
# 获取帮助
python scripts/cloud_video_list.py --help
python scripts/cloud_playback_url.py --help
python scripts/local_video_list.py --help
python scripts/local_playback_url.py --help

技能版本: v1.0.1
语言: Python
最后更新: 2026-04-08

Usage Guidance
This skill appears to be what it claims: Python scripts that call JFTech API endpoints to list and obtain playback/download URLs. Before installing: (1) note that it requires sensitive credentials (JF_APPKEY/SECRET, device password) — only provide least-privilege/test credentials and prefer running in an isolated environment; (2) verify the JF endpoint hostnames and TLS (api.jftechws.com / api-cn.jftech.com) are correct for your deployment; (3) review the included scripts locally to confirm no hidden endpoints or extra behavior (the package currently shows only direct HTTPS calls to the declared hosts); (4) because the package source/homepage is unknown, exercise additional caution — prefer obtaining this tool from an official vendor site or repository if possible.
Capability Analysis
Type: OpenClaw Skill Name: jftech-open-pro-video-record Version: 1.0.0 The skill bundle provides legitimate tools for interacting with the JF (杰峰) Open Platform to manage cloud and local video recordings. The Python scripts (e.g., cloud_video_list.py, local_playback_url.py) implement the platform's proprietary signature and authentication logic using standard libraries and environment variables for credentials. No evidence of data exfiltration, malicious execution, or prompt injection was found; all network activity is strictly directed to the official JF API endpoints (api.jftechws.com and api-cn.jftech.com) as declared in the metadata.
Capability Assessment
Purpose & Capability
Name/description, required environment variables (JF_UUID, JF_APPKEY, JF_APPSECRET, JF_MOVECARD, optional JF_SN/JF_PASSWORD), and the included Python scripts all align with a JFTech device playback/listing tool. The claimed network endpoints match the endpoints used by the scripts.
Instruction Scope
SKILL.md and the four scripts only perform HTTPS calls to the declared JFTech API endpoints and print formatted results. They do not read arbitrary filesystem paths, do not call unexpected third-party endpoints, and do not attempt to collect system-wide data beyond the declared env vars.
Install Mechanism
No install spec present (instruction-only deployment plus included scripts). No downloads from third-party URLs or archive extraction. The skill will only deliver Python scripts; nothing is automatically written to unusual system locations.
Credentials
Requested env vars are appropriate for the JFTech API and local device access. These are sensitive credentials (app key/secret, device login) — their presence is justified by the functionality but demands careful handling (use ephemeral/test credentials, avoid sharing, limit scope).
Persistence & Privilege
Skill does not request always:true or any elevated/always-present privileges. It does not modify other skills or system-wide config. Autonomous invocation is allowed (platform default) but not combined with other privilege escalation signals.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install jftech-open-pro-video-record
  3. After installation, invoke the skill by name or use /jftech-open-pro-video-record
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of jf-open-pro-video-record. - 支持获取杰峰设备的云存储和本地录像回放地址。 - 提供云存录像列表查询、回放地址获取、录像下载等功能。 - 本地录像支持多种类型与过滤模式,回放协议/格式可选。 - 所有接口均基于环境变量凭据调用,安全控制严格。 - 适用于云存回放、本地卡录像回放、录像下载、历史视频查看等场景。
Metadata
Slug jftech-open-pro-video-record
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is jftech-open-pro-video-record?

杰峰设备录像回放技能。支持获取设备云存储录像和设备本地录像回放地址,包括录像列表查询、回放地址获取、录像下载等功能。使用场景:云存回放、本地卡录像回放、录像下载、历史视频查看。 It is an AI Agent Skill for Claude Code / OpenClaw, with 49 downloads so far.

How do I install jftech-open-pro-video-record?

Run "/install jftech-open-pro-video-record" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is jftech-open-pro-video-record free?

Yes, jftech-open-pro-video-record is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does jftech-open-pro-video-record support?

jftech-open-pro-video-record is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created jftech-open-pro-video-record?

It is built and maintained by jftech (@jftech); the current version is v1.0.0.

💬 Comments