Repolode
arabcoders

arabcoders/watchstate

외부 서비스 없이 Plex, Jellyfin, Emby 미디어 서버 간 시청 상태와 재생 위치를 동기화하는 셀프 호스팅 서비스입니다.

스타
1,610
포크
30
열린 이슈
2
마지막 커밋
6일 전

어떤 프로젝트인가요?

WatchState는 Plex, Jellyfin, Emby 미디어 서버 간에 사용자별 재생 상태(시청 여부와 진행 위치)를 일관되게 유지합니다. 자체 인프라에서 실행되며 외부 동기화 서비스에 의존하지 않습니다.

백엔드 간 동기화는 단방향 또는 다대다 방식으로 실행할 수 있습니다. 재생 상태를 이식 가능한 형식으로 내보내 백업할 수도 있습니다. 사용자는 identity를 기준으로 관리하므로 각 서버의 여러 계정을 서로 연결할 수 있습니다.

미디어 서버의 webhook으로 업데이트를 받거나, webhook이 놓친 항목을 처리하도록 예약 및 수동 가져오기 작업을 실행할 수 있습니다. 프로젝트에는 레코드 문제를 찾는 Media Health 기능과 백엔드 메타데이터 검색 기능도 포함되어 있습니다. 웹 UI가 포함된 Docker 이미지로 제공됩니다.

핵심 기능

  • 01Plex, Jellyfin, Emby 간 재생 상태를 단방향 또는 다대다 방식으로 동기화합니다.
  • 02미디어 서버의 webhook 이벤트를 받아 거의 실시간으로 진행 위치를 업데이트합니다.
  • 03재생 상태를 이식 가능한 백업 형식으로 내보냅니다.
  • 04identity를 통해 여러 사용자를 지원합니다.
  • 05레코드 문제를 찾는 Media Health 검사를 포함합니다.
  • 06웹 UI가 포함된 셀프 호스팅 Docker 컨테이너로 실행됩니다.

활용 사례

  • 가정에서 Plex와 Jellyfin을 함께 사용할 때 시청 여부를 동기화합니다.
  • 미디어 서버의 시청 기록을 마이그레이션하거나 백업합니다.
  • 시청 데이터를 외부 동기화 서비스에 보내지 않습니다.

빠른 시작

  1. 1

    데이터 디렉터리 옆에 WatchState 서비스가 포함된 compose.yaml을 만듭니다

  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의 마지막 커밋은 2026년 11월 2일입니다.
watchstate은(는) 어디에 사용할 수 있나요?
가정에서 Plex와 Jellyfin을 함께 사용할 때 시청 여부를 동기화합니다. 미디어 서버의 시청 기록을 마이그레이션하거나 백업합니다. 시청 데이터를 외부 동기화 서비스에 보내지 않습니다.
watchstate는 어떻게 설치하나요?
데이터 디렉터리 옆에 WatchState 서비스가 포함된 compose.yaml을 만듭니다 Docker Compose로 컨테이너를 시작합니다: mkdir -p ./data && docker compose up -d http://localhost:8080을 열고 처음 접속할 때 시스템 사용자를 만듭니다
watchstate은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/arabcoders/watchstate

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트

Plex, Jellyfin, Emby 같은 미디어 서버와 Trakt, SIMKL 같은 트래커 간에 시청 목록, 평점, 시청 기록, 재생 진행 상황을 동기화하는 셀프 호스팅 도구입니다.

995+14 이번 주28PythonAGPL-3.0활발히 관리됨업데이트 2시간 전