The feature should enable Symfonium to automatically update read/write playlists in both directions.
For example: if I change a Jellyfin playlist on the server, Symfonium should automatically update the corresponding playlist in the app and include all changes.
On the other hand, updates that I make in the app should be pushed as soon as possible.
I personally think that syncing the playlist in the app before opening it, might solve some issues around conflicts.
Problem solved:
The main problem is the lose of playlist changes.
Iâm constantly adding songs to multiple playlists, on desktop and mobile.
If I forget to sync the app one time, I might run into the issue to either manually merge the playlists before replacing the old one, or more problematic I overwrite changes on the server/on the app.
Besides, manually syncing is not practical, especially if I have to sync 10+ playlists every time I switch to the app.
I guess a âSync Allâ option would remove some headache but does not solve the issue of losing data.
Brought benefits:
It would make the app, for me and I guess others much more convenient to use.
Especially when switching from commercial music streaming providers that also do not require to manually sync playlists across multiple devices.
Other application solutions:
Finamp and the Jellyfin apps have solved this issue.
They both incorporate any changes (seemingly) instantly and all updates are done automatically.
For my use cases this is a good solution and I personally havenât had troubles with this approach so far.
Additional description and context:
It might be worth considering to let users âpull-downâ playlists (e.g., with the thumb) when viewing them to refresh the playlist and fetch the latest version.
Screenshots / Mockup:
If possible please provide screenshots of your idea of the implementation or how other application do this.
As I explained on reddit, the app is offline first, meaning that you can edit your playlist without access to the server.
Meaning that
If I forget to sync the app one time, I might run into the issue to either manually merge the playlists before replacing the old one, or more problematic I overwrite changes on the server/on the app.
Can happen if you change the playlist on the server and on the phone while offline then connect. Both have valid data and itâs your responsibility to decide who have the proper data.
The only solution I can propose that can work with all providers is another online only playlists that will not allow edition when offline, meaning thereâs no more possible conflicts.
Can happen if you change the playlist on the server and on the phone while offline then connect. Both have valid data and itâs your responsibility to decide who have the proper data.
Iâm not sure thatâs such a big problem, I think itâs a matter of having timestamps for actions and favor actions with the highest/latest timestamp and having a automatic merge strategy.
I just tested it with Spotify.
In all cases I disconnected my phone and left my PC online. After taking the actions I put my phone online again and did nothing.
Adding:
On the phone: Add Song X to Playlist Y.
On the PC: Add Song Z to Playlist Y. Result: Both songs are in Playlist Y.
Adding/Removing:
On the phone: Add Song X to Playlist Y.
On the PC: Remove Song Z to Playlist Y. Result: X is in Y and Z is removed.
Iâm not sure which other scenarios could potentially lead to a conflict - I probably forget something right now.
Spotify is a special case they have a lot more data than the API of most of the providers I support.
Some donât even have a last modified, and none have the list of changes so I need to do differential checks to find the actual changes and see if they are compatible with the locally made changes or not. And I canât know what change was made when.
Thereâs song position to take in account when removing / adding / sorting.
I also just played around with Finamp and its offline mode.
Finamp in Offline Mode simply disables any changes of the playlist and it seems I cannot remove tracks from the playlist even in Online Mode - there is simply no âRemoveâ button.
I see that Symfonium is an offline-first app but, as you suggested, a new playlist type that is immutable when offline would be highly appreciated!
Would it be an option to only sync playlists to Symfonium? I use Navidrome now with smart playlists. The manual import works great, but I would like to sync these just like the music tracks.
If you import the playlist as read only it should auto sync.
I donât remember what @deluan said about the changed value of those playlists.
If it does not change then Symfonium consider the playlist not changed and skip it.
With that said you can replicate the smart playlists inside Symfonium and it would remove the need for sync.
Hi, thanks for your work, I have purchased the app. But I think your playlist design logic is very abnormal and strangeđ¨. When I used symfonium for the first time, I was thinking about why the playlist sync logic is so complicated and cumbersomeđ¨.
Now I understand that you are making a different offline-first app, But I think a lot of peopleâs usage is online-first, as evidenced by the existence of plexamp and finamp.
I hope symfonium has a mode selection, whether it is offline-first or online-first, I donât know how to develop it, but I guess you could add a switch. The function of this switch is: automatically download content from the cloud when clicking to enter the playlist; automatically upload to the cloud after adding a song to the playlistđ
Well Symfonium is multi provider offline first, so no sorry, it makes perfect sense actually
And thatâs actually why a lot of people do prefer this app because of this different approach that covers more needs and is wayyyyy more performant. All that at the expense of requiring a click to sync and choose who is the authority for the data at the moment. (Mostly due to lack of necessary API from the providers)
Even an online first app with multi provider support would not be able to auto sync a playlist that have content from 2 different providers
Now to cover the need of lazy people that want to avoid a click, I need to find a way that still allows all the features currently supported without making the whole concept even more complicated than it is.
Online only first means that the playlist feature will be slower by a large margin, because it will require to get the playlist content on access each time and match the content, and then users will complain that itâs slower now (And slower to add items to playlist, and slower to reorder) And then they will complain because they canât edit the playlist when they are offline.
People always complains, but I prefer people complaining because they need a click than people complaining because something is slow or does not always work.
But again I know users know best and everything, but for 99% of users the time gained for all the actions vastly (I mean vastly vastly) compensate for the few required clicks. And a large will revert from any option I might add for this mode because itâs not worth it.
And yet you expect me to make it even more complicated
Thank you for your reply, in fact, plexamp and finmap perfectly meet my needs, but their ui and playback experience are very poor, that is to say, your symfonium is currently the only modern and daily-usable music app on Android.(as a private app supporting plex/jellyfin/subsonic)
I realize my needs are different from your app development philosophy, but, as said above, symfonium is the only option, I have no other choice
So can you please add a switch that supports switching to online first mode? I have paidđĽş
but their ui and playback experience are very poor
symfonium is the only option, I have no other choice
Thereâs something wrong with those 3 assertions
is currently the only modern and daily-usable music app on Android
Yes because of the made choices as explained. (And of course the only one that covers both plex and jellyfin)
Anyway the feature is labelled as todo, but no itâs very far from just a switch as explained in many different way in this thread.
And you still have not explained what use case you have that makes the required click impossible to do versus everything related to playlists way slower.
The reason why I need synchronization logic like plexamp and finamp is: I have multiple devices >>> I canât remember which deviceâ˛playlist has changed on >>> So I need to âdownload from cloudâ every time I use playlist to confirm that the playlist is not sync error
The reason for all this is because I have multiple devices and may change the playlist on any one of them, and I use it online like plexamp and finamp.
So symfoniumâs current synchronization logic creates more trouble for me.
I understand that you are creating a different offline-first app. But, as I said before, symfonium is currently the only self-hosted music app available that has a good experience. So, I canât switch to other online-first apps, so I hope you can add this feature, and I glad to hear that you are willing to add this feature to the to do list, thank you.
This is exactly my use-case. I am using jellyfin as my media provider on multiple devices. I also think manually clicking sync is very intuitive but I understand your reasoning. Just a suggestion: Is there any way to provide bi-directional sync for provider that support this in their API. (last modified date etc.)?
For example; if I want to use bi-directional feature in a playlist, I must only add songs from one provider.
The problem is not the sync, itâs the conflict resolution due to offline changes. Thereâs currently no provider offering a solution that would be able to solve most of the simple cases.
So automatic always sync with non read only playlist is not possible when offline, so requires a new dedicated mode to allow that.
I understand that this limitation is actually a design choice which enable the app to be offline-first. I just hope you find a way to remedy this. BTW, thank you for this awesome app. It is by far the best music client for selfhosted Apps.
Kia ora!
I am new to this forum. I have recently started using Symfonium and it has quickly become my favourite music consumption app. Well done, keep up the good work.
I would like to add my vote to the âautomatic playlist syncâ feature request.
I am using Ampache as the sole provider, and stream the music through several clients (e.g. Symfonium, browser on PC1, browser on PC2, Amperfy app on iPad etc), and I often add tracks to different playlists on any client.
In Symfonium, whenever i want to add a track to a playlist, I have to manually sync that specific playlist first to make sure I have the latest version of it in Symfonium. This is cumbersome. It looks like i have to do this for every single playlist. I have tried if re-importing all playlists from Ampache (press âImportâ, select my Ampache media provider, then select âImport allâ) automatically syncs/re-imports all of them, but found that it did not, new tracks were missing on playlists and only appeared after manually syncing that specific playlist.
A âsync all playlistsâ button, or preferably a way of automatically keeping playlists in sync would be very much appreciated.
I read your posts above and understand that it is somewhat incompatible with your philosophy of Symfonium. But the feature has my vote, nonetheless.