Open Sp4rky001 opened 3 weeks ago
Hey, Jellyfin sadly doesn't have such a feature. Only regular Jellyfin user settings can be used for this, but most of these don't apply to Finamp at all.
However, sharing settings (e.g. via a file) would be a nice additon, also for bug reports. I was planning to include the settings when sharing logs, but sharing just the settings of course makes sense as well!
So this has been knocking around in my head and I thought that there might be an easy way to make it work. I whipped up a quick and dirty Jellyfin plugin that creates an API endpoint in the Jellyfin API. My thinking is that settings, along with the modification date can be serialized into JSON and posted to the endpoint. The plugin would save the json to a file somewhere (in the Jellyfin config folder, for instance) instead of trying to find some place in the database to store it. Beyond that, it would need to be worked out when and how often to check for settings changes.
In the screenshot, I created a /Finamp/Settings endpoint with a post and get method:
Oh sweet! I don't have enough disk space to set up a Jellyfin dev environment, but I did mean to look into plugin development eventually, since that would be useful for Jellyfin Rewind. So I'm really excited that you're going this route!
As for the settings, some kind of serialization has been panned for a while now, since that would enable us to include the current settings when sharing logs. JSON would be fine for that I guess. A DB file like SQLite or Hive should also work, and would be nicer for querying logs though. Uploading that file to the server shouldn't be an issue either, I guess.
As for synchronizing settings, we could just do that on startup. If there's mismatch, we could prompt the user, since some settings require a restart to apply, so doing it in the background is not an option.
We can also use websockets for real-time synchronization, this is the works anyway as part of the remote control functionality (#850)
We should have a way to opt in or out of sync though. I was thinking of a "profile" feature, where you can have different settings profile channels on the server, and keep in sync with any one of them, or none (a local profile).
Having a server plugin specifically for Finamp would of course enable some additional functionality, like synchronizing the queue state.
wow, it sounds ambitious. I guess it needs some direction and planning rather than just jumping in and making a feature that may not fit into the roadmap. I just wanted to give my ideas here and if you have something specific, and if I can handle it, I'd be happy to help.
Hey don't get me wrong, I think your attempt so far is amazing! Please keep on playing around with it, maybe create some proof of concept? 😁
The details aren't terribly important, just make sure to not put in too much work ^^
Feel free to focus on just the settings for now, ignoring what I said about logs :P
ha ha, will do.
Is there a mechanism within Jellyfin to store custom information such as Finamp settings?
It would be a nice feature to have a toggle that downloads the Finamp settings from the Jellyfin server. I have the app installed in multiple places and I need to manually set up my preferences on ever device.
Settings such as storage location would have to be ignored, of course, but UI preferences should be synchronized.