Skip to content

CrossWatch

Media Servers

Sync media watch statuses across platforms

Python Latest v0.9.21 · 4d ago Security brief →

Features

  • Syncs watchlists, ratings and history across Plex, Jellyfin, Emby, Trakt, SIMKL, AniList, TMDb, MDBList and Tautulli
  • Scrobbling of playback activity from media servers to trackers (Watcher & Webhooks)
  • Analyzer tool to detect stuck or inconsistent items between providers
  • Editor for inspecting and adjusting synced items
  • Captures rollback feature for provider watchlist, ratings and history

Recent releases

View all 103 releases →
Upgrade now
v0.9.21 Mixed
Auth

Device Code auth + security hardening

No immediate action
v0.9.20 New feature

PublicMetaDB provider + hybrid scrobbling

v0.9.19 Bug fix

Icons load locally for better privacy and the exporter no longer shows a duplicate dropdown.

Full changelog

CrossWatch v0.9.19

Just a small cleanup release.
Icons now load locally for better privacy and the exporter provider selector no longer shows a duplicate dropdown.

We are getting close to the v1.0.0 production thus stable release. From that point onward, production and development releases will be handled separately, so stable users can stay on reliable builds while development changes can continue without disturbing the production version.

🔧 Fixes & Improvements

  • Improved: Material Symbols icons are now loaded locally instead of from Google Fonts, improving privacy and compatibility with restricted networks.
  • Fixed: The exporter now shows only the intended icon-based provider selector instead of rendering a duplicate dropdown.
  • Changed: Updated the version to v0.9.19
v0.9.18 New feature
Notable features
  • New Plex watcher route filter ignores Live TV & DVR playback
  • Quick Add for manually sending watched history, watchlist entries, and ratings
Full changelog

CrossWatch v0.9.18

New Quick Add for desktop and mobile, manually send history, ratings and watchlist actions to one or more providers for titles watched outside your normal media server flow.

WIKI: https://wiki.crosswatch.app/crosswatch/navigation/quick-add

✨ Highlights

  • Added: new Plex watcher route filter to ignore Live TV & DVR playback.
  • Added: Quick Add for manually sending watched history, watchlist entries, and ratings to configured providers.

🔧 Fixes & Improvements

  • Fixed: Jellyfin and Emby pair setups now correctly hide and disable Ratings where ratings sync is not supported.
  • Fixed: Dashboard startup no longer waits on slow cold /api/status provider probes before loading the main widgets.
  • Improved: /api/status now runs provider user-info lookups concurrently to reduce cold status latency.
  • Improved: /api/state/wall now caches repeated identical responses until sync state, config, or wall filters change.
  • Changed: Watchlist auto-remove now targets providers from enabled watchlist pairs instead of scanning all configured providers.
v0.9.17 Breaking risk
⚠ Upgrade required
  • For installations using Plex and/or MDBList, perform a cache clear (Clear everything or state and provider cache) after upgrading.
  • Existing Plex/Jellyfin/Emby pairs must have Strict ID Matching enabled manually to retain expected behavior.
Breaking changes
  • Strict ID matching is now the default for new Plex, Jellyfin, and Emby provider pairings; existing pairs require manual enabling of Strict ID Matching.
Full changelog

CrossWatch v0.9.17

Strict ID matching is now the default for Plex, Jellyfin, and Emby, because title fallback causes too many false positives.
Existing pairs needs to be changed manually (but only if you have issues)

If you have Plex and/or MDBList in your pairs: Maintenance -> Clear everything (or state and provider cache)

✨ Highlights

  • Refactored Sync Hub previews item/title spotlights are now delivered through the UI summary path instead of the raw sync output.
  • Updated: Providers pair settings now use Strict ID matching as the new default standard for newly configured pairs**
    • for existing pairs you need to change it in your pair - providers - Plex/Emby/Jellyfin and enable Strict ID Matching

🔧 Fixes & Improvements

  • Fixed: One-way MDBList -> Plex ratings no longer apply mirror-style removals in non-mirror mode.
  • Fixed: MDBList rating deletions are now detected more reliably when only journal activity changes.
  • Fixed: Watchlist poster view could fail to render covers because of an undefined typeLabel error
  • Fixed: Re-adding ratings after a delete no longer fails because sparse MDBList journal rows dropped needed metadata.
  • Fixed: Plex history items can now be re-added after removal because stale local watched-cache state is cleared correctly.
  • Fixed: upgrade warning reappearing after the first acknowledgement

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
606
Forks
12
Languages
Python JavaScript CSS

Install & Platforms

Install via
docker

Beta — feedback welcome: [email protected]