jellyseerr icon indicating copy to clipboard operation
jellyseerr copied to clipboard

[Feature Request] Fetch Plex user watchlists without needing their Plex user token

Open hitboxr opened this issue 6 days ago • 1 comments

Description

Currently, Jellyseerr can only fetch watchlists for Plex users who have signed in to Jellyseerr through Plex OAuth and given Jellyseerr their Plex user token. If an imported Plex user has no token (i.e. hasn't signed in manually), they are ignored and their watchlist cannot be synced: https://github.com/fallenbagel/jellyseerr/blob/525a538f34dfec3bd41974f6b37c1077242f1987/server/lib/watchlistsync.ts#L20-L26 https://github.com/fallenbagel/jellyseerr/blob/525a538f34dfec3bd41974f6b37c1077242f1987/server/lib/watchlistsync.ts#L33-L39

This is undesirable because it requires every user to manually sign in to Jellyseerr in order to be able to use their Plex watchlist to make requests, as opposed to seamlessly integrating with Plex without any user intervention needed.

Desired Behavior

I'd like to allow my Plex users to seamlessly make requests through their Plex watchlists without ever needing to log in to Jellyseerr. This can be achieved by querying Plex's GraphQL API (as used by Watchlistarr) which would allow Jellyseerr to fetch watchlists without needing a user's Plex token. It uses the server admin's Plex token to make GraphQL requests to fetch the admin's Plex friends' watchlists.

Requirements:

  • the server admin's Plex account is Plex friends with the target Plex account
  • the target Plex account has their watchlist visibility settings configured to allow friends to view their watchlist.

The relevant implementation is here: https://github.com/nylonee/watchlistarr/blob/dc9ef8521d76428127cf112ad571d2eacb65e074/src/main/scala/plex/PlexUtils.scala#L141

Watchlistarr also implements creating watchlist RSS feeds for Plex friends (which seems like great functionality to pull here) but the feature is listed as "currently broken" in the documentation with no additional info as to how it's broken. Not sure if it actually works or not.

Additional Context

I realize this is a Plex-focused feature request in a Jellyfin/Emby-focused fork, but Overseerr development seems to be completely dead at this point so I figured this was the only place for it. I'd love to try and get a PR up for this myself, but I have little to no experience with Typescript and this feels a little outside my wheelhouse. I'd love some feedback on this!

Code of Conduct

  • [x] I agree to follow Jellyseerr's Code of Conduct

hitboxr avatar Feb 21 '25 01:02 hitboxr