These docs are for MetaTana 2.0, coming soon
Sync
Sync keeps MetaTana, your playback servers (Plex, Jellyfin, Kodi, Emby), and Trakt in step. Watched state, progress, metadata, and NFO repair move in both directions, and you control each kind of change.

Sync is one page for media servers and Trakt:
- Sync now at the top syncs every enabled server, and Trakt when it is connected. Add server or service adds a Jellyfin, Plex, Emby, or Kodi server, or connects Trakt.
- Each server, and Trakt, has a card with its status and one action: Sync now, Review N differences, Reconnect, or Connect for Trakt. Review N differences counts only titles that really differ, and shows 100+ when a kind has more than 100; the rest appear after you apply the first ones. Reconnect tests the connection and, when it works, asks the server to refresh its library. The ⋯ menu on a server card has Test connection, Review differences, Refresh library, the pull and push actions that server supports, and Remove…. When the server can't see some of your folders, the card lists them with Add path mapping.
- Review differences opens a drawer listing each difference between MetaTana and the server under Watched & progress and Metadata. Choose Pull, Push, or Ignore on each row, or use Pull all, Push all, or Ignore all, then select Apply N changes. Pull uses the server's value in MetaTana; Push sends MetaTana's value to the server. A locked field can't be pulled.
- Server settings opens a drawer where you edit the name, address, and key (shown as Saved · ending and its last four characters), path mappings, which watched state and progress pull or push, Refresh library after filing and edits, the publish policy, and disc and path compatibility. When you change the address or key, Save tests the connection first. If the test fails, you can still Save anyway.
- Sync options sets Sync servers automatically (Off, Every hour, Every 6 hours, or Once a day) and Conflicts: Newer wins, MetaTana wins, or Server wins. With Trakt connected, it also shows that Trakt syncs in the background every 15 minutes.
- Recent sync lists the latest sync runs. A run that could not match some items says N not matched.
- The server address field accepts a pasted URL such as
http://192.168.1.10:32400orhttps://plex.example.com. The port moves to Port, and HTTPS and a base path are kept. - Push metadata… on a Kodi server card asks first, because it overwrites the metadata of every matched movie and episode in Kodi and can't be undone. Each push appears in Activity.
- Kodi cleans only the folders a move left. It never cleans the whole library.
- Test connection for Plex checks the token too, so a wrong token fails the test instead of every sync after it.
- Sync now on a card, Sync now at the top and automatic sync all do the same thing: pull watched state, pull progress, then push, each only when it is switched on in Server settings.
- Marking a title watched clears its resume point, so a player doesn't offer to resume a finished title.
What Sync covers
| Kind | Direction | What it syncs |
|---|---|---|
| Watched state | MetaTana ↔ server | Whether a title has been watched |
| Progress | MetaTana ↔ server | Where you stopped in a title you haven't finished |
| Metadata | MetaTana ↔ Kodi, Emby, Jellyfin | Field differences, such as the overview or genres |
| Local NFO repair | MetaTana only | Playback state in existing NFO files, from MetaTana's state |
What each choice changes
| Choice | Changes in MetaTana | Changes on the server |
|---|---|---|
| Watched or progress Pull | That title's watched state or progress | Nothing |
| Watched or progress Push | Nothing | That title's watched state or progress |
| Metadata Pull (Kodi, Emby, Jellyfin) | The accepted, unlocked fields | Nothing |
| Metadata Push (Kodi, Emby, Jellyfin) | Nothing | That title's metadata on the server |
| Use NFO | Watched state or progress, read from the existing NFO | Nothing |
| Repair NFO | The playback fields in the existing NFO | Nothing |
| Create NFO | Writes a missing NFO | Nothing |
| Ignore | A note that you reviewed it | Nothing |
Each change reads the current values first, makes the change, then reads them back. If the result can't be confirmed, the change is marked failed in Activity instead of synced.
Automatic sync
Sync servers automatically is under Sync options. Choose Off (default), Every hour, Every 6 hours, or Once a day. Each run does what Sync now does for every enabled server, starting with a watched pull from servers that have Watched pull on, and is logged in Activity. See Automatic sync.
Common workflows
Common pitfalls
Going deeper
- Media servers and watch state: what each server supports, directions, locked fields, Trakt, and the safe order
- Connect a media server and Add Trakt: step by step
- Playback client can't see files: when a sync works but the client doesn't show it