{
  "added_at": "2026-11-09",
  "category": "reconstruction-cases",
  "class": "hardware",
  "description_en": "UniFi Protect API is a TypeScript client that decodes the controller's undocumented updates WebSocket protocol. Its documentation records the four-frame packet layout, eight-byte headers and payload formats, while the library turns the stream into typed camera and doorbell events.",
  "description_zh": "UniFi Protect API 是解析控制器未公开 updates WebSocket 协议的 TypeScript 客户端。文档记载四帧数据包布局、八字节帧头及负载格式，库将数据流转换为摄像头和门铃的类型化事件。",
  "entry_url": "https://awesomerea.org/resources/unifi-protect-updates-protocol-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/unifi-protect-updates-protocol-case/",
  "evidence_url": "https://github.com/hjdhjd/unifi-protect/blob/be179c3834c42e8b570a96b1720fad6e78df4d2a/README.md",
  "group": "cases",
  "id": "unifi-protect-updates-protocol-case",
  "json_url": "https://awesomerea.org/resources/unifi-protect-updates-protocol-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/unifi-protect-updates-protocol-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/unifi-protect-updates-protocol-case/index.md",
  "name": "UniFi Protect API: decoding the updates WebSocket protocol",
  "name_zh": "UniFi Protect API：解析 updates WebSocket 协议",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "license"
  ],
  "requirements": [
    "Node.js 22.20 or later and a UniFi Protect controller account are required.",
    "ISC License."
  ],
  "requirements_zh": [
    "需要 Node.js 22.20 或更新版本，以及 UniFi Protect 控制器账号。",
    "ISC 许可证。"
  ],
  "targets": [
    "protocol"
  ],
  "url": "https://github.com/hjdhjd/unifi-protect",
  "verification": "source-reviewed",
  "verified_at": "2026-11-06"
}
