Skip to content
Pascal van den Berg edited this page Dec 31, 2025 · 37 revisions

CrossWatch is a synchronization engine that keeps your Plex, Jellyfin, Emby, Simkl, Trakt and MDBlist in sync. It runs locally with a web UI to link accounts, configure sync pairs, run them manually or on schedule, and track stats/history.

Features

Core features

  • Sync watchlists (one-/two-way)
  • Live scrobble (Plex/Jellyfin/Emby → Trakt)
  • Sync ratings (one-/two-way)
  • Sync watch history (one-/two-way)
  • Keep snapshots with CW tracker
  • Auto-remove from watchlist after finish

Tools & modes

  • Analyzer: finds broken or missing matches/IDs
  • Exporter: CSV files for popular services
  • Editor: Edit and adjust your items
  • Now Playing card, Stats, history, live logs
  • Headless scheduled runs

Trackers
CrossWatch  SIMKL  Trakt  MDBList

Media servers
Plex  Jellyfin  Emby

Others
Tautulli

Limitations

CrossWatch is lightweight: no database, JSON files only. That keeps it simple but caps scale.

  • Not for very large libraries. JSON state and provider rate limits become the bottleneck.
  • Soft size guidance (varies by hardware; SSD + 2 GB RAM recommended for):
    • Watchlist: stable up to ~2,500 items total across providers.
    • History (plays): stable up to ~10,000 play events total.
    • Ratings: stable up to ~10,000 ratings total.
  • Above these ranges you may see slower planning, large state files, and long first-run times.
  • Heavy backfills (full history/ratings) can take hours. Prefer incremental windows when possible.
  • Ratings can take a long time; i don’t cache ratings (by design).
  • Only for Movies and Shows currently there is no Anime support.

Known Issues

  • Some UI sections don’t auto-refresh reliably. When in doubt, Ctrl+F5 for a clean reload.
  • Stale UI data after long runs: Ctrl+F5 again.
  • Statistics may not always display the exact numbers yet.

Next steps

Clone this wiki locally