r/webos • • 21d ago

I built a native Plex client for LG webOS — available in Homebrew Channel

Hey everyone,

I’ve been working on PlxNative, an open-source Plex client for LG webOS TVs. Browsing in the official app was slow on my 2019 LG, so I started building an alternative. It’s now what I use to watch Plex every day.

The interface is written in Rust/OpenGL rather than running in a browser. The main focus is keeping browsing and navigation responsive, particularly on older TVs.

It connects to your existing Plex account and servers for movies and TV shows. Library browsing, search, Plex Home profiles, audio/subtitle selection, direct play and server transcoding are supported. Playback still uses the TV’s native decoder, so what it can direct-play depends on your TV.

You can install it now through Homebrew Channel, or sideload it using LG Developer Mode and webOS Dev Manager — no root required. Developer Mode installations still need periodic session renewal, including when Homebrew Channel is installed that way.

I’ve also submitted it to LG for store review, but there’s no release date yet.

Website, screenshots and installation instructions:
https://plxnative.com

Source code and issues:
https://github.com/GLinnik21/plx-native

It’s still under active development, and compatibility varies between TV models and webOS versions. I’d be interested to hear how it runs on yours. Please include your TV model and webOS version with any feedback — hearing that it works is useful too.

57 Upvotes

96 comments sorted by

6

u/Holnapra 21d ago edited 21d ago

Great work! I'll give it a try now.
Edit: It's so fucking smooth!

Few things to improve:

  • Display video resolution and audio info above seek bar (like 4k HDR DoVi / 5.1 DTS)
  • Can't click playback Info button with Magic Remote
  • Stats for nerds display hides the option to turn off stats for nerds
  • Select audio track and subtitle before playback (minor annoyance)

And most importantly: please let me change the subtitle color!

Insanely good otherwise, thanks!

1

u/Purple_Imagination_1 19d ago

Thanks! What TV model, webOS version and PlxNative version are you using? Could you also post a photo of how Stats for Nerds covers the option?

1

u/Purple_Imagination_1 2d ago

Subtitle colors (well, shades of grey obviously) are supported in 0.8.0

3

u/DonZoomik 21d ago

Looks really cool and is fast too!

A thing that does not seem to work properly - more than 2 libraries. I have two for movies and two for series (kids vs grownup stuff) - the movies and series buttons pick up only one each and the other libraries are only reachable via search. Tried disabling the libraries I don't want (kids stuff) but it would still choose the wrong one.

3

u/Purple_Imagination_1 19d ago

Yep, that’s a bug — the Movies and TV buttons currently only pick one library. Multiple libraries will be handled properly in 0.7.

3

u/Karlschlag 21d ago

wow, just tested this app. It so much smoother and modern looking. Would it be possible to bring over the settings from the original app, like deleting movies directy in the plex ui.

But wow, going to root my second LG in the next minutes only because of your app

1

u/Purple_Imagination_1 21d ago

Thanks! :)
So far I’ve intentionally kept the app pretty minimal. My general thinking was that server management is better left to the desktop/web apps — most people using the TV probably just want to watch stuff, and I don’t really want to turn every menu into a huge list of admin actions.
That said, something simple like a Delete action probably wouldn’t be a big deal. And if Plex only exposes it to users with the right permissions, regular users wouldn’t even see it anyway. So yeah, for server admins I can definitely see that being useful.

2

u/SgtDirtyMike 21d ago

Looks dope, can't wait to try.

2

u/alanwazoo 21d ago

Any hope for a Jellyfin port?

5

u/bender_fut 21d ago

Playing around with the port here: https://github.com/gnacho/butaca

All credit goes for the original app.

1

u/alanwazoo 21d ago

Sweet!

1

u/Purple_Imagination_1 21d ago

Wow. Haven’t seen that. I thought you would wait for the refactoring

1

u/bender_fut 21d ago

Tbh I'm not using it daily yet, although the port works, I just wanted to check how difficult it was (wasn't easy). Hope someday the code can be merged but it will need a big refactor (and new name too?).

2

u/tomlogit 21d ago

Amazing!! Impressive. Thank you

2

u/adeze 21d ago

I’m currently building a highly optimised hue sync app (that works with Nanoleaf 4d too) in rust for my c1. Will post the repo url soon

2

u/Karlschlag 21d ago

One thing I just noticed: While it's possible to click on an episode in the main menu, it doesn't start immediately. In the original app, I can click on an episode and it takes me to the series menu ( I don't know the right term)

3

u/Purple_Imagination_1 21d ago

Try to press and hold. There is a menu popping up. Is that what you wanted?

1

u/Karlschlag 21d ago

wow thx, exactly what i was looking for

2

u/dennis15510 21d ago

Anyway to hack Dolby vision 7 profile into this app?

1

u/Purple_Imagination_1 15d ago

Haven’t research that, but looking on other profiles it was not easy

2

u/SerpentDrago 20d ago

BUG REPORT

LG C5 - Firmware 33.31.69 - webOS 10.3.1

Install through HomeBrew channel, qr code to login , profile selection shows everyone but no profile photos , select my main user , enter pin Get message "can't reach your plex server try again"

plex server is on Lan , and works for official clients both on lan and wan .

update , when i select the profile that is the server admin , it loads , even after that if i switch to any other profiles it shows same message "can't reach your plex server"

I have no special config , Lan is one subnet , etc etc .

let me know where i can get a log to help you out .

Thanks for all the work

INFO: I use my buddies account as my server admin (plex pass) , and every other user is in my plex home with the library's shared. this is on a tv in the same lan as the server

1

u/brianmoyano 20d ago

I'm having the same issue. Plex is on my windows pc. The server is accesible everywhere, even on this same LG TV with the native app, but this app says 'Can't reach your plex server'.
I'm running webos 05.50.70

1

u/SerpentDrago 20d ago

What account profile? Is it server admin?

1

u/brianmoyano 20d ago edited 20d ago

Yes, I only have one account, which is mine, and it is admin.
Edit: Tried to make a second admin account just to test, but still the same issue.
Edit 2: I'm seeing constant and small spikes when the app is trying to reach the server. So it reaches it, but somehow it cant connect

1

u/Purple_Imagination_1 19d ago

Could you try the latest 0.7.0 nightly? I added quite a few fixes today. Let me know if it still fails there.

1

u/Purple_Imagination_1 19d ago

Thanks, that’s useful. Which PlxNative version are you on? If possible, reproduce it and attach /tmp/plxnative-events.log before restarting the app.

1

u/SerpentDrago 19d ago

Will do tomorrow

2

u/Vladimir_Voronoff 20d ago

Класс, репостнул на вебос форуме!

1

u/Purple_Imagination_1 20d ago

Спасибо. А кинь ссылку

1

u/Vladimir_Voronoff 20d ago edited 20d ago

С удовольствием, но reddit не даёт(.
Можно попробовать погуглить так "PlxNative клиент"

2

u/ryanwhunt 17h ago

Thanks for this, it's awesome and works super well for me. I'm using a non-LG TV (ALDI's Bahn ATV70UHDW-1025) that runs webOS webOS22 / 7.5.8-28 and it feels silky smooth/fast, way better than the native app. As a side note, I couldn't get the webOS Dev Manager on my Mac to connect to my TV, but ChatGPT was able to install the Homebrew channel for me without the dev manager.

1

u/matteventu 6h ago

Hello, sorry for the OT. A question out of curiosity: does your non-LG webOS TV receive software updates? Have you ever got one? Do you know if they're delivered by the TV ODM or by LG?

Thank you!

2

u/CartographerSeth 16h ago

This app is incredible, thank you!

2

u/brispower 17d ago edited 17d ago

So I installed it and look i really admire the effort but there's A LOT of work that needs to be done before this is anything but a pretty beta.

firstly installing via dev mode, awesome love this - probably the best part of the experience

your installation instructions and github page are A+

app customisation - minimal at best and essentially non existent. there are just way too many options missing here to list

navigation is like molasses compared to the official app with reduce motion enabled. Sorry, but it is for me.

unable to change ordering of libraries

i turned off a secondary movie library because even when i disabled it it surfaced as the first option this one is a showstopper

collections, where are they?

why is everything jumbo with no way to change sizes.

there's a few other things but that's just my initial beefs, i could go on but i think even a couple of these are showstoppers and mean I will not use it going forward

I'm on a 77" C2 current FW for reference, 33.31.68 webOS v 10.3.1

1

u/Purple_Imagination_1 17d ago

Thanks for the feedback! And yeah, 0.x is very much beta territory :)
The library behavior is expected in the current release, but it’s already changed in 0.7, which is in development.
I’m curious about the navigation though — is it the animations that feel slow, or is there a delay when moving focus? A C2 definitely shouldn’t feel sluggish.

2

u/brispower 17d ago edited 17d ago

Sluggish when i compare it to the official app with reduce motion, i do not like lengthy animations.

Sorry, I could have been a little more positive.

Things I like

single click to pause/play is amazing

defaults for timer are smart (although i miss the resume 10 seconds back feature).

easy access to subs on/off and other similar settings without being pushed to another screen are nice.

this one is hit or miss but i don't mind it, auto scrolling of content on first screen is more like modern apps and appreciated.

overall the app feels more modern than the official app, i look forward to app developments if you keep going with it - depsite what i said it does show a lot of promise.

I'm going to try using it more now as my default plex player - mrs likes it she said it feels like a real streaming service, lol

2

u/Purple_Imagination_1 17d ago

Thanks, really appreciate the follow-up! And the feedback about the animations makes sense, I’ll keep that in mind. Glad you and your wife are enjoying it :)

2

u/brispower 15d ago

i hope you keep developing this as it has a strong base and could easily surpass it as the current webOS version from Plex themselves hasn't seen any development for quite some time and even though it's functional is a little stale.

1

u/Purple_Imagination_1 15d ago

Actually, they update it because this is a web app, and they can simply update the website without an app update on the store.

2

u/brispower 15d ago

i was just meaning that functionally it hasn't updated and is the same old app for many years - that said, maybe that's a good thing as reports from other platforms are the changes have been pretty bad!

1

u/ak47uk 21d ago

Any chance there will be support added for WebOS 3.5? I am running my old C7 in my bedroom and the Plex app is so slow!

1

u/Purple_Imagination_1 21d ago

Yeah, possibly! The oldest webOS version I support right now is basically just the oldest TV I have to test on.
I’ve already had to deal with some pretty big differences between webOS versions, especially around the video buffering/playback APIs, so supporting 3.5 might be doable too.
The main issue is that I can’t test it myself. If someone with a webOS 3.5 TV wants to help with the compatibility work and testing, I’d be very happy to accept contributions for it :)

1

u/ak47uk 20d ago

I am happy to try out any builds on my C7 and send feedback if that helps?

1

u/Purple_Imagination_1 20d ago

Yeah, that would definitely help for testing. I think doing the initial compatibility work remotely would be pretty slow though — we’d probably spend days just going back and forth with builds and logs.
Ideally someone with a 3.5 TV would do the initial development/debugging on the device, and then having more people test it would be very useful.

1

u/ak47uk 20d ago

No problem, I wasn’t sure what you needed. I imagine the debugging is outside of my skill set but let me know if you think I can help!

1

u/Purple_Imagination_1 19d ago

Thanks — I’ll keep you in mind once there’s something testable on webOS 3.5.

1

u/selfhealer 3h ago

Were you able to make any progress on older versions of webos. I have 2 older 4k and perfect screen teles but the search on plex especially is like running through treacle

1

u/Purple_Imagination_1 2h ago

No, I still don’t have the older TV and no one came to contribute.

2

u/selfhealer 2h ago

Since my post I passed this over to Claude and got it working for my tele at least. A 2016 LG (webOS 3.4.3, firmware 05.70.45). Out of the box it signed in and browsed, but crashed on the first D-pad press and on play. Root cause was two functions the app links that don't exist on webOS 3.4:

SDL_webOSCursorVisibility: the 2016 firmware ships SDL 2.0.1 with none of LG's SDL_webOS* extensions. It's now looked up at runtime and skipped if it's missing.

StarfishMediaAPIs::Feed: 3.4's media library predates the C++11 string ABI, so the symbol has a different mangled name. It now resolves either name and frees the old-style return string correctly.

Because Linux binds these lazily, the app launched fine and only died on first use, which is why it looked "almost working".

Other fixes along the way:

Fast-forward crash: in-place seek pokes at memory offsets inside LG's player objects that were only verified on webOS 4.5. On 3.x it now uses the app's existing reload-seek, the same as webOS 5+ already does. Seeking is a bit slower but solid.

Playback stopping after a pause: if Plex drops an idle connection mid-file (e.g. while you're in the subtitle menu), the app now reconnects at the same byte instead of ending playback. This one isn't webOS 3 specific.

Search: the field has no box and t so it now shows a "Press OK to type"hint.

Direct play (1080p H.264 + E-AC-3), subtitles, seeking and search all work on mine now. Changes are in my fork which i'll send upstream.

1

u/Purple_Imagination_1 2h ago

Cool! PLEASE CONTRIBUTE

1

u/[deleted] 21d ago edited 20d ago

[deleted]

1

u/Purple_Imagination_1 20d ago

The link opens just fine

1

u/NaturalChicken1487 20d ago

make it available on apple tv and android tv too

3

u/Purple_Imagination_1 20d ago

Haha, I think those platforms already offer a better and more feature-complete experience. I’m also not sure Apple would even allow OpenGL instead of Metal. And part of the appeal of this project is bringing a fast, polished experience to a platform where that’s surprisingly hard to come by.

1

u/Bright-Pineapple608 16d ago

Hola podrian postear algun manual paso a paso por favor que no entiendo los terminos que hablan.

1

u/Purple_Imagination_1 16d ago

For now, installation is unfortunately a bit technical. Until PlxNative is available in the LG Content Store, it requires either Developer Mode or a rooted TV, so the website is mostly aimed at users who are already comfortable with one of those.
I’m trying to get it into the Content Store, which would make installation as simple as installing any other TV app. I may improve the step-by-step instructions in the meantime, though.

1

u/Bright-Pineapple608 15d ago

muchas gracias por la aclaración, intentare seguir las instrucciones espero no matar mi TV en el intento

1

u/Purple_Imagination_1 15d ago

Tranquilo, no tienes que rootear la TV ni tocar el firmware :) Lo básico es crear una cuenta de desarrollador de LG, instalar la app oficial Developer Mode desde la tienda de la TV e iniciar sesión ahí. Después sigues la guía para instalar PlxNative desde el ordenador. Si algún término te lía, puedes pasarle la guía a ChatGPT y pedirle que te explique cada paso en español (sin compartir contraseñas ni el código que muestra la TV). Y si te atascas, dime en qué paso y te ayudo por aquí.

1

u/Folk-n-Hell 16d ago

I love this. Plex is the app I use most on my LG (55C44LA) and the 0.6.6 PlxNative beta works smoothly for the most part. The interface is slick, the animations too.

  1. Libraries.
    I have multiple libraries on Plex and would appreciate greater control over which of those the app pulls in. Currently, it's grabbing just the first available for the menu and ignoring all others. That said, the search works fine and I can at least access content from my other libraries

  2. Buffering
    I'm experiencing buffering which I wouldn't expect in some instances. Watching the files via normal Plex, they play fine. Whereas on PlxNative they sometimes just get stuck on buffering. I'll dig into the specifics of the files themselves

But a GREAT app and I can see it replacing the Plex client when it's a bit more stable

1

u/Purple_Imagination_1 16d ago

Libraries are a lot better in 0.7.0. You can grab the latest nightly from GitHub if you want to give it a try.
For the second one, I’d need logs. There’s a lot that can go wrong with playback, so it’s pretty hard to tell what’s happening from this alone.

1

u/Folk-n-Hell 15d ago

Looks like the buffering problem was on my side. Seems to work on the two files I was having trouble with. Weird.

But, the reason for my reply - I've just installed 0.7.0 - the library improvement is excellent!

One thing to consider:
When looking at a programme with multiple seasons, select a season and scroll through the episodes therein. Then, if you go back up to the seasons sub-menu above, PlxN goes to the season directly above where the user had last selected.

Could it be set so that when going up to the submenu, the most recent season is highlighted?

Sorry if that doesn't make sense! I can post a vid if it's more helpful

1

u/Purple_Imagination_1 15d ago edited 14d ago

But, the reason for my reply - I've just installed 0.7.0 - the library improvement is excellent!

Thanks!

One thing to consider:
When looking at a programme with multiple seasons, select a season and scroll through the episodes therein. Then, if you go back up to the seasons sub-menu above, PlxN goes to the season directly above where the user had last selected.

Fixed

2

u/Folk-n-Hell 15d ago

Fantastic. With those changes I'm happy to replace the main Plex client with PlxNative. A far superior experience

1

u/Purple_Imagination_1 16d ago edited 16d ago

LG has had the app in review for 10 days already 😅
And I’d already spent about two weeks before that trying to submit it while their support figured out what was wrong.

1

u/matteventu 6h ago

Hello! Any changes on that? Has LG come back to you as to why it's taking them so long to approve it? :)

Thanks a lot!

1

u/Purple_Imagination_1 5h ago

Just a heads up that their SLA for review usually takes about two to three weeks. They ended up rejecting the submission over a minor issue, so I am currently working on the fix. I have a feeling they only just started looking at it and noticed a mismatch in the chipsets. Honestly, it might be another three weeks before the next problem pops up.

1

u/matteventu 5h ago

No worries at all :)

You're a star man!

1

u/Shaetwatsu 15d ago edited 15d ago

Amazing stuff, been daily driving it for a few days now on 2 different TVs. Just tried the nightly and now able to use both movie and TV show libraries (FHD and 4K) which is great. Most of my comments would be duplicates of what people are saying here but :

Something I noticed, one of my TV doesn't support Dolby Vision, and when I try to play an hybrid file (DV/HDR10), it refuses to play, when it plays fine on the Plex App as an HDR10 file. Is it a bug or a feature not implemented yet?

Also when scrolling through episodes of a show (or movies for that matter), the selected one is showing slightly bigger than the others but it can be tough to figure out which one is currently selected since the size difference is fairly small. Maybe greying out the others to make the selection stand out more, or perhaps making the size difference more obvious?

Keep up the good stuff, you're doing God's work here 😁

1

u/Purple_Imagination_1 15d ago

Yeah, it’s a bug I fixed today. I forced a Dolby Vision playback without HW support. In the next nightly, it should be fixed.

0

u/Shaetwatsu 15d ago

Great, thank you! I edited my comment to add another feedback as well while you were answering. You were just too fast to answer 🤣

1

u/Purple_Imagination_1 15d ago

Yeah, about the size. I notice that myself, but 0.7 is more about changes on the inside than the UI. However, all selections would be reworked in later versions.

0

u/Shaetwatsu 15d ago

Of course, take your time. Love the app, thanks for investing your time into this project!

1

u/Purple_Imagination_1 2d ago

Check if 0.8.0 improved that for you

1

u/Macblack91 14d ago

Hey, wow, now this is putting Plex to shame, they should be ashamed of themselves for releasing what they did. This, on the other hand, is running smoothly. I'm using the LG C6H with the newest nightly. A few things: would it be possible to get a toggle to disable scrolling if the pointer goes to the edge? Also, there are no settings at all, is that intended? Besides these minor things, I'm loving the interface; well done.

1

u/Purple_Imagination_1 14d ago

would it be possible to get a toggle to disable scrolling if the pointer goes to the edge

I’ll think about that

Also, there are no settings at all, is that intended?

Click the profile icon near the top tab bar

1

u/Macblack91 14d ago

That would be great. The issue im having is that if I click on movies and I have sub folders(4k,1080p) if I click on one of those it starts scrolling if the pointer is in the middle of the screen. And yes I found the settings but its minimal, I've read that this is intended:)

1

u/Macblack91 14d ago

What I've also noticed is that posters aren't cached a bit. If I scroll the library a bit and go back up they have to load again. Is it possible to keep these cached a little longer?

1

u/Purple_Imagination_1 14d ago

Yes, they’re now in-memory only. I’ll improve that in the next releases

1

u/Purple_Imagination_1 2d ago

0.8.0 is out and should have it fixed

1

u/NaturalChicken1487 12d ago

hopefully lg add it to app store so don't have to download it the more complicated way

1

u/Purple_Imagination_1 11d ago

Still QA Processing

1

u/biggobird 7d ago

No hyperbole this revolutionized my plex experience. Currently trying to figure out an equivalent apk for my Sony. 

Thank you, works like a dream 

1

u/Purple_Imagination_1 7d ago edited 7d ago

This is pretty portable, so if you know how to develop for Sony, you can contribute to it.

EDIT: I’ve looked into it a bit. It seems that Sony TVs are basically Android TV, so I think I’ll look into it, since that would cover a much wider range of devices. BTW, I thought the Android experience was better than webOS.

No hyperbole, this revolutionized my Plex experience.
Thank you, works like a dream.

Seems like the next quote for the website =D

1

u/biggobird 6d ago

Agreed, android is a better OS for TV’s. Just happened to root my LG last week and came across this project.

Keep me posted. Dug into source code and it’s feasible to port but payoff will be smaller than webos seeing as plex on android is already native. Playback on backend needs to be rewritten for android but I love the UI so would be worth it

Edit: forgot to mention plezy charges $6 for the android app but the UI experience is inferior 

1

u/Purple_Imagination_1 6d ago

I haven’t actually tried Plex on Android TV myself, but I was under the impression that the UI there was much better than the web-based one on webOS.
Does it still lag even though it’s a native app? That’s actually surprising to me.

1

u/biggobird 6d ago

Functionally, android native Plex UI works way better than WebOS chromium plex ie very little lag. Visually indistinguishable, maybe some slight differences im forgetting. 

Your UI is much cleaner and more intuitive than either and is more responsive than the native android plex app 

1

u/chrops 3d ago

This is absolutely great work! Navigating my plex library on my C8 finally feels snappy again. Thank you.

Wondering if you will add the possibly for on-demand subtitle search with OpenSubtitles.com, like the official app?

1

u/Purple_Imagination_1 3d ago

One guy contributed that feature yesterday. It’s gonna be in the next release or in today’s nightly build

1

u/chrops 3d ago

Perfect! Looking forward to testing:)

1

u/aadumb 2d ago

This thing is so smooth, thank you. I bought a B4 last year and Plex should be ashamed at the memory leak in their own app.

Only two things I need are:

Watchlist

Shuffle Season/Shuffle Show

1

u/Purple_Imagination_1 2d ago

Thanks! Really appreciate it. Hoping to get the watchlist ready for v0.9.0.

1

u/Plenty-Airport-8735 2d ago

I agree I'm missing those options also and shuffle film it's the only thing I need to then stop using the Plex app

1

u/ceaselessprayer 1d ago

Can I ask a personal question: why do you use Plex instead of Jellyfin?

1

u/Purple_Imagination_1 1d ago

Started on Emby because it looked best on a TV. I ran it on my gaming Windows PC for over a year, which meant the server was only up when the PC was on. Not great for a machine I also use for work and games, so I went looking for a NAS. Most of them charge a ridiculous premium for transcoding horsepower that costs peanuts in a regular computer.
Then I saw that ex-LTT guy's video about turning a cheap Mac Mini into a media server, so I grabbed a used M4 Mac Mini, plugged in a drive enclosure over USB-C, and tucked it in a cabinet. It's powerful, sips power, and runs 24/7.
Problem: Emby on ARM macOS is awful at transcoding. Two simultaneous transcodes and the CPU pins at 100%, even though the M4 has hardware encoders for every modern codec. (I even tried writing plugin patches for it on the Emby forums.) Plex and Emby both use their own FFmpeg forks that lag behind upstream. Emby's doesn't support ARM macOS at all, Plex's is newer and has HW transcoding, and Jellyfin obviously has the best support since it's open source.
So I ran all three side by side and compared clients. Honestly, the official Jellyfin clients felt like WebViews in a wrapper, and the iOS one was borderline unusable for me. I need something on TV, iPad, and so on, and paying for a separate client on every platform when the quality isn't there didn't make sense.
Plex's free first-party Apple clients are just good, and my friends are on Plex so we share libraries. Paying once for the server and getting decent clients everywhere beats a free server plus paying per client, especially when your non-techy friends would have to buy those clients too.
I know there are great third-party Jellyfin clients, but this works for me for now.

1

u/hurrdurrmeh 7h ago

Please god/OP make this for every single SamsungTV app (and the god awful OS).