Repolode
arabcoders

arabcoders/watchstate

Самостоятельно размещаемый сервис для синхронизации статуса просмотра между медиасерверами Plex, Jellyfin и Emby без сторонних сервисов.

Звёзды
1,609
Форки
30
Открытые issues
2
Последний коммит
6 дней назад

Что это?

WatchState поддерживает одинаковый статус просмотра пользователей (просмотрено и прогресс) на медиасерверах Plex, Jellyfin и Emby. Сервис работает на вашей инфраструктуре и не зависит от внешних сервисов синхронизации.

Синхронизация между бэкендами может быть однонаправленной или по схеме «многие ко многим». Статус просмотра также можно экспортировать в переносимый формат для резервного копирования. Для работы с пользователями используются идентификаторы: так можно сопоставить друг с другом несколько аккаунтов на каждом сервере.

Обновления поступают через вебхуки медиасерверов или из запланированных и запускаемых вручную задач импорта, которые обнаруживают изменения, пропущенные вебхуками. В проект также входит функция Media Health для поиска проблем с записями и поиск по метаданным бэкендов. Сервис поставляется в виде Docker-образа с веб-интерфейсом.

Ключевые возможности

  • 01Синхронизирует статус просмотра между Plex, Jellyfin и Emby — однонаправленно или по схеме «многие ко многим».
  • 02Получает события через вебхуки медиасерверов и обновляет прогресс почти в реальном времени.
  • 03Экспортирует статус просмотра в переносимый формат для резервного копирования.
  • 04Поддерживает нескольких пользователей с помощью идентификаторов.
  • 05Включает проверки Media Health для поиска проблем с записями.
  • 06Работает как самостоятельно размещаемый Docker-контейнер с веб-интерфейсом.

Сценарии использования

  • Синхронизировать статус просмотра, если в доме используются и Plex, и Jellyfin.
  • Перенести или сохранить резервную копию истории просмотров с медиасервера.
  • Не отправлять данные о просмотре сторонним сервисам синхронизации.

Быстрый старт

  1. 1

    Создайте compose.yaml со службой WatchState рядом с каталогом данных

  2. 2

    Запустите контейнер с помощью Docker Compose

    mkdir -p ./data && docker compose up -d
  3. 3

    Откройте http://localhost:8080 и при первом входе создайте системного пользователя

Что важно знать

  • Версии до 1.10.9 подвержены уязвимостям среды выполнения PHP. Обновитесь до версии 1.10.9 или новее и пересоздайте контейнер.
  • Чтобы существующие записи можно было сопоставлять по пути, сначала необходимо выполнить полный импорт, поскольку сопоставление по пути теперь включено по умолчанию.
  • Пользователям Podman необходимо задать для пользователя контейнера значение 0:0. При использовании Unraid или проблемах с разрешениями может потребоваться изменить ID пользователя.

В подборках

Темы

Частые вопросы

Что такое watchstate?
Самостоятельно размещаемый сервис для синхронизации статуса просмотра между медиасерверами Plex, Jellyfin и Emby без сторонних сервисов. WatchState поддерживает одинаковый статус просмотра пользователей (просмотрено и прогресс) на медиасерверах Plex, Jellyfin и Emby. Сервис работает на вашей инфраструктуре и не зависит от внешних сервисов синхронизации.
watchstate можно использовать бесплатно? Какая у него лицензия?
watchstate распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
watchstate всё ещё поддерживается?
Активно поддерживается. Последний коммит в watchstate — 2 нояб. 2026 г..
Для чего можно использовать watchstate?
Синхронизировать статус просмотра, если в доме используются и Plex, и Jellyfin. Перенести или сохранить резервную копию истории просмотров с медиасервера. Не отправлять данные о просмотре сторонним сервисам синхронизации.
Как установить watchstate?
Создайте compose.yaml со службой WatchState рядом с каталогом данных Запустите контейнер с помощью Docker Compose: mkdir -p ./data && docker compose up -d Откройте http://localhost:8080 и при первом входе создайте системного пользователя
Где скачать watchstate?
Исходный код и инструкции по установке — на GitHub: https://github.com/arabcoders/watchstate

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Самостоятельно размещаемый инструмент для синхронизации списков просмотра, оценок, истории и прогресса воспроизведения между медиасерверами, такими как Plex, Jellyfin и Emby, и трекерами, например Trakt и SIMKL.

995+15 за неделю28PythonAGPL-3.0Активно поддерживаетсяОбновлён вчера

Инструмент для обслуживания медиатеки Plex, Jellyfin и Emby: находит по правилам непросмотренный или незапрошенный контент и удаляет его по истечении льготного периода.

2,4 тыс.+14 за неделю129TypeScriptMITАктивно поддерживаетсяОбновлён вчера