[Feature Request] Server to Server Sync

I did a search and so far haven’t seen this one.

I have a friend who lives in Africa and she doesn’t have enough BW to stream from my server but her boy friend set up a Plex server on an old laptop and they can afford Plex Pass. Could we enable shared libraries to be synced from server to server?

There would have to be some sort of sanity to the sync, maybe a throttle mechanic or/and a time period where it can go crazy and use all the BW and then throttle back down when people would be awake. Also you would have to specify the most important items or even single shows so they would be synced first always/only, even if something else is being synced and a new item is added to the priority item category. i.e. a new episode is added on the primary server or a new item is added to the priority list on the secondary server. (This could use your current filter setup quite nicely, like only syncing the On Deck to the secondary server.)

FTP is just messy because it is manual and requires just as much storage on the secondary server, this could be an elegant solution to families that live apart and one person is just more active at gathering content but the others have their own server, perhaps for content another person doesn’t want. Could also help in BW starved situations.

While the idea of Plex Server Syncing is interesting, I think overall, you would likely just be better off using FTP. I know you think FTP needs to be done in some sort of manual fashion, but you are actually mistaken.

Have a look into WinSCP, they have a fairly robust scripting system and some really good documentation on creating them. Heck there’s even a GUI that allows you to build out scripts, if you are uncomfortable writing them from scratch.
I actually use this for an off-site backup solution for my server. Im splitting a Business BOX account with 3 friends ($15 each) for unlimited data. This would work with your friends machine as well, with no need for cloud storage. If you have more bandwidth, Id suggest you act as the FTP server, and them as the client.

Here is an example of the script I use. This is a push synchronize script, they would basically use something similar but with a pull script from your server. They then use task scheduler to automate this process, say every night at 3am. OR, they could act as the Server, and you create a push script that monitors your media folders for changes and automatically syncs to their FTP server. The downside to monitoring is that its a bit more CPU intensive. Nothing crazy, but it with take up some cycles.

        # Automatically abort script on errors
        option batch abort
         
        # Disable overwrite confirmations that conflict with the previous
        option confirm off
         
        # Force binary mode transfer
        option transfer binary
         
        open ftp://username:password@FTP.Address.com/
         
        # Syncronize HDTV Shows, while deleting obsolete files from server.
         
        synchronize remote -delete "E:\HD-Tv Shows" /BillFlix_Server_Backup/TV/HD-Tv-Shows
        
        # Syncronize SDTV Shows, while deleting obsolete files from server.
         
        synchronize remote -delete "D:\TV\Tv Shows" /BillFlix_Server_Backup/TV/Tv-Shows
        
        # Syncronize Movies, while deleting obsolete files from server.
         
        synchronize remote -delete E:\Movies /BillFlix_Server_Backup/Movies
        
        echo Job is complete.
         
        exit

That’s a neat solution that costs more resources than I am willing to spend (time and money) and opens my home server up on another port. If Plex says that it isn’t possible then someone else will eventually come along and see the need for server to server sync and build it, seems like it would even be easy if they used a similar method to what you recommend but end users won’t have to delve into the arcane.

I want to be able to eventually have a cloud plex server synced to my home plex server and then I can choose whichever is available if I am away from home or with whomever I share the server. On the same account, it should also sync watched status etc.

Surely this can’t be hard to implement? The functionality already exists in the iOS client whereby data is synced locally and when you are away from home that synced data is played by a light-weight Plex Media Server on the device itself (which is how you can control an iOS client from another client).

  1. Implement headless/outputless client
  2. Have this headless client integrated with PMS
  3. Client syncs content from remote PMS (managed via Web Client) and metadata to local PMS instance
  4. Clients of local PMS play direct

I see the use case for this (in my case) to be for periodically connected clients that you want to make a subset of content available on, over and above what you could easily sync to the device itself.

I’m thinking of a PMS instance on a NUC that supplies content to mobile devices in the car to keep the kids happy in my case which may or not be what the OP meant…

Syncing of an entire library/section between servers may be better handled with a dedicated sync tool like FTP/rsync/btsync.

Still want to sync offline to cloud.

Any progress on this? @plex devs could you please give us some hints about such a feature? What’s about a plug-in?

This sync mechanism would be even cooler if we also could sync flex cloud with a local PMS. Local PMS would be synced with Plex Cloud (onedrive provider, for instance).

I’ve been waiting/hoping for this for some time now, albeit silently. Fingers remain firmly crossed here, guys.

This is actually more common a use case than people want to admit. For example my setup is this:

Plex locally on QNAP.
QNAP sync’s all media data to Unlimited GDrive
Plex Cloud is connected to GDrive
I also have Plex running in a VPS using PLexDrive connecting to the same GDrive data

What I want is a metadata/watched sync capability between all the servers. If someone watches on the Plex Cloud the other servers should show that as watched to them on the other two. Also instead of downloading all the Meta data that should also be sync’d between them all to minimize server migrations/moves

It’s got to be possible/

1 Like

Would be interested in this. Being able to download content from another server to a local server would be useful. I’m not sure it even needs to be a fully bidirectional sync, but more as a local cache.

I don’t need the content to be duplicated on multiple devices. I need the two servers to present identical appearances. I need customizations made on one to be replicated on the other; like album art changes, or collections of movies. On demand, because I want to decide the direction of the sync.

It may be a little harder to do between Linux and Windows versions, I don’t know. The media content is the same for both. The idea is to have redundancy in case one or the other goes down. I want my family to have reliable access from outside the home network. It is the sole purpose of adding a second server.