github cenodude/CrossWatch v0.3.6
Version 0.3.6

latest releases: v0.7.6, v0.7.5, v0.7.4...
2 months ago

CrossWatch – v0.3.6

Instant whitelist toggles (Jellyfin & Plex) and MDBList show-ratings are now supported.

What’s new

  • MDBList: TV show ratings sync. CrossWatch now writes show-level ratings to MDBList. Season/episode ratings still work as before.
  • Immediate feedback in Settings. Clicking a whitelist item in Plex and/or Jellyfin now updates instantly and syncs the hidden fields.

Fixes

  • MDBList ‘shows’ were skipped. Upstream API bug is fixed;
  • MDBList Rating feature is enabled again.
  • Whitelist Selections not visible for Plex/Jellyfin. Matrix repaints after each toggle; .
  • Master toggles out of sync. Recomputed after every change (also when filters are applied).

No configuration changes required.

CrossWatch – v0.3.5

Important: MDBList Ratings currently do not sync TV (shows/episodes). Movies work. Until we finish the deeper dive, disable MDBList Ratings and use Watchlist only.

What’s new

  • Analyzer: MDBList included for ID resolution.
  • Exporter: MDBList added as an output/source.

Changes

  • Added MDBList to Analyzer so IDs resolve correctly.
  • Added MDBList to Exporter.

CrossWatch – v0.3.4

Whoop,whoop.....new provider is added.

New tracker (Experimental): MDBList to sync your Watchlist and Ratings.

Early access: APIs/behavior may change; expect a few rough edges.

What’s new

  • MDBList provider
    • Watchlist sync (add/remove) and Ratings sync (1–10), one- or two-way.
    • Works alongside Trakt/SIMKL and your media servers (Plex/Jellyfin/Emby).
    • TMDb/IMDb first for writes; TVDb supported for reads/normalization.
  • UI integration
    • New Authentication → MDBList panel (Verify, Save, Disconnect).
    • Shows Connected when a valid API key is present.
    • Added MDBList badge in the features list.
  • Engine & health
    • Snapshot indexing with progress ticks, rate-limit aware requests, and health probe.

Heads-up: MDBList does not support episodes for ratings. Only movies and shows.

What is MDBList?

MDBList is a smart list builder for movies & TV. It lets you:

  • Create auto-updating lists using flexible rules (genres, years, keywords, runtime, country/network, streaming availability).
  • Blend scores from multiple sources (IMDb, TMDb, Rotten Tomatoes, Metacritic, Letterboxd, MyAnimeList) and sort by popularity/trending.
  • Sync/publish lists to Trakt, feed them to Radarr/Sonarr/Stremio.
  • ....and much more...

CrossWatch – v0.3.3

Plex → Trakt scrobbling now uses the same TMDb/Trakt-first strategy as v0.3.2 (Jellyfin webhook).
No more TVDB-only failures from Plex webhooks.

What’s new

  • TMDb/Trakt-first resolution: We now prioritize TMDb and IMDb from Plex GUIDs and only fall back to TVDB if needed.
  • Show+S/E fallback: When an episode ID can’t be resolved yet, we build the Trakt body with show ids + season/episode numbers so newly aired items still scrobble.
  • 404 rescue: If Trakt returns 404, we auto-retry by searching the episode via TMDb/IMDb/TVDB to fetch the correct Trakt ID, then replay the scrobble.
  • Broader Plex GUID parsing: We read IDs from multiple places Plex sends them (guid, grandparentGuid, parentGuid, Guid[]), improving match rates across agents.

Fixes

  • TVDB-only scrobbles from Plex failing: Resolved by translating TVDB to Trakt/TMDb before sending, with a rescue path on 404.
  • Episodes missing direct episode IDs: Covered by show+season/episode fallback so scrobble bodies remain valid.
  • Inconsistent GUID formats: Handled by expanded parsing across all Plex GUID locations.

No config changes required.

CrossWatch – v0.3.2

Jellyfin → Trakt scrobbling for new episodes is improved.
TMDb/Trakt-first ID strategy (no more TVDB-only failures).
Smarter Jellyfin payload parsing (better S/E + ID extraction).

What’s new

  • Show+S/E fallback: If an episode id isn’t resolvable yet, we build the Trakt body with the show ids + season/episode numbers (clean path for newly-aired items).
  • Rescue on 404: If Trakt returns 404, we auto-retry by searching the episode via TMDb/IMDb to fetch the right Trakt id, then replay the scrobble.
  • Broader Jellyfin field support: We now read IDs and S/E from more places Jellyfin sends them: Provider_tmdb/imdb/tvdb, SeriesProviderIds, SeriesTmdbId/SeriesImdbId/SeriesTvdbId, plus root-level season/episode.

Fixes

  • **“.Starts/pauses/stops from Jellyfin now scrobble even when TVDB lags behind.
  • 404 on /scrobble/start or /pause from Jellyfin: Resolved by using TMDb/Trakt-first resolution and the rescue path.
  • Missing S/E numbers when only on the root payload: We now read season/episode from both the item and the root, so the scrobble body is always valid.

No config changes required. Optional: set Jellyfin’s TV metadata provider to TheMovieDB for the smoothest ID mapping.

CrossWatch – v0.3.1

Watcher now supports SIMKL. SIMKL is my personal preferred tracker.
Dual-sink scrobbling: send playback to SIMKL, Trakt, or both, your call.

What’s new

  • SIMKL as a Watcher sink: Real-time scrobbling from Plex or Emby to SIMKL (movies & episodes). Pick SIMKL, Trakt, or SIMKL+Trakt in Settings → Scrobble → Watcher.
  • Runs alongside Trakt: If you choose both, CrossWatch sends the same play/pause/stop to SIMKL and Trakt in one go.
  • Simple setup: Enable Watcher, pick Plex or Emby, choose your Sink, done. Your choice is saved and used on the next run.

How to use

  1. Open Settings → Scrobble → Watcher.
  2. Toggle Enable and choose Provider (Plex or Emby).
  3. Set Sink to SIMKL, Trakt, or SIMKL+Trakt.
  4. (Optional) Turn on Autostart on boot.

Make sure your SIMKL account is connected under Authentication first.
More info: https://github.com/cenodude/CrossWatch/wiki/Watcher


CrossWatch – v0.3.0

Watchlist sync: is now consistent both ways across Plex, Trakt, and SIMKL — adds and deletes propagate cleanly in the same run.**
Big internal code cleanup: of the pairing engine to reduce “stuck” items and accidental removals.
SIMKL Sync MOD: updated to version 1.0.0

What’s new

  • True two-way flow across multiple pairs: Remove or add on any side (Plex/Trakt/SIMKL) and the change is reflected everywhere, even when you run separate pairs in one run.
  • Fresh index after writes: After we add/remove on a destination, we immediately refresh that destination so the next pair in the run “sees” the new state.
  • SIMKL snapshot smarts: Automatic full refresh when the cache looks stale; otherwise fast incremental updates. Fixes the “SIMKL still shows an old item count” issue.
  • Safer delete rules: An item is only deleted if it previously existed on that destination and was observed as removed at the source. This avoids cross-pair false deletes.
  • One-way parity: One-way sync benefits from the same safeguards (fresh-after-write visibility, safer deletes, and unresolved tracking) as two-way.

Fixes

  • Observed deletes: provider-aware. If a provider can’t report deletions, we don’t invent them. We log it and keep your lists intact.
  • Trakt confirmations edge case: Handles the “HTTP 200 but 0 confirmed” scenario more clearly and tracks unresolved state correctly.
  • No blocklists on watchlist adds: Blocklists continue to apply to History/Ratings, not Watchlists.

No config changes required. If strange things happens, reset you state in Maintenance.
The order of your PAIRS are important when using multiple two-way syncs pairs with the same Source or Destination.

Don't miss a new CrossWatch release

NewReleases is sending notifications on new releases.