plx-native README

The project's README from github.com/GLinnik21/plx-native. As one markdown file: README.md.

PlxNative

A fast, unofficial Plex client for LG webOS televisions. Native, not a web page — the interface is drawn straight on the GPU at 60 fps, and video plays on the TV's own decoder.

Website: plxnative.com · Install guide · Troubleshooting

In daily use on a 2019 LG set. PlxNative is an independent project and is not affiliated with Plex, Inc. or LG. The same install steps are in the repo: installation guide.

Why this exists

The official Plex app on my old LG is slow. Scrolling a shelf stutters, opening a poster takes a beat too long. It behaves like a web page because it is one: a web app running in the television's Chromium. Patching it doesn't help — the ceiling isn't the code, it's the browser.

So I threw the browser away.

PlxNative draws straight on the GPU and hands video to the same silicon the built-in apps use. No Chromium, no JavaScript, no web view. It just draws. Almost all of it is Rust, and I use it every day to watch things off my server in the next room.

What it looks like

Real captures of the app, not mockups: the same code that runs on the television, on the desktop simulator, browsing a demo library of openly licensed films (credits). make screenshots regenerates them.

Home

Home — a rotating hero from what you're partway through and what's just landed, shelves under it.

Library

Library — a library opens on its own shelves: what you're partway through, with the time left under the focused card, and what just landed. Further down is the full grid, with sort, filter (including unwatched-only) and an A–Z rail down the side (pictured here).

Search

Search — one query across every server you can reach, results grouped by kind.

Player

Player — the transport with chapters and track menus, drawn over video the television decodes itself. (In this capture the frame under it was decoded by the simulator.)

What it does

Will it work on my television?

It needs webOS 4.0 or newer, with one tested exception: a 2016 set on webOS 3.4.3 signs in, browses, searches and plays (direct play, transcodes, subtitles and seeking) through Developer Mode. Other 3.x releases are untested, and anything older than 3.4 is unknown. Past that, it most likely will. I develop and test on a 2019 set, and opt-in usage reports show video playing on sets from 2018 through the newest, on webOS 11 — both direct play and server transcodes, Developer Mode installs included.

Known issues

Where What happens
Some 2019 sets on LG's k5lp or k3lp chip, installed through Developer Mode Video won't play. On these sets LG's Developer Mode sandbox can withhold a device the video path needs — Kodi and Moonlight hit the same wall. The app checks for it and says so instead of crashing; other sets on the same chip play normally. On a rooted TV with Homebrew Channel, the failure screen offers Repair, which applies the Homebrew Channel fix to the sandbox (one owner fixed it this way from a root shell; the button itself hasn't been run on an affected set yet). Without root there is no fix.
2018 sets on firmware that reports platform release 3.9.3 Sign-in and browsing work, but video has never been seen to start on one, and no error is reported either: #249.
webOS 3.x Seeking restarts the stream at the new position instead of jumping in place, so each seek takes a moment longer. In-place seek depends on the internal layout of LG's 4.x media player, and on 3.4 that layout differs.
Sets on LG's k6hp chip A crash seen in opt-in crash reports and not reproduced here, because I have no such set: #174.

Rooted or not

No root is needed. A regular TV in Developer Mode runs everything except the k5lp/k3lp Repair above. What Developer Mode costs you is renewal: if the session lapses, LG removes the apps installed through it (how to keep them). A rooted TV with Homebrew Channel has no expiry.

If something goes wrong, check Troubleshooting first, then tell me what happened — and if you own one of the sets above, it working is as useful a report as it failing.

Installing

First time installing an app outside the LG Content Store? Follow the step-by-step installation guide. It starts with a regular LG webOS TV, a computer on the same network, and a Plex account with access to your own or a shared server. No root is required.

Set up LG Developer Mode and connect with webOS Dev Manager, then choose:

Already have Homebrew Channel? Find PlxNative in its catalogue and select Install. Skip the computer setup.

Developer Mode needs periodic renewal. If it expires and LG disables Developer Mode, apps installed through it are removed. Installing Homebrew Channel through Developer Mode does not remove that requirement. The guide explains how to renew the session.

For manual .ipk downloads, verify the release checksum before installing. Homebrew Channel verifies catalogue downloads for you.

Nightly builds

Every day main moves, CI cuts a nightly .ipk from wherever it stands. It installs beside the regular app as "PlxNative Nightly" — its own tile, its own sign-in — so trying it never touches the release you already trust.

With Homebrew Channel: under Settings choose Add repository, enter https://plxnative.com/nightly/repo.json, then install PlxNative Nightly. Every later nightly appears there as an update. The nightly builds guide has the steps, how the versions work and what to do if something goes wrong.

Without it: each build is a prerelease, and the newest is always linked from plxnative.com/nightly/latest.json. Install it with Dev Manager; a package installed that way does not update itself.

It is not tested on a television. It passes the same automated build and packaging checks a release does, but nobody has watched it play. Each nightly is deleted 30 days after it is published, so link to a specific .ipk at your own risk.

Release candidates

Before a release, CI may publish a release candidate as a prerelease named like PlxNative 0.8.0-rc.1. It is the release build itself, so it installs as the regular PlxNative app, replacing the one you have the way an update would. It is not in the Homebrew Channel, and the Channel will not offer the final release over it either: reinstall the final by hand once it is out.

Privacy

Your library data never reaches me. The app talks to your Plex server, to plex.tv to sign in, and to discover.provider.plex.tv for cast biographies.

Crash reports and usage analytics are off until you turn them on — two separate first-run questions, each answerable with Don't Share, both reversible later under Account → Settings → Privacy & data. No title, search term, subtitle line, server name or address can appear in any report. PRIVACY.md is the whole statement, including the schemas.

ASS/SSA subtitles render natively during direct play, including styles, positioning, overlapping signs and dialogue, karaoke, and embedded fonts. External ASS files retain their original scripts. A re-encode still burns the selected subtitle on the server; over a remux the app draws a sidecar, and an embedded track when the link is local and the Part is 1..=30000 kbps, and otherwise the server burns it.

The honest scope

I built this for how I watch, so it's narrower than Plex's:

If that fits, it's genuinely nice to use. If it doesn't, the official app will serve you better.

Contributing

Issues and pull requests are welcome, especially from anyone whose television or library differs from mine — docs/building.md is the build and the test loop, and says what hardware I most need help with. Feature ideas go to Discussions > Ideas. Security issues go through SECURITY.md rather than a public issue.

Acknowledgements

Error monitoring for PlxNative is sponsored by Sentry.

Sentry

Licence

GPL-3.0-or-later, © 2026 Gleb Linnik. The PlxNative name and its brand artwork are excluded — see TRADEMARKS.md, which also carries the Plex and LG non-affiliation statements. Third-party components and their licences are in THIRD-PARTY-NOTICES.md and licenses/ — notably the app ships its own LGPL build of FFmpeg. Those notices and licence texts ship inside the .ipk too, so they travel with the binary and not only with this repository.

This is an unofficial client, not affiliated with, endorsed by, or sponsored by Plex GmbH or LG Electronics. "Plex", "Rotten Tomatoes", "IMDb", "TMDB", "LG" and "webOS" are trademarks of their respective owners; where they appear in the app, they identify whose service or score is being shown.

Star history

Star history chart

plx-native (GLinnik21/plx-native)

Searching Database…

这是什么?PlxNative 是一款专为 LG webOS 电视打造的快速非官方 Plex 客户端。它以 60 fps 直接在 GPU 上绘制界面,并把视频交给电视自带的硬件解码器,而不是像官方 Plex 客户端那样作为网页应用运行在电视的 Chromium 浏览器里。
我怎么把它安装到电视上?在电视上启用 LG 开发者模式,并用电脑上的 webOS Dev Manager 连接,然后既可以直接安装 PlxNative(以后的 .ipk 更新来自你的电脑),也可以先安装 Homebrew Channel,让更新来自遥控器。如果你已经装了 Homebrew Channel,直接在它的目录里找到 PlxNative 即可。
我需要先给电视 root 吗?不需要。普通电视开启开发者模式即可运行一切,只有一个例外:针对某些 2019 年 LG k5lp/k3lp 芯片机型上一个特定沙盒缺陷的修复,只有在电视装有 Homebrew Channel(root)时才生效。
它在任何 LG webOS 电视上都能用吗?它需要 webOS 4.0 或更新版本;2016 年的机型(webOS 3.4.3)可以通过开发者模式使用,但拖动进度较慢,低于 3.4 的版本未经过测试。部分搭载 LG k5lp/k3lp 芯片的 2019 年机型在开发者模式下完全无法播放视频,这是 Kodi 和 Moonlight 也会遇到的沙盒限制。
我的观看记录和媒体库数据会去哪里?PlxNative 只与你的 Plex 服务器、用于登录的 plex.tv,以及用于演员资料的 discover.provider.plex.tv 通信——你的媒体库数据绝不会到达开发者。崩溃报告和使用统计默认关闭,各自是独立的可选项,之后可以再改回来,而且其中不会出现任何片名、搜索词或服务器地址。
它支持 4K 和杜比视界吗?支持——当电视的编解码器表支持时,它可以直接播放 H.264 和 HEVC,包括 4K、10-bit 以及带 E-AC-3 Atmos 的杜比视界 profile 5 和 8。其他情况会退回服务器转码,播放还可以切换到 Auto,以跟随速度变化的链路。
nightly 构建和候选发布版有什么区别?Nightly 是每天从主分支切出的 CI 构建,作为独立的“PlxNative Nightly”应用并列安装,发布 30 天后自动删除。候选发布版(RC)是完整的发布构建,会以正式 PlxNative 应用本身的形式安装,在最终版发布前替换你当前的版本。
我也能用它听音乐或看照片吗?不能——它的范围刻意只限电影和电视剧,不支持音乐、照片或直播电视/DVR。
为什么重做一个全新客户端,而不是改进官方 Plex 应用?官方 LG Plex 应用实际上是运行在电视 Chromium 浏览器里的网页应用,滚动和导航会碰到修补无法解决的性能上限。PlxNative 彻底抛弃浏览器,直接在 GPU 上绘制界面,同时把视频交给电视的原生解码器。
Creator
GLinnik21
Size
318 MB
Stars
1K
Age
3mo
Commits · 90 Days