Shuttle2 icon indicating copy to clipboard operation
Shuttle2 copied to clipboard

Sync with iTunes/Apple Music, and support for playlists and ratings

Open daladim opened this issue 2 years ago • 0 comments

Hello, thanks for S2 which is very neat!

To make a long story short: I'd like to sync my Android phone with iTunes (or the newer Apple Music), including its playlists and star ratings. I'm ready to do it myself, but in this case I'd like to have your support (I'm new to Android development). Would you be interested?

Here's the long story: I'm a long-time iTunes user, on both Mac and Windows. As such, I have spent ages building a music library, with its playlists and "star ratings".

For a long time, I have been using the Android Rocket Player app (with its companion iSyncr desktop app), which worked amazingly well. Rocket Player was an excellent music player, and iSyncr was able to copy iTunes playlists (and ratings) to Android, and even to push back to iTunes the changes that were made from Rocket Player!

Rocket Player has recently been sold to another studio that has wrecked it, and I went looking for other players that had this iTunes compatibility. Spoiler alert: there are none :disappointed: I currently have no way to sync my library on my Android phone, which really disappoints me. So, I guess I have to do it myself :sweat_smile:

I'm not able to write a whole player myself, so I've tried a few open source players, and S2 is by far the best I have found! So, I'd be happy to include this feature in S2. Ideally, instead of forking it, I'd like to upstream these changes in your official repo. Which means that you'd have to agree first. That's why I'm writing here, to have your opinion on this!

I may have some spare time in the upcoming months, so I ~~think~~ hope I'll be able to dedicate some time to do so. I'm an experienced desktop developer, but not so on Android, so I'd probably need your help for the mobile part.

In case you're OK, here are the pieces I think should be done to achieve this: On Android:

  • add the support for ratings in S2 (add the 5 star thing in the GUI, and some code to keep track of them in a DB somewhere)
  • make sure playlists from iTunes are supported "natively" with S2
  • be able to modify playlists on the device (and maybe store the changes/history somewhere, this might be necessary to sync them back to iTunes)

On a desktop app:

  • Communicate with the phone (both via USB or by plain files in case the phone SD card is mounted on the PC) to push music and playlist files
  • Communicate with the phone to store the star ratings somewhere (in the Android Media Store? In a separate sqlite DB?)
  • Communicate with iTunes/Apple Music to retrieve playlists, file paths, ratings, and modify them in case a newer version is on the phone.

I'm confident I'll manage all this desktop part (all the more as I already have snippets that demonstrate these abilities). That would still require some work designing how S2 and this desktop app would communicate. That would also require some research on the Android part. I have no idea whether we could use the Android Media Store for this, or if these features would be restricted to the S2 Store (I have no idea what the limits of the AMS API are).

In case you're interested (maybe you'll be as excited with this project as I am), I'd be happy to discuss all this with you, either on GitHub or in real life!

I'm looking forward to have your thoughts on this :smile:

daladim avatar Jan 19 '23 17:01 daladim