New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Project State (Discussion) #98
Comments
Well not dead per se, but I'm not sure in what direction I want to take the project. I wanted to develop a tv app, but it's not happening for technical and time reasons. I've decided I want to make the app discovery and media management first, because it's hard to compete with Plex and Jellyfin in the playback aspect. So a mobile app for discovering content and managing & downloading media is what people are missing imo. So right now I need to decide if I stick with svelte and try finishing the website and adding a proper PWA (progressive web app) or if I want to make a proper mobile app with react native. Downside to that is that many people probably use the web interface too, not just a mobile device. Will probably go with the first option and hopefully continue the development soon. If others stumble upon this issue, I guess we could keep this as a discussion for what people think should be done with the project. |
I would love to see further development go into the Website. There are already many Features I like, but also Big potential left. For me rn the only thing holding me back to switch from jellyseerr to reiverr is no Multiuser and no authentication/sync with Jellyfin Users. |
In my opinion I think that Reiverr has great potential. I tend to agree with @neuleo . There are more than a few features missing for me to switch from jellyseerr to reiverr, such as being able to have multiple users synced with jellyfin. For the video player I think you can integrate the jellyfin video player, it is already very complete |
I agree with @GaetanPTX , I would push Reiverr rather more into the direction of Jellyseerr then into a Media Player. Reiverr as Jellyseerr Replacement really has great potential. |
Got you. I'm curious, if the website's user experience and performance was comparable to a native mobile app's, would you prefer using the app on mobile or on a laptop? For me mobile + tv combo would be best but I'd like to get some opinions on this, to see how much should I optimize the website for mobile. Also could you elaborate on what you would like to see from the multiple user feature. I have always had only one user so not familiar with how those work when it comes to Jellyseerr. |
This space lacks a unified app for Media Discovery and Playback on the big screenLet's be honest, most people don't watches movies and series on their mobile phones.. Mainstrean approach is to hook a Android TV streaming device into a Projector or TV. For this reason people opt to use Plex Discovery to find & stream movies within the same app (since you can hook Plex Watchlists into *ARR stack). It sucks. Searching for movies and series on a small mobile screen is awkward if you have a partner or friends over. Are you supposed to find movies on the phone and then use a fiddly TV-remote to search for the trailer on the big screen so your companion can see it too? Well, usually it takes a few tries before you find a good movie which gets tedious real fast ;) Ideas:
|
I already use jellyseerr for all these features. Personally I mainly use jellyfin on my computer and my apple tv / android tv. In my opinion reiverr must become an "all in one". Being able to group jellyseerr and jellyfin in one place. be able to watch media and also make requests |
Thank you, good points. @GrabbenD and @GaetanPTX you described my original idea perfectly, I wanted to make the reiverr app work on tvs similarly to jellyfin so that it would be all in one app. However, I just could not get the app run on my Samsung smart tv, it seems like they don't support some of the modern web features that svelte relies on (also Tizen development SUCKS). Then there are so many different smart tv platforms, none of which is very dominant, making supporting all of them really hard. So I think I should do the next best thing and focus on making the experience good and polished on other devices first. Then again, maybe I need to take a second or third look into the Tizen, there's gotta be a way to make this work as you described @GrabbenD. |
Any news for the next update? Merry Christmas |
Just been testing and planning how do I get svelte running on tizen. I might have to ditch sveltekit and use svelte only, as well as maybe use a separate backend, too. Also TVs probably need their own ui layout entirely. I'll try getting any major migrations done next week. Merry Christmas everyone! |
Update: After hours and hours of fighting and many hacky solutions later, I can confirm that I got a poc svelte project running on my old samsung smart tv running old chromium m69. I'll start redesigning a single page tv app, without sveltekit, reusing some of the old components. Eta of a tv app will probably not be before next summer though. |
I would say you should really only support android and Tizen, this will make most tvs work and let the community make clients for other custom tv OS'es(???) |
I definitely want to use reiverr to have combined requests and playback in a single unified app. It'll probably never be the best media player and I'm not sure if I'll ever entirely prefer it over jellyseer, but what makes reiverr stand out is the convenience of not having to switch back and forth between two different apps like jellyseer and jellyfin. |
@aleksilassila Have you considered using MPV as the media player backend? I think it's worth to evaluate this as early as possible given similar projects which uses web frameworks as the frontend suffer from inconsistencies with video- & audio codecs support. As a result this leads to degraded picture quality, can trigger tone-mapping when not necessary and can even break HDR. |
I wasn't aware of MPV, but I will look into it when I get to implementing the video player. Thanks for the tip! |
This sounds great @aleksilassila ! Curious if you have capacity to build out the improvements for the website as you work on this? I've not worked with Svelte before but I'd be more than willing to help out. With a bit more polish and a few extra features I think Reiverr would fit perfectly into my home lab (specifically user management mentioned above). I've been a SWE in the industry for around 6 years now and would be more than happy to invest some time into building things which i'd find direct value in, if you're open to it? |
Absolutely, all the help is much appreciated!
I probably won't, I'll try to get the tv app up and running as a first priority and it'll probably take a while. I still haven't decided if I replace the current website built with sveltekit with the tv app and make it usable on both tv and with keyboard and mouse. That would be the ideal solution though, if it's possible. |
IIUC the new app is just Svelte without SvelteKit and spatial navigation implemented? I can see that it might not be optimised for web, but it should still "work" out of the box surely? |
I personally believe Svelte is not the correct way to get multi platform, more of a hacky web wrapper. If you want native performance look into Flutter. It's a cross platform framework from Google that delivers near performance on any device. Whether Android (Phones, Tablets, TVs), Web, Linux (Desktops or embedded with Wayland/X11), Windows, Apple (iOS, ipadOS, MacOS), Tizen (5.5+), etc. If you're looking to jump ship from svelte to native, I'll contribute. But I think you first need to nail scope (core features, nice to haves, maybe ill add it eventually features). In my opinion core features should include: Jellyfin + Plex integration(frontend, browsing, and management), Arr suite integration (requests), TMDB integration. |
Yep, it will work. Navigation is another thing though, but hopefully I can make it work
I actually considered flutter a lot, but decided against it as it doesn't run on my Tizen 5.5 tv (its 6.0+) and I don't have experience with it. I thought I needed to get the app running on my tv or else I wouldn't have the motivation to finish it.
I agree, and I think currently it's slightly bad time to contribute until I get the base of the app up and running. Good core features and nice to haves as well, will aim for those |
@aleksilassila thanks for all your work :) I'll pitch in for a Chromecast if that would lead to using Flutter, I played around with it for a while so I would be able to contribute as well. |
Honestly, after wasting another night fighting with tizen (I can't express my hatred towards this platform enough) and the old chromium firmware on my tv I think I might need to get a chromecast or similar to continue the development. That would open the discussion for the option of using Flutter, but gotta think about it. Nice thing about svelte is that I can reuse a lot of the already built components in this project + I know my way around things. |
I and a couple friends of mine would no doubt contribute to this. If you need help with this or would like financial contributions, don't hesitate to let us know. |
Just to throw in another option to consider: Using React Native (Expo) instead of Flutter, which would probably be more familiar to people used to JS/TS and Svelte, compared to Flutter. Expo (an amazing set of tools to facilitate React Native Development) just very recently added support for building TV apps: How to build TV apps with Expo and React Native |
Just to add a bit of context and hopefully clarity here with regards to the discussions around technology choices.
Why not? While correct, it isn't native and also correct that most implementations of this are "hacky" this doesn't mean a good solution cannot be based off this (or a similar) technology stack. If you consider the wide breadth of well known apps (Slack, Spotify, Microsoft Teams, Discord, Canva) these all use web technologies to build multi-platform apps, Spotify in particular pioneered this strategy long before Electron was around. (The Jellyfin WebOs TV app is also a wrapper around the web-based client) I don't think it's prudent to define a projects success by the chosen technology stack, Svelte may not be the best choice but it certainly isn't going to cripple the project. IMO there are more important reasons to consider different stacks and my 2cents is that in my experience wrapping a web-based environment in a native shell to achieve multi-platform support is the most mature solution without diving into per-platform native solutions.
I agree with this, though from my experience across building Expo & React Native Web apps as a hobby & professionally is that React Native Web is a fickle beast, so if the intention is to support web as well as other platforms it will lead to some frustrations as well. In saying this React/React Native would be my preference if the project was to be rewritten 👍 (caveat that I have a WebOS TV and would also like a web version to remain) |
I would also be hesitant to argue too strongly for the performance benefit of any of the above mentioned "pseudo-native" solutions. At the end of the day Flutter, React Native, etc are NOT native, their UI is compiled to native but this is not a 1-1. Especially with regards to non-ui work (everything not relating to render logic). Yes you can build native UI with these frameworks, can you take advantage of native capabilities for video/image processing easily? Unlikely. The real challenge is to deliver native graphics performance without the significant burden of building a real native solution for each platform. Consider Netflix's solution which is exactly this, web technology integrated with bespoke native bindings for graphics |
Just as a quick update, I think I've got the ball rolling again. I've mostly solved the biggest problems regarding getting navigation, animations, css, data fetching and video playback working on my old tv. I'll work on the rework in #reiverr-for-tvs branch for those interested. It's going to be a while before I'll have a usable prototype though, I'm aiming for June or July with that |
personally i would use AniDB for anime metadata, the only downside is the api rate limiting can occasionally be a bit of a pain if you run multiple software that query it as it IP based rather than Key based, however in my experience it is the best source for anime metadata, however ive also never heard of HAMV |
For their desktop apps correct, as it allows one app for multiple desktop platforms. The benefit is lower codebase, the issue is less hardware integrations and high performance overheads that make them unperformant on mobile or low performance hardware. It's especially noticable in Electron or React Native desktop apps and their high RAM usage for simple functionality.
With react? No. With flutter? Yes. There is both native hardware (GPU) acceleration support in the form of the built in Impeller engine, third party low level video packages, and support for OS native frameworks such as gstreamer, for video streaming. In regard to Impeller (the built in rendering engine): "Impeller implements a custom runtime that fully exploits modern hardware-accelerated graphics APIs, replacing Skia code with a significant rewrite."
The problem with Netflix is yes they provide streaming with a web wrapper for mobile, web and TV, but ONLY for Standard Definition with no support for HDR or 4K. The only time these work is when the hardware + app have been whitelisted in which case they use non standard web technology to deliver these types of streams and even with compatible hardware it sometimes does not deliver full 4K or HDR and chooses to fallback. I'm not saying ReactNative/Expo is wrong, because yes many software companies utilize it. But at the end of the day, if you choose to go with React, it should be because you're familiar with it and unwilling to learn an alternative, NOT because its the best language for the purpose. It is NOT clearly better in any way except convenience. Flutter is the objectively more performant, more scalable choice, especially for low performance devices such as CCwGTV, mobile, or web. |
Just to add on to what you've said: This approach usually limits the video player to codecs provided by system's WebView. Biggest problem being missing HDR support as seen in JellyPlayer (React): prayag17/JellyPlayer#212 Hence why a native solution with ExoPlayer is a much better approach (or at minimum, opening a external player app) |
I disagree. This isn't the biggest driver for adoption of these technologies.
I haven't had time to dive deep into these concerns lately. I started building my own app with WebOS support as my priority but I've been busy these last weeks (yes I regret buying an LG). WebOS does not have a native platform, all apps are web apps. Throughout testing I've had no playback problems. 4K & HDR content streams fine without performance issue. I'm sure there is nuance here though I'm not convinced that the web platform is as terrible as it has been made out to be.
I think you're underestimating the implications of the ongoing maintenance burden created by maintaining & delivering multiple platform native applications. Yes any cross-platform framework is going to come with a performance cost. Does that matter? There is no hard and fast rule, this should be evaluated based on observed impact.
There is no "silver bullet" solution in software development. Any choice has it's own set of tradeoffs, the statement that React Native is only a good choice if you're lazy or burying your head in the sand is disingenuous. Flutter might well be a great choice, possibly the best of the options - I haven't tested it. What I do know is that:
I'm not advocating for React, I'm using it as an example here to show why there is more to consider than "what you are already familiar with". |
Is the project dead?
The text was updated successfully, but these errors were encountered: