> For the complete documentation index, see [llms.txt](https://wiki.crosswatch.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.crosswatch.app/getting-started/support-matrix/scrobbling.md).

# Scrobbling

This section covers real-time scrobbling support.

It shows route compatibility, Watcher and webhook behavior, and the progress thresholds that affect scrobble events.

{% hint style="success" %}
Use Watcher when possible. It supports Plex, Jellyfin, and Emby to Trakt, SIMKL, and MDBList.
{% endhint %}

### Quick links

<table data-view="cards"><thead><tr><th>Title</th><th data-card-target data-type="content-ref">Open</th></tr></thead><tbody><tr><td>Choose between Watcher and webhooks</td><td><a href="/spaces/3rh5THg1PdhVsBt3GALo/pages/1Dx9OZYvOJ6utvcFoU2A">/spaces/3rh5THg1PdhVsBt3GALo/pages/1Dx9OZYvOJ6utvcFoU2A</a></td></tr><tr><td>Set up Watcher routes</td><td><a href="/spaces/3rh5THg1PdhVsBt3GALo/pages/J9gNWTn8GfZMQxOd5AW2">/spaces/3rh5THg1PdhVsBt3GALo/pages/J9gNWTn8GfZMQxOd5AW2</a></td></tr><tr><td>Set up webhook mappings</td><td><a href="/spaces/3rh5THg1PdhVsBt3GALo/pages/BxJJk2jkTcCo8ZkED8lI">/spaces/3rh5THg1PdhVsBt3GALo/pages/BxJJk2jkTcCo8ZkED8lI</a></td></tr><tr><td>Filter by user, server, or library</td><td><a href="/spaces/3rh5THg1PdhVsBt3GALo/pages/PH2jfcZjseHr6sFkoKAP">/spaces/3rh5THg1PdhVsBt3GALo/pages/PH2jfcZjseHr6sFkoKAP</a></td></tr></tbody></table>

### Route support

#### Watcher routes

| Playback source |                                                Trakt |                                                SIMKL |                                              MDBList |
| --------------- | ---------------------------------------------------: | ---------------------------------------------------: | ---------------------------------------------------: |
| Plex            | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> |
| Jellyfin        | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> |
| Emby            | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> |

#### Webhook routes

| Playback source |                                                Trakt |                                              SIMKL |                                            MDBList |
| --------------- | ---------------------------------------------------: | -------------------------------------------------: | -------------------------------------------------: |
| Plex            | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-xmark" style="color:red;">:xmark:</i> | <i class="fa-xmark" style="color:red;">:xmark:</i> |
| Jellyfin        | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-xmark" style="color:red;">:xmark:</i> | <i class="fa-xmark" style="color:red;">:xmark:</i> |
| Emby            | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-xmark" style="color:red;">:xmark:</i> | <i class="fa-xmark" style="color:red;">:xmark:</i> |

### Scrobbling capabilities

#### Core behavior

| Capability                                 |                                              Watcher |                                              Webhook | Notes                                                           |
| ------------------------------------------ | ---------------------------------------------------: | ---------------------------------------------------: | --------------------------------------------------------------- |
| Independent enablement                     | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> | Watcher and webhook can be enabled independently                |
| Automatic start on app boot                | <i class="fa-check" style="color:green;">:check:</i> |                                                  N/A | Available for the watcher source                                |
| Route-based configuration                  | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> | Routes connect a media source profile to a tracker sink profile |
| Start, pause, and stop progress handling   | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> | Sink thresholds control pause versus completed stop             |
| Pause debounce                             | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> | Suppresses very short pause events                              |
| Near-completion start suppression          | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> | Suppresses credit or near-end start flapping                    |
| Automatic watchlist removal after watching | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> | Configurable for movie, show, and episode types                 |

#### Filtering and routing

| Capability              |                                              Watcher |                                              Webhook | Notes                                          |
| ----------------------- | ---------------------------------------------------: | ---------------------------------------------------: | ---------------------------------------------- |
| Username allowlist      | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> | Plex account or user filtering                 |
| Server UUID allowlist   | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> | Empty means unrestricted unless blocked        |
| Server UUID blocklist   | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> | Always ignored when matched                    |
| Media library allowlist | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> | Available per Plex, Jellyfin, and Emby profile |

#### Plex-specific behavior

| Capability                         |                                              Watcher |                                              Webhook | Notes                                                     |
| ---------------------------------- | ---------------------------------------------------: | ---------------------------------------------------: | --------------------------------------------------------- |
| Autoplay suppression               |   <i class="fa-xmark" style="color:red;">:xmark:</i> | <i class="fa-check" style="color:green;">:check:</i> | Webhook-only protection for short autoplay transitions    |
| Live session progress probing      |   <i class="fa-xmark" style="color:red;">:xmark:</i> | <i class="fa-check" style="color:green;">:check:</i> | Webhook-only session probing to improve progress accuracy |
| Plex rating forwarding to Trakt    | <i class="fa-check" style="color:green;">:check:</i> | <i class="fa-check" style="color:green;">:check:</i> | Optional                                                  |
| Plex rating forwarding to SIMKL    | <i class="fa-check" style="color:green;">:check:</i> |   <i class="fa-xmark" style="color:red;">:xmark:</i> | Optional watcher behavior                                 |
| Plex rating forwarding to MDBList  | <i class="fa-check" style="color:green;">:check:</i> |   <i class="fa-xmark" style="color:red;">:xmark:</i> | Optional watcher behavior                                 |
| Plex Pass requirement for webhooks |   <i class="fa-xmark" style="color:red;">:xmark:</i> | <i class="fa-check" style="color:green;">:check:</i> | Required by Plex to send webhook events                   |

#### Emby-specific behavior

| Capability                             |                                            Watcher |                                              Webhook | Notes                                   |
| -------------------------------------- | -------------------------------------------------: | ---------------------------------------------------: | --------------------------------------- |
| Emby Premiere requirement for webhooks | <i class="fa-xmark" style="color:red;">:xmark:</i> | <i class="fa-check" style="color:green;">:check:</i> | Required by Emby to send webhook events |

### Scrobble progress rules

{% hint style="info" %}
The default thresholds reduce noisy updates and prevent early stops from marking items watched.
{% endhint %}

| Rule                                   |    Default | Purpose                                               |
| -------------------------------------- | ---------: | ----------------------------------------------------- |
| Progress reporting step (Watcher only) | 25 percent | Reduces unnecessary sink updates from watcher polling |
| Stop becomes pause below               | 80 percent | Prevents an early stop from marking content watched   |
| Forced completed stop at               | 95 percent | Treats near completion as watched                     |
| Allowed progress regression            |  5 percent | Tolerates small backward progress changes             |
| Pause debounce                         |  5 seconds | Ignores micro-pauses                                  |
| Near-end start suppression             | 99 percent | Suppresses credit-related start flapping              |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://wiki.crosswatch.app/getting-started/support-matrix/scrobbling.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
