Move over from Plex

Bring your libraries, everyone's watch history, resume points, ratings, playlists, collections, and custom posters across, without touching your Plex install or your files.

On this page

The importer reads a copy of Plex’s own database and rebuilds your setup here. It is a wizard in the server settings, not a script, and it makes two promises worth stating up front:

  • It never moves, copies, renames, or writes to a single media file. Your storage does not double and your files stay exactly where they are.
  • It never writes to your Plex installation. It reads a snapshot. Plex keeps working, so you can run both side by side for a fortnight and re-import at the end to pick up whatever you watched in the meantime.

Re-importing is safe and expected. Watch positions merge by whichever is newer, so a second run never rewinds you.

What comes across

  • Libraries, built from the folders Plex was pointed at
  • Watch state and resume points, for every person on the server, not just you
  • Play history, dated from Plex’s own records rather than today
  • Ratings
  • Playlists, per person, in order
  • Collections
  • Custom posters you uploaded yourself

What does not

Stated plainly rather than discovered later:

  • Rewatch counts. Plex tracks how many times you watched a thing. We do not have anywhere to put that, so it is dropped.
  • Smart playlists and smart collections. Plex’s database stores the filter, not the membership, so we cannot recreate them faithfully. They are listed in the report as skipped, and you can rebuild them as smart collections, which are better anyway.
  • Field-level edits you locked in Plex, and intro or credits markers. Both are second-pass work. Markers regenerate here on their own.
  • Custom posters, if you upload a database rather than point at a local install. Posters are files in Plex’s folder tree, not rows in the database, so an uploaded database has no way to carry them. The report says so.

Finding the database

Settings → Libraries → Import from Plex, or the fork step in first-time setup.

Three ways in, in the order you should try them:

  1. Automatic. If Plex is or was installed on this machine, the importer finds its data folder itself, including the case where it was installed somewhere non-standard.

  2. Pick the folder. Browse to Plex’s data directory. It is:

    PlatformPath
    Windows%LOCALAPPDATA%\Plex Media Server\
    macOS~/Library/Application Support/Plex Media Server/
    Linux/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/
    Docker or NASInside the config volume
  3. Upload the file. For a Plex server on a different machine, copy the database file over and upload it in the browser. The file is Plug-in Support/Databases/com.plexapp.plugins.library.db.

Whichever route you take, the importer prefers Plex’s own dated backup over the live file. Plex writes one every three days and keeps three, in the same folder, named com.plexapp.plugins.library.db-YYYY-MM-DD. Reading a backup means a running Plex cannot change the file underneath the import.

The importer never contacts plex.tv and never asks for your Plex password.

Matching up your folders

Next you get one row per Plex library, with the folder Plex used and a box for the folder we should use. If Multipass is on the same machine as Plex was, the paths are usually already right.

They differ when the two servers see the same storage by different names. That is the normal case for a NAS, or for a Docker container where Plex saw /data/movies and Multipass sees /media/films. Fix the prefix once per library and the whole library follows.

As you type, the importer checks the disk and shows you how many of the files it can actually find, live:

Films      D:\Plex\Movies  →  D:\Media\Films      412 of 418 found

Do not carry on with a row reading “0 of 418”. That means the path is wrong, and importing it produces an empty library. It also warns you when one library’s folder contains another’s, which is a real and confusing Plex layout.

Re-importing onto libraries you already made will offer to merge into the matching one rather than making a duplicate.

Matching up the people

The step no tool that talks to Plex’s web API can do, because the database is the only place that has everyone’s data in one file.

You get a list of every account that ever watched something on that server, with how many watch records each one has:

kelly@example.com          2,914 items      →  [ Kelly ▾ ]
sam                          631 items      →  [ Create new profile ▾ ]
guest                          4 items      →  [ Skip ▾ ]

For each one: create a new profile, merge into a profile that already exists, or skip. Merging is what you want when you already made profiles for the household during setup. Skipping is for the account someone used twice in 2019.

Get this right the first time and everybody’s Keep Watching row is populated on day one, which is the difference between a migration that sticks and one that gets abandoned.

The report

At the end you get a written summary: what was imported, what was skipped and why, and any files that could not be matched to anything on disk. Unmatched items are listed by name so you can go and look.

From there you can carry on setting up, or go straight to your library.

While you are still deciding

Nothing about this is a one-way door. A reasonable plan:

  1. Import now. Point the libraries at the same storage Plex uses.
  2. Leave Plex installed and running. It is unaffected.
  3. Use Multipass for a couple of weeks.
  4. Re-run the import at the end to sweep up anything you watched on Plex in the meantime.
  5. Uninstall Plex when you stop opening it.

Something here wrong or missing? Tell us at support@kammcs.com and we will fix it.