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/startor/pausefrom 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
- Open Settings → Scrobble → Watcher.
- Toggle Enable and choose Provider (Plex or Emby).
- Set Sink to SIMKL, Trakt, or SIMKL+Trakt.
- (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.