v0.3.0
v0.3.0 — it stops asking your server for something only a subscription can give
If your Plex Media Server does not have a Plex Pass, earlier releases could not play anything that was not an MKV file: the app asked the server for a conversion only a paid subscription can perform, and there was no second choice. This release asks for something every server can do, plays MP4 directly so most files need no conversion at all, and says plainly what happened when a server still refuses.
What's new
- A server without a Plex Pass can play your library. When a file cannot be played as it is, the app asks the server to convert it and has to name the formats it will accept. It named exactly one — HEVC — and encoding HEVC is a Plex Pass feature, so on a server without the subscription there was nothing legal to ask for. The request is now a list in order of preference ending in H.264, which every server can encode: a server with a Plex Pass still gets the better format, and one without still gets a picture. Binge-watching was caught by the same rule and is fixed with it.
- MP4 and M4V files play directly. Most of a normal library now never asks the server to convert anything at all. The direct-play rule had been MKV-only since long before the demuxer that made it necessary was replaced.
- The app no longer assumes your television is the developer's. It used to claim HEVC, 4K and 10-bit because that is true of the one set this project owns. It now reads the codec table your television publishes for its own media stack and reports what that says — per codec, with the real maximum resolution and frame rate, and where two rows describe the same decoder with different numbers, the lower ones win. If the table cannot be read, the old assumptions are used unchanged and the choice is written to the log. The webOS version reported to Plex is your television's real one too, rather than a number compiled in from the developer's set.
- A failure says what failed. Where a black screen used to be, there is now a full-screen message naming the cause — and where the server refused, it quotes the server's own sentence underneath, which is the line that actually identifies the problem. When a server refuses before sending anything, the app finds out before playback starts rather than after a stream has silently arrived with no video in it.
- A page says how a title will play before you press anything — directly, as a container change, or as a conversion — and warns when a conversion will flatten HDR to SDR. Where a feature genuinely needs a Plex Pass on the server, the name is shown as a plain label beside it. This app sells nothing and links nowhere; a subscription is mentioned only where it changes what happens next, and never guessed at.
Fixed
- Two of the app's three log files were readable by anything else on the television. They live in the shared
/tmp, andplxnative-crash.logandplxnative-stderr.logwere created mode 0644 rather than 0600. The crash log holds a faulting address and a memory map, the stderr log holds whatever an abort prints, and neither is known to carry anything about your server or your account — the event log, which does record your server's name, its address, profile names and episode titles, was already 0600 and is unchanged. All three are 0600 now, including one left behind by an earlier version, so installing this release completes the fix and there is nothing for you to do. Found by measuring the file modes on the television while checking this release's own claims about them. - Nothing but MKV files would play on a server without a Plex Pass. The conversion request named one format that requires the subscription.
- MP4 and M4V files were converted rather than played directly.
- The next episode would not start on a server without a Plex Pass. Same single-format request.
- A stream that arrived with no video in it reported "no video stream". True, and useless — it is now named as what it was: the server sent audio only.
- The app reported a hardcoded webOS version to Plex. Your server's device list showed the developer's television, not yours.
Compatibility
- Plays video, verified by watching it — 2019 LG sets. One television: an LG 49SM9000PLA, which reports platform release 4.10.2 (LG markets this generation as webOS 4.5). A 21-case suite runs on that set against a live Plex Media Server before every release.
- Plays video, reported by someone else — one 2021 set. mariotaku of webosbrew ran v0.2.1 on an LG 65UP7560AUD (platform release 6.5.2) on 2026-08-11 and got a picture: issue #22. Six of eight attempts played — H.264 at 1080p and 4K, HEVC, AAC and AC3, an episode, and an item watched to the end. The two that failed were the server-side defect this release fixes, and neither was about the television. That is one firmware, one set, one report, and it is the first time video has been seen on anything but the developer's own television.
- Starts, and nothing further is known — every other firmware from webOS 4.0 up. The loader resolves this binary's libraries and symbols cleanly against all nine firmware images webosbrew has at 4.0 or newer, webOS 4.4.2 through 11.2.0. That grades startup and says nothing at all about whether video plays.
- Does not start — webOS 3.9.2 and older. Symbols the app needs are missing there, so the process is killed before anything appears.
If your set is in the middle two groups, tell us what happened. It working is as useful a report as it failing.
Help test this release
If you have a 2020, 2022 or 2023 LG set — webOS 5.x, 10 or 11 — try playing something. Video has now been seen on webOS 6.5.2, on the same code path those releases take, but nobody has run it on any of them and a static check cannot tell you whether a picture appears. Seeking on those sets also takes a slower route than on webOS 4.x, and nobody has watched that either. The diagnostics panel is designed to be photographed, so one photograph is a complete report. Open an issue. It working is as useful a report as it failing.
Known issues
- Remote-only servers, Plex Relay, servers that require secure connections, and servers reached by hostname or IPv6 — the app finds a server on your own network by numeric address, and there is nowhere to type one in.
- The app still asserts 10-bit decoding without asking, because the television's codec table has no column for bit depth. Codec and resolution are read from the set; this one claim is not.
- On webOS 5 and newer, seeking reloads the stream instead of moving within it. It works and it is slower, and nobody has yet watched it happen on hardware.
Installing
Download com.beb.plxnative_0.3.0_arm.ipk and install it with the Homebrew Channel or dev-manager-desktop. You do not need a rooted TV.
Nothing in this distribution chain is signed, so this sha256 is what tells you the file you have is the file published here:
b9ffc0f4d957d57a291709620338c4e28aaaddad5d568333140b16b9740d5677 com.beb.plxnative_0.3.0_arm.ipk
Installing and checking a download covers the other assets, how to check the hash on each platform, and the Developer Mode expiry that uninstalls your apps. This package bundles FFmpeg under LGPL-2.1-or-later and its complete corresponding source is attached to this release. Exactly what was built, verified and shipped is in the technical audit for v0.3.0.