> 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/crosswatch/settings/scrobbler/destination-library.md).

# Destination Library

Control which destination libraries each scrobble route can update.

When a media server is a scrobble destination, CrossWatch can limit its writable libraries.

This applies to Watcher and Webhook routes targeting Plex, Jellyfin, Emby, or Kodi.

{% hint style="info" %}
This whitelist controls where CrossWatch writes scrobbles. It does not control playback-event sources.
{% endhint %}

### Why use destination libraries

A server can hold the same title in multiple libraries:

* Movies and 4K Movies
* Kids Movies
* Anime or language-specific libraries

Media-ID matching can find several valid copies. Destination libraries ensure each route updates only intended copies.

Use this when different routes target different libraries. It also protects shared-server libraries from route updates.

### Configure a Watcher route

Open **Settings → Scrobbler → Watcher → Route → Libraries**.

Load available libraries. Then select libraries that CrossWatch may update. The route considers only media in those libraries.

### Configure a Webhook route

Webhook routes use the same destination-library logic.

For Plex, Jellyfin, Emby, or Kodi destinations, choose libraries on the route. A Webhook route and Watcher route can use different scopes for one connection.

### Route and connection scopes

CrossWatch has two destination-library scopes:

* The connection **History and Progress** whitelist defines the usual scope.
* A route-level whitelist controls writes for that specific Watcher or Webhook route.

The route whitelist takes priority when it contains selected libraries.

| Route libraries                             | Result                                                                  |
| ------------------------------------------- | ----------------------------------------------------------------------- |
| One or more libraries selected              | CrossWatch updates only those libraries.                                |
| No libraries selected                       | CrossWatch falls back to the connection History and Progress whitelist. |
| No route or applicable connection whitelist | CrossWatch uses the normal connection scope.                            |

{% hint style="warning" %}
An empty route whitelist still respects the destination connection settings. The route inherits the applicable connection library scope.
{% endhint %}

### Example

Your Plex connection uses **Movies** and **Movies 4K** for History and Progress. A Watcher route selects only **Movies 4K**.

That route can update **Movies 4K** only. It cannot update **Movies** or **Kids**.

Clear the route selection to restore the connection scope. The route can then use **Movies** and **Movies 4K**.

### Update all copies

Media-server destinations provide **Update all copies**.

When enabled, CrossWatch updates every matching copy in the allowed destination libraries. When disabled, it updates the first valid match.

{% hint style="info" %}
Library whitelisting applies first. **Update all copies** never expands the route's allowed libraries.
{% endhint %}

### Source scrobble whitelist

The connection **Scrobble** whitelist controls incoming playback events from Plex, Jellyfin, and Emby. It determines which source libraries can generate scrobbles.

Destination Library Whitelisting controls outgoing media-server updates.

* **Connection Scrobble whitelist:** incoming playback scope
* **Watcher or Webhook destination whitelist:** outgoing update scope
* **Connection History and Progress whitelist:** fallback destination scope for routes without selected libraries


---

# 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/crosswatch/settings/scrobbler/destination-library.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.
