Progress
Sync resume position (“Continue Watching”) between Plex, Emby, and Jellyfin.
Progress syncs resume position.
It keeps “Continue Watching” roughly aligned across servers.
It does not mark items watched. That’s History.
Progress is experimental and best-effort.
Resume position data is not always consistent across providers.
Plex tends to be the least reliable for progress timestamps.
Start one-way and validate with a few titles.
Tracking issue: https://github.com/cenodude/CrossWatch/issues/119
Supported pairs
Progress shows up only for media server ↔ media server pairs.
Both sides must be:
Plex
Emby
Jellyfin
Controls
Progress is configured per pair.
Typical controls:
Enable
Mode: one-way or two-way
Add / Update: write resume position to the target
Remove (clear): clear resume position on the target
Supported: Emby, Jellyfin
Not supported: Plex
One-way “remove” behavior is controlled by One-Way Remove mode (Deletions based on Source) in Global settings.
If you want Progress clears to mirror source → destination, you typically want Mirror mode.
This is a global switch. It affects all pairs. Be cautious.
Guardrails you may see:
Minimum seconds: ignore tiny positions (example:
5s)Delta seconds: ignore small changes (example:
30s)Maximum percent: ignore “almost finished” (example:
80%)

Why clears can take two runs
Needing two sync runs before a progress clear/remove “sticks” is normal.
Progress clears are tombstone-driven.
That makes removals safer when a provider briefly returns an incomplete progress list.
What happens:
Run #1: CrossWatch notices the item disappeared from the progress list.
It records a tombstone (and/or updates
prev_*state).It does not immediately clear the other side.
Run #2: The tombstone is now persisted.
The planner treats the disappearance as “real”.
It performs the clear/remove on the other side (if supported).
Related deep-dive: Tombstones
Two-way conflicts
When both sides changed, CrossWatch picks a single winner:
Newest progress update wins.
If timestamps are missing, the higher resume position wins.
Guardrails (like Delta seconds) help prevent “ping-pong” updates.
Provider quirks
Jellyfin: clear is supported (sets progress to
0).Emby: clear is supported (sets progress to
0).Plex: clear is not supported.
Plex: progress updates can be delayed or missing. Expect occasional misses.
Related
Feature overview and recommended patterns: Features
Pair-level toggles and safety: Configure Pairs
Watched state syncing (separate feature): History
Last updated
Was this helpful?