Scrobbler
Configure real-time playback scrobbling from your media server to a tracker.
Configure real-time playback scrobbling from Plex, Jellyfin, or Emby.
CrossWatch sends activity to Trakt, SIMKL, or MDBList while you watch.
Use Watcher for most new setups.
CrossWatch supports two event sources:
Watcher reads playback activity from the media server.
Webhooks receive activity at a generated CrossWatch URL.
Watcher suits most installations. Webhooks remain fully supported.

What Scrobbler does
Scrobbler processes playback activity as you watch.
It can send playback start, progress, pause, stop, and completion.
Plex ratings can also sync when enabled separately.
Use synchronization for history backfills and periodic alignment.
Supported providers
Media server sources
Plex
Jellyfin
Emby
Tracker destinations
Trakt
SIMKL
MDBList
Connect both profiles under Settings → Connections before continuing.
Recommended first setup
Connect one media server profile.
Connect one tracker profile.
Open Settings → Scrobbler.
Select Add watcher.
Choose the source and destination profiles.
Leave Filters empty for the first test.
Save the route.
Enable Autostart if needed.
Start playback.
Confirm the tracker receives activity.
Add filters and routes after the first successful test.
Choose an event source
Use Watcher unless you specifically prefer server-delivered events.
See Webhook or Watcher for guidance.
Do not send identical playback activity through both sources.
It can create duplicate or competing scrobbles.
Related guides
The Scrobbler page
Open Settings → Scrobbler.
Summary
The summary shows active webhooks, enabled Watcher routes, and Watcher status.
Webhooks
Each card represents one mapping:
media server profile → tracker profile
Cards show the source, destination, endpoint status, and available actions.
Possible statuses are:
Connected — the mapping is active.
Needs setup — part of the mapping is no longer configured.
Disabled — the webhook source profile is disabled.
Watcher routes
Each card represents one route:
media server profile → tracker profile
Cards show the source, destination, route ID, filters, enabled state, and runtime state.
Identical routes are not allowed. Source and destination providers and profiles must differ.
Watcher status
This section shows running and configured routes, Autostart, active sources and destinations, and runtime errors.
Use Start, Stop, or Reload to control Watcher.
Reload restarts groups from the saved route configuration.
Defaults
Defaults only appear when relevant:
Watcher defaults require an enabled Watcher route.
Webhook defaults require an enabled webhook.
Plex ratings require an enabled Plex Watcher route.
Entry-driven configuration
Scrobbler has no global mode selector.
An enabled Watcher route activates Watcher. An enabled webhook mapping activates Webhooks.
Removing or disabling the final entry deactivates that source.
Use Save changes, a toggle, or a Scrobbler control to save. Entries do not use the old global save flow.
Using Watcher and Webhooks together
Both sources can run together when their responsibilities are separate.
For example:
Watcher: Plex profile A → Trakt profile A
Webhook: Jellyfin profile B → SIMKL profile B
Review Webhook or Watcher before enabling both.
Global defaults
Watcher defaults
Auto remove from Watchlists removes completed movies from compatible watchlists.
Each route can inherit the global value or force it on or off.
Pause debounce seconds defaults to 5. Repeated pauses inside this period are ignored.
Suppress start percent defaults to 99. Starts at or above this progress are ignored.
Webhook defaults
Pause debounce seconds defaults to 5.
Suppress start percent defaults to 99.
Mappings inherit these values unless their source profile overrides them.
Plex ratings
Playback scrobbling and Plex ratings use separate event flows.
Global ratings webhook
Use the global webhook when enabled Plex Watcher routes share rating destinations.
Select Trakt, SIMKL, MDBList, or any combination. Then copy the generated URL into Plex.
Route-specific ratings webhook
Use a route-specific webhook when one route needs different destinations.
Global and route-specific ratings are additive. Avoid the same destination in both paths.
Regenerating a ratings URL invalidates the previous URL.
Legacy webhook cleanup
Older versions created separate Plex, Jellyfin, and Emby webhook URLs.
After every server uses the new profile URL:
Test playback through the new URL.
Confirm the correct webhook card activates.
Select Remove legacy URLs.
Remove old URLs from the media server.
Cleanup is permanent. Removed legacy tokens cannot be recreated.
Related guides
Last updated
Was this helpful?