Closed PuppyLover101 closed 1 year ago
Hi! Yes this a feature I have been considering implementing. It should be pretty easy to implement with the current code as a CLI command (since Maloja has its own import workflow) and I have also been considering how I could implement it in-situ for user convenience.
However there are also legal issues with this feature to consider:
I believe in its current form multi-scrobbler complies with all of these restrictions because they are all contingent on this statement at the end of most of them
[unless] strictly necessary to offer and operate your [application]
Because multi-scrobbler is only scrobbling -- only registering newly listened to tracks -- its not using any other content than what it was designed for and definitely doesn't allow any other kind of misuse (indexing/caching/scraping) because of this limited behavior.
So, I'm not against adding scraping for sources but I want to make sure I approach it in a responsible manner so that I don't have angry users asking why their accounts have been banned as well having spotify sending me cease-and-desist letters for what is supposed to be a fun project.
Thank you for the reply! For your Spotify point, IANAL but as per your comments, this is only a scrobbler and does none of the database generating / indexing itself. Seems like we are in the clear.. but you never know.
Looking forward to the enhancement, if time and your ToS tolerance abides.
For the implementation side, I would assume Spotify returns the time of play? In order to not have mismatches, I reckon we could just have it save TimeOfPlay of each track in order to not have duplicates -- but this may need a complete overhaul..
Thank you!
Yes spotify returns a timestamp of when the track was played.
multi-scrobbler already does a pre-scrobble check on the client (Maloja, last.fm) to see if the track has already been scrobbled at that timestamp.
Implementation-wise I just need to code out letting the user determine a time range to scrape, paging source results, and maybe a stateful counter to keep track of progress in case of interruption/resume.
Not sure when this was added but there is an official way to export all of your data from Spotify and import it into Maloja.
As of right now I'm throwing this in the "out of scope" bin for multi-scrobbler. It's still dubious as to whether this violates the Spotify TOS and it's a technical feat that doesn't really fit into the design of MS as it stands IE needing a way to track/resume incremental progress with a DB/persistent file, rate limiting, overwrite/duplicate behavior, etc...
If someone would like to take this feature on I'd be willing to discuss it and re-open this.
This is related to Spotify in particular; not sure if other platforms support it.
I see that you are able to see a history of previous trackers. I was wondering if there was a way to scrobble all previous history (that's possible, including API delays if possible) and then push to Maloja, for example