github cenodude/CrossWatch v0.3.2
Version 0.3.2

13 hours ago

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.