Fallenbagel / jellyseerr

Fork of overseerr for jellyfin support.
https://docs.jellyseerr.dev/
MIT License
3.49k stars 218 forks source link

[Feature Request] Support for devices with arrow-based (D-pad) navigation / TV Remote / Android TV #601

Open GrabbenD opened 9 months ago

GrabbenD commented 9 months ago

Description

If you fire up Jellyseerr through a Native WebView or a Webbrowser (since PWAs are not supported), in a Android TV device (like NVIDIA Shield), you'll quickly realize it's impossible to use it with a (arrow based) remote:

For context, most streaming devices don't have a cursor based remote (like TVs do) which means you have to scroll with arrow keys on the remote.

Desired Behavior

I like the idea of keeping Jellyseerr as a web app since this way it can be integrated into other apps (as a Native WebView). Perhaps this issue could be resolved by HTML tabIndex and CSS element selection highlight?

Additional Context

From hours of researching this topic, majority of users recommend to use Plex Discovery instead of Jellyfin + Jellyseerr (since you need a desktop or mobile phone to use Jellyseerr which isn't as intuitive as launching one app on your streaming device).

Support for arrow based navigation would most likely aid in resolving this fragmentation of the userbase.

Code of Conduct

JonathanLTurner03 commented 4 months ago

I haven't dived into the code, however due to this being a web based app, could this functionality be able to be accomplished via user agents? Or would a better alternative be to create wrapper apps for it, such as it seems some jellyfin clients have? (ie. SwiftFinn Jellyfin on Android)

I'm definitely interested on this implementation and may look further into it. Please update me if you have found a potentially good solution to this.

Fallenbagel commented 4 months ago

Or would a better alternative be to create wrapper apps for it, such as it seems some jellyfin clients have? (ie. SwiftFinn)

Swiftfin is not a web wrapper. It's native. Written in swift.

GrabbenD commented 4 months ago

The most maintainable approach is web wrapper to avoid fragmentation of the code (..despite it not being as performant as a native app).

@JonathanLTurner03 Here's how I'd go about doing it in Android TV:

Other considerations