# luigi311/JellyPlex-Watched

Sync watched status between jellyfin, plex and emby locally

Repository: https://github.com/luigi311/JellyPlex-Watched
Canonical: https://ross.abutalabs.com/products/jellyplex-watched
Language: Python
License: GPL-3.0
License Family: copyleft
Last push: 2026-06-04T16:41:54+00:00

## Health v2 (maintenance only)
Score: 84/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 85, release rhythm 74, longevity 100
- inputs: {"age_days": 1565, "days_push": 90, "days_rel": 97, "gap_med": 38.5, "n_releases_24m": 17}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1036, forks 41 (observed 2026-08-28T04:03:19.315824+00:00)

## What it is
A self-hosted Python application that synchronizes watched status and watch history between Jellyfin, Plex, and Emby media servers. It matches content via filenames and provider IDs, supports multiple servers and user mapping, and runs via Docker or directly with uv.

## Use cases
- sync watched status between plex and jellyfin
- keep emby and jellyfin watch history in sync
- migrate watched history from plex to jellyfin
- sync in-progress playback position across media servers
- sync watched status for multiple users between media servers
- run scheduled watched sync between self-hosted media servers

## When to choose
- you run two or more of Plex, Jellyfin, or Emby and want watched states consistent
- you want a local, self-hosted sync without relying on cloud services
- you need per-user watched sync with username mapping

## When to avoid
- you only use a single media server
- you need to sync view dates on Plex (not yet supported)
- your libraries have inconsistent filenames and lack provider IDs, since matching may fail

## Facets
- artifact type: application
- maturity: active
- function: workflow-automation, developer-tools
- domain: media, self-hosted
- platform: self-hosted, python, cross-platform
- tags: jellyfin, plex, emby, watched-status-sync, media-servers, home-server, automation, docker

## Member repositories
- luigi311/JellyPlex-Watched (main) score 84

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:19.315824+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:04:41.572523+00:00, confidence not recorded.
  - readme: https://github.com/luigi311/JellyPlex-Watched (fetched 2026-08-28T04:03:19.315824+00:00, sha c8db387f2515)
- Data as of 2026-08-30T08:39:29.467469+00:00.
