Dan6erbond / jolt

The social hub for your media server. Rate, review and recommend movies and shows, as well as manage your watchlist, follow friends and more.
MIT License
167 stars 3 forks source link

Support additional media servers #4

Open xstar97 opened 1 year ago

xstar97 commented 1 year ago

Any possibility on supporting plex and other various media servers?

Dan6erbond commented 1 year ago

It should be possible, yes.

Log-in/user creation is very simple to augment with additional methods, such as loginWithPlex() and loginWithEmby() as well as generic implementations like loginWithOauth2() but other things like syncing watchlists, media availability will require a more complex data schema and separate workers to handle these tasks.

I'm not saying it's impossible. It should be trivial from an implementation perspective with a solid base. Jolt's entire backend uses services to abstract these things and it can be done. But since I only run a Jellyfin server it would require the community to help with these things. But I'm open to it!

xstar97 commented 1 year ago

I run plex exclusively 😅, i have some background in rest api and backend developement. I may look into it, very cool project btw.

Dan6erbond commented 1 year ago

Would be very cool! I'm not opinionated on which media servers Jolt supports, as long as Jellyfin is a first-class citizen. 😅

xstar97 commented 1 year ago

Would be very cool! I'm not opinionated on which media servers Jolt supports, as long as Jellyfin is a first-class citizen. 😅

i have no-issue with that 😅

trevor68 commented 1 year ago

I presume it will work with Emby right now?

Dan6erbond commented 1 year ago

Honestly, I have no idea. If Jellyfin's and Emby's login APIs and user data endpoints work the same, then probably yes. But I'd prefer if contributors just copied the Jellyfin endpoints and implemented Emby specific DB functionality so the UI can also display those correctly.

trevor68 commented 1 year ago

Sorry, I'm not a dev, just a long time Emby user, given Jellyfin is a fork I just presumed it might work.

kodxana commented 1 year ago

+1 for Plex. Most of my friends prefer it. Tried to use Jellyfin but not worked well.

Dan6erbond commented 1 year ago

So I'm working on a concept for authentication and media server entries that would allow Jolt to support any service as an authentication source as well as map those to media servers, but it will require some refactoring and updates to the configuration system.

The idea being, that admins can configure authentication sources as a separate key in the configuration, including LDAP, OAuth2, Jellyfin, etc. and those authentication sources are used as "profile connections" similar to how Discord maps your account to various social providers.

With those connections, workers can be spun up, that scan through the connections' media, and sync them with Jolt's server. This includes syncing watch status, availability, and later on using it to cut clips which will probably require Jolt to have Jellyfin API keys, so it isn't bound to using user tokens to fetch items from Jellyfin.

To follow the progress of this work I created #16.