Replies: 2 comments 4 replies
-
I think the only really feasible answer to this is "sorry, no". It's basically impossible, and I can pretty confidently say that no client devs would implement this. Just through how all of the native clients build their UIs and make adjustments to them, they're all very different and implementing changes from the web UI, from just changing pictures to full blown layout changes, is a hilariously massive amount of work. Some examples, because I suspect it's hard to grasp exactly how much of an undertaking this is.
As you can see, they're all different languages and technology stacks with vastly different implementations. Even when multiple clients use XML as a templating engine, the template winds up looking so different that there's effectively no sharing of code that can happen. This means that everybody would have to build their own clean implementation of this and figure out how to make it work within the constraints of their specific platforms. Speaking as a client dev, trying to pull customizations from the web UI and have them change things in our native clients is pure nightmare fuel. I can probably go one step further and say that this flat out wouldn't ever be supported by our Kodi addons because I don't want to go through the mountain of work to implement it, and I really don't want the ongoing game of whack a mole that would maintaining it. There's already a sizable pile of folks that edit their web UI and break something and then need help (or forget they did it at all). I can only imagine how much that problem would grow if other clients would take those changes and apply them as well. In addition to that, on these more locked down platforms where the average person will have a harder time pulling logs it adds another order of complexity to debugging and finding where the problem actually is. |
Beta Was this translation helpful? Give feedback.
-
One alternative I considered in the past is a separate plugin system that only works for the web client. It sounds incredibly disjointed (server plugins and frontend plugins) but it's also the only way that really makes sense for the huge changes you're considering. You could technically choose any client and if you end up on jellyfin-vue or the recently announced react client there wouldn't need to be consensus, although it would help increase adoption. I'm not sure how many projects have successful frontend plugins though, so if anyone can link examples that would be a good place to start. Thoughts? |
Beta Was this translation helpful? Give feedback.
-
With my current PR jellyfin/jellyfin#9095 I tried to allow for WebUI client modifications but that does not seem to be working out. Therefor i would like to propose a system that would allow Plugins to provide client customizations in a much more cross compatible way. The idea is for the server to provide a system that can register keys and features that will be delivered to a client if it does implement this function, and the client to interpret them.
I propose a server system where a plugin can register a key on a service. The key can be optionally prefixed with a concrete moniker to only target on specific UI like this:
It is up to the ClientUI to provide and support such extension keys.
Beta Was this translation helpful? Give feedback.
All reactions