Repolode
arabcoders

arabcoders/watchstate

Serviço auto-hospedado que sincroniza o estado de reprodução entre servidores de mídia Plex, Jellyfin e Emby sem serviços de terceiros.

Estrelas
1,609
Forks
30
Issues abertas
2
Último commit
há 5 dias

O que é?

O WatchState mantém o estado de reprodução dos usuários (se foi assistido e o progresso) sincronizado entre servidores de mídia Plex, Jellyfin e Emby. Ele roda na sua própria infraestrutura e não depende de serviços externos de sincronização.

A sincronização pode ser unidirecional ou many-to-many entre os backends. O estado de reprodução também pode ser exportado em um formato portátil para backup. Os usuários são gerenciados por meio de identidades, permitindo vincular várias contas de cada servidor.

As atualizações chegam por webhooks enviados pelos servidores de mídia ou por tarefas de importação agendadas e sob demanda, que capturam tudo o que os webhooks não detectarem. O projeto também inclui o recurso Media Health, que identifica problemas nos registros, e uma busca nos metadados dos backends. Ele é distribuído como uma imagem Docker com uma interface web.

Recursos principais

  • 01Sincroniza o estado de reprodução entre Plex, Jellyfin e Emby, de forma unidirecional ou many-to-many.
  • 02Recebe eventos de webhook dos servidores de mídia para atualizar o progresso quase em tempo real.
  • 03Exporta o estado de reprodução em um formato portátil para backup.
  • 04Oferece suporte a vários usuários por meio de identidades.
  • 05Inclui verificações do Media Health para identificar problemas nos registros.
  • 06Roda como um contêiner Docker auto-hospedado com uma interface web.

Casos de uso

  • Manter o status de conteúdo assistido sincronizado quando uma casa usa Plex e Jellyfin.
  • Migrar ou fazer backup do histórico de reprodução de um servidor de mídia.
  • Evitar enviar dados de visualização para serviços de sincronização de terceiros.

Início rápido

  1. 1

    Crie um compose.yaml com o serviço WatchState ao lado de um diretório de dados

  2. 2

    Inicie o contêiner com Docker Compose

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

    Acesse http://localhost:8080 e crie um usuário do sistema no primeiro acesso

Antes de usar

  • Versões anteriores à 1.10.9 são afetadas por vulnerabilidades no runtime do PHP. Portanto, atualize para a versão 1.10.9 ou posterior e recrie o contêiner.
  • Para que os registros existentes possam corresponder por caminho, é necessário fazer uma importação completa antes, pois a correspondência por caminho agora vem ativada por padrão.
  • Usuários do Podman devem definir o usuário do contêiner como 0:0. No Unraid ou em caso de problemas de permissão, talvez seja necessário ajustar o ID do usuário.

Em coleções

Tópicos

Perguntas frequentes

O que é watchstate?
Serviço auto-hospedado que sincroniza o estado de reprodução entre servidores de mídia Plex, Jellyfin e Emby sem serviços de terceiros. O WatchState mantém o estado de reprodução dos usuários (se foi assistido e o progresso) sincronizado entre servidores de mídia Plex, Jellyfin e Emby. Ele roda na sua própria infraestrutura e não depende de serviços externos de sincronização.
watchstate é gratuito? Qual é a licença?
watchstate é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
watchstate ainda é mantido?
Manutenção ativa. O último commit de watchstate foi em 2 de nov. de 2026.
Para que posso usar watchstate?
Manter o status de conteúdo assistido sincronizado quando uma casa usa Plex e Jellyfin. Migrar ou fazer backup do histórico de reprodução de um servidor de mídia. Evitar enviar dados de visualização para serviços de sincronização de terceiros.
Como instalar watchstate?
Crie um compose.yaml com o serviço WatchState ao lado de um diretório de dados Inicie o contêiner com Docker Compose: mkdir -p ./data && docker compose up -d Acesse http://localhost:8080 e crie um usuário do sistema no primeiro acesso
Onde consigo watchstate?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/arabcoders/watchstate

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados