Import iTunes/Apple Music into Plex
On the 4th July 2020 I finally managed to migrate my Apple Music/iTunes library from macOS to Plex. It took me an absolute age to figure out, with many a false start. I'm hoping that these steps will help anyone else. Of course YMMV as every set up is different.
Most of this was based upon posts at https://forums.plex.tv/t/how-to-sync-itunes-playlists-to-plex-on-a-mac/511231 and https://www.npmjs.com/package/plex-itunes-import/v/0.1.1. In the interests of speeding up testing I initially only copied a single file. This way I was able to quickly try changes without having to wait for my entire 5000+ item library to import.
Prepare your XML file:
Apple Music can generate an XML file from your library. This XML file will contain references to all of your media, along with important metadata such as play count and ratings.
In my case my XML file was called iTunes Library.xml
, and all of my media was in /Users/alistair/Music/iTunes/iTunes Media/Music
.
My Plex server is running on a Synology NAS, with a media path of /volume1/Media/Music/
for the music files.
You need to update file references in the XML file to point to the new location. Perform a search and replace in the XML file to change the Location
element from file:///Users/alistair/Music/iTunes/iTunes%20Media/Music/_NSYNC/Celebrity/01%20Pop.m4a
to file://localhost/volume1/Media/Music/_NSYNC/Celebrity/01%20Pop.m4a
.
It seems that the localhost string in the new location is important - at least for Plex. I found this out from https://forums.plex.tv/t/importing-playlists-from-itunes/146877/36
Copy your music across:
Copy your existing media to the new location. It's important to retain the same folder structure so that files referenced in the XML file can be found. In my case I created a Music
folder in my Plex media share and copied everything from ~/Music/iTunes Media/Music
from macOS.
Plex set up:
Plex is able to able to populate its own internal library based off of the contents of your iTunes XML file. The only way I managed to achieve this was to:
- Copy the newly modified
iTunes Library.xml
file to the root of my new Music folder - In Plex go to Settings -> Plugins and tick "Enable iTunes plugin".
- Restart the Plex service/server
At this point Plex will now import your iTunes library into a local database. I was able to spot this from the Console logs in Plex. Note that if Plex can't find a media file then it will skip importing the ratings and play count.
Music Library Creation:
At this point Plex has now imported the metadata from the XML file, and saved it to the local database. The next step is to actually create the Music Library.
- Add the music library in Plex. This should show up with your media. Select a song and from there add it to a playlist. This should cause a new Playlists item to appear in the left sidebar.
- From the Playlists item in the side click the 3 dots and select
Import from iTunes
The dialog notes that:
Importing from iTunes will import your music playlists. It will also import your ratings, the date you added the music, as well as play and skip counts for tracks in your library. Depending on how many tracks you have, this process can take many minutes to complete.
Once done that should leave you with a Plex music library containing your iTunes/Apple Music Playlists, Ratings and Skip Counts.