How to Modify the 'Date Added' Metadata in your Plex Media Server Libraries

Published on 5/2/2020 by Justin Williamson


The other day I decided to restructure my photo and home video libraries. I switched from flat directories to a nested directory approach (YEAR/MONTH). This allows me to trigger partial library scans for performance reasons.

So, I went about my merry way adding over one hundred or so directories to my Plex photo library and walked away to let the server do it's thing. The next morning I noticed something - my media was no longer in the correct order. My home page 'Recently Added' section was all over the map. Looks like dumping all of the directories at once wasn't a great idea...but I really didn't want to do it again.

After a little research, I discovered that I could just edit the Plex sqlite file (com.plexapp.plugins.library.db). So, here's what I did:

1) Stop the Plex server

You don't want anything writing to this file while we're modifying it. My server's on Ubuntu 18.04, so I ran this:

sudo systemctl stop plexmediaserver

2) Make a copy of the DB file

Don't mess around here, just copy the file somewhere.

sudo cp "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db" /tmp/com.plexapp.plugins.library.db.bak

3) Export DB file to your local machine

I'm not feeling very confident running these commands in a terminal. I want to see and inspect the data before I put the file back, so I'm editing this in a GUI.

# Run this from your local machine (assuming you have ssh access to your plex server)
rsync --protect-args -P "plex:/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db" D:\Desktop\plex.db

4) Edit the SQLite file in editor of your choosing

I quickly found and downloaded DB Browser for SQLite . Why? It showed up first in Google and it looked OK. It's fine, but I removed it afterwards.

I loaded the db file in my soon-to-be-deleted editor and poked around a bit.

select * from metadata_items

I decided I wanted to change the added_at field to match the originally_available_at field. This field seems to match the creation date as far as I can tell.

    added_at = originally_available_at
    originally_available_at is not null
    and library_section_id = 4 -- my photo library id

After inspecting the results, this looked pretty good so I ran the same command for my home video library and wrote the changes to the DB file.

5) Put the SQLite file back

First I had to rsync it to the /tmp directory so I could enter the server and move it with the correct privileges.

# From my local machine
rsync --protect-args -P D:\Desktop\plex.db "plex:/tmp/com.plexapp.plugins.library.db"
# On the Plex server
sudo -u plex mv /tmp/com.plexapp.plugins.library.db "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db"

# Just making sure the permissions are set (they probably already are)
sudo chmod 644 "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db"

# Restart the Plex service
sudo systemctl start plexmediaserver

That's it. It actually worked. I didn't even have to re-scan the libraries.

You might also enjoy...

Server-side Excel export with jQuery DataTables, express and ExcelJS

Bootstrap 4 Tab Persistence

Fabric.js 2.0 breakWords Implementation