{
  "added_at": "2026-11-09",
  "category": "reconstruction-cases",
  "class": "hardware",
  "description_en": "castv2 documents and implements the Chromecast CASTV2 protocol over TLS. Its Node.js client exchanges length-prefixed Protocol Buffers messages with a dongle, and its protocol notes describe namespaces, virtual connections, heartbeat messages and device authentication.",
  "description_zh": "castv2 记录并实现 Chromecast 通过 TLS 传输的 CASTV2 协议。其 Node.js 客户端与设备交换带长度前缀的 Protocol Buffers 消息，协议笔记说明命名空间、虚拟连接、心跳消息和设备认证。",
  "entry_url": "https://awesomerea.org/resources/node-castv2-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/node-castv2-case/",
  "evidence_url": "https://github.com/thibauts/node-castv2/blob/41d589abbf8619ec582e2b2707eb5e3266e7a14a/README.md",
  "group": "cases",
  "id": "node-castv2-case",
  "json_url": "https://awesomerea.org/resources/node-castv2-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/node-castv2-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/node-castv2-case/index.md",
  "name": "castv2: reconstructing the Chromecast CASTV2 protocol",
  "name_zh": "castv2：重建 Chromecast CASTV2 协议",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "limits",
    "license"
  ],
  "requirements": [
    "Node.js and a Chromecast device for client use.",
    "The server implementation is limited by device authentication.",
    "MIT license."
  ],
  "requirements_zh": [
    "使用客户端需要 Node.js 和 Chromecast 设备。",
    "服务器实现受到设备认证机制限制。",
    "采用 MIT 许可证。"
  ],
  "targets": [
    "protocol"
  ],
  "url": "https://github.com/thibauts/node-castv2",
  "verification": "source-reviewed",
  "verified_at": "2026-11-06"
}
