spotify2tidal / spotify_to_tidal

A command line tool for importing your Spotify playlists into Tidal
GNU Affero General Public License v3.0
241 stars 44 forks source link

Add new items without deleting tidal playlist #1

Open c0rrre opened 2 years ago

c0rrre commented 2 years ago

Hi,

first of all its an awesome project.

Could you please add an parameter for appending the tidal playlist? It would be awesome if I could add more music to the tidal playlist without them getting removed by the script.

Thanks mate :)

timrae commented 2 years ago

Hi, thanks for your message. I'm not sure when I'll get around to it but I've also been thinking about ways to potentially address this problem.

I'd like to maintain the ability to reorder and remove songs on the Spotify side and have those changes synced to tidal, but without losing songs that were added on the tidal side without ever being on the Spotify side. This is not exactly a trivial problem but I'm pretty sure it's possible.

vkolotov commented 2 years ago

Yeah great project! Yep, a new argument would be great, e.g. "add_new_tracks". So you could control if you want to replace completely playlists (current behaviour) or just append new tracks.

timrae commented 1 month ago

I've partially implemented this in #43. Now new tracks will get appended to the playlist when there are no other changes to the playlist other than appending of new tracks. However old tracks will still get erased if there are any other changes in the playlist (for example if any tracks were reordered, or if a track that was previously not available on Tidal was subsequently found). I'd be happy to take a PR if someone wants to implement a more advanced algorithm for preserving old playlist tracks

timrae commented 1 month ago

I'm going to leave this issue open as there are some further improvements that could be made to this feature. Probably this is not something I'll work on in the near future, but if someone wants to submit a PR then please feel free. However I would strongly suggest seeking feedback early (e.g. by opening a WIP PR with a prototype) before investing a lot of time into a given approach.