{
  "added_at": "2026-11-09",
  "category": "reconstruction-cases",
  "class": "hardware",
  "description_en": "LGTV reconstructs control of a 2014 LG webOS TV in a Node.js client. The author documents SSDP discovery, WebSocket pairing on ports 3000 and 3001, and cleartext JSON requests observed with network tools, then uses them for input, volume and app controls.",
  "description_zh": "LGTV 以 Node.js 客户端重建 2014 年款 LG webOS 电视的控制方式。作者记录了 SSDP 发现、3000 和 3001 端口上的 WebSocket 配对，以及网络观察所得的明文 JSON 请求，并用这些交互控制输入源、音量和应用。",
  "entry_url": "https://awesomerea.org/resources/lgtv-js-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/lgtv-js-case/",
  "evidence_url": "https://github.com/msloth/lgtv.js/blob/0f57ecd60a1ef0bfc08c3fb4a21e6a560ed2afa4/README.md",
  "group": "cases",
  "id": "lgtv-js-case",
  "json_url": "https://awesomerea.org/resources/lgtv-js-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/lgtv-js-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/lgtv-js-case/index.md",
  "name": "LGTV: reconstructing LG webOS TV control exchanges",
  "name_zh": "LGTV：重建 LG webOS 电视控制交互",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "prerequisites",
    "limits",
    "license"
  ],
  "requirements": [
    "An LG smart TV running webOS is required; the documentation targets later 2014 or 2015 models.",
    "The client and TV must be on the same network, and first use requires approval on the TV.",
    "The project is no longer maintained; turning on the TV and opening YouTube at a URL are listed as unsupported.",
    "MIT license."
  ],
  "requirements_zh": [
    "需使用运行 webOS 的 LG 智能电视；文档面向 2014 年末或 2015 年机型。",
    "客户端与电视需在同一网络，首次使用须在电视上批准配对。",
    "项目已停止维护；文档列出的未支持功能包括开机和按指定 URL 打开 YouTube。",
    "采用 MIT 许可证。"
  ],
  "targets": [
    "protocol"
  ],
  "url": "https://github.com/msloth/lgtv.js",
  "verification": "source-reviewed",
  "verified_at": "2026-11-09"
}
