WatchState can be used as a backup solution to preserve and restore user playstate across your media servers. This guide explains how to set up WatchState for backing up user playstate, specifically using single backend mode, which is designed for this purpose.
- Simplified setup: No user mapping required. Each user from your backend gets their own identity configuration.
- Dedicated purpose: Focus purely on preserving playstate without syncing to multiple servers.
- Individual user backups: Back up each user's data independently, allowing selective restoration if needed.
- Ideal for disaster recovery: Restore individual user data without affecting others on your system.
- Perfect for single server setups: If you only use one media server, this mode is for you.
When you enable single backend mode:
- Each user from your media server (except the main identity) gets their own identity configuration.
- WatchState imports and stores their playstate data locally.
- If your server fails, you can restore the backed-up playstate to a new server instance.
First, go to Backends and click on the Add Backend button. Follow the interactive setup guide. Configure your media server backend (Plex, Jellyfin, or Emby) with the following settings:
Enable Import: YesEnable export: NoCreate backup for this backend data: Yes: NoForce one time import from this backend: Yes: No
Note
If using Plex, ensure your token is admin-level. Verify it at Diagnostics > Plex Token. For Jellyfin or Emby, use an API key from your server settings.
After your backend is configured:
- Navigate to Configuration > Identities > Match & Provision.
- You should see an "Allow single backend identities" switch.
- Check this option to enable single backend mode.
- Disable the option
Generate remote backups. - All users from that backend (except the main identity) will be created as individual identities.
Note
Single backend mode still respects PIN settings for protected Plex users. You can set PINs by clicking the lock icon next to each user.
After adding the users, go to the Tasks page and queue the Import task. This imports
the existing play state into WatchState.
The task will take some time depending on your library size. Monitor progress at the Logs page by
checking the task.YYYYMMDD.log file. Once the task completed you should see something like
[DD/MM HH:MM:SS]: SYSTEM: Import process completed in 'XXX's for all users.
Once WatchState has imported your playstate, make sure to keep both import task and backup task enabled. by visiting
the Tasks page and toggling the switches next to Import and Backup.
WatchState creates automatic backups if you enabled the backup task. To access and use these backups go
to Operations > Backups.
For additional safety, regularly back up watchstate /config/ directory, which contains all the necessary data to
restore your playstate.
If your server fails or data is lost, you have two options for restoring the playstate.
- Go to Operations > Backups.
- Select the desired backup from the list.
- From the dropdown list select which users you want to restore the backup to.
- Click the Go button.
- From the header select identities icon.
- Select the desired identity you want to restore.
- Click on the Reload button to switch to that identity context.
- Go to the Backends page.
- Under your backend in the
Quick operationslist, select3. Force export local playstate to this backend. - Execute the command to push all restored playstate to your server.
- Repeat for each identity you want to restore.
If you have multiple media servers and want to synchronize playstate between them, refer to the Two-Way Sync guide instead. Single backend backup mode is specifically for preserving playstate from a single server.