Найти в Дзене
Умный дом Home Assistant 2025

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

Многие владельцы домашних медиасерверов Plex начинают с семейного круга пользователей, но со временем «семья» превращается в друзей, затем в друзей друзей, а затем — в кого-то, с кем работает двоюродный брат. В таких случаях возникает вопрос: кто именно пользуется сервером и не передаются ли учётные данные посторонним. Существующие инструменты показывают историю активности, но не сообщают, когда происходит нечто подозрительное. Именно поэтому был создан Tracearr. Разработка началась в декабре, и вскоре выяснилось, что у многих администраторов медиасерверов есть те же проблемы. Tracearr — это аналитический инструмент для медиасерверов. Он отображает полную историю просмотров, статистику воспроизведения, активные сессии — все привычные функции. Каждая трансляция фиксируется с геолокацией по IP: город, регион, страна, а также информация об устройстве.
Система обнаружения совместного использования учётных записей работает по пяти типам правил: Уровень доверия пользователей автоматически сн
Оглавление

Многие владельцы домашних медиасерверов Plex начинают с семейного круга пользователей, но со временем «семья» превращается в друзей, затем в друзей друзей, а затем — в кого-то, с кем работает двоюродный брат. В таких случаях возникает вопрос: кто именно пользуется сервером и не передаются ли учётные данные посторонним.

Существующие инструменты показывают историю активности, но не сообщают, когда происходит нечто подозрительное. Именно поэтому был создан Tracearr. Разработка началась в декабре, и вскоре выяснилось, что у многих администраторов медиасерверов есть те же проблемы.

Что делает Tracearr

Tracearr — это аналитический инструмент для медиасерверов. Он отображает полную историю просмотров, статистику воспроизведения, активные сессии — все привычные функции. Каждая трансляция фиксируется с геолокацией по IP: город, регион, страна, а также информация об устройстве.
Система обнаружения совместного использования учётных записей работает по пяти типам правил:

  • Невозможное путешествие (Impossible Travel) — если пользователь заходит из Нью-Йорка, а через 30 минут из Лондона. Используется формула гаверсинуса для вычисления расстояния. Если «скорость перемещения» превышает 1000 км/ч, включается тревога. При этом VPN-прыжки моментально становятся заметны.
  • Одновременные локации — одна учётная запись ведёт трансляции из двух городов одновременно. В таком случае поступает мгновенное уведомление.
  • Скорость смены устройств (Device velocity) — слишком много уникальных IP-адресов за короткий период. Обычно это говорит о совместном использовании данных для входа.
  • Параллельные трансляции (Concurrent streams) — позволяет задавать лимиты на количество одновременных потоков для каждого пользователя. Простое, но эффективное средство выявления нарушений.
  • Географические ограничения (Geo restrictions) — возможность блокировать доступ из целых стран.

Уровень доверия пользователей автоматически снижается при нарушении правил: «невозможное путешествие» снижает рейтинг сильнее, чем превышение лимита потоков. Оповещения можно получать в Discord, ntfy или через собственные webhook-и.

Также доступна интерактивная карта потоков, на которой отображаются текущие и исторические места воспроизведения. Это не только полезно, но и просто интересно наблюдать.

Тепловая карта
Тепловая карта

Поддержка нескольких серверов позволяет объединить Plex, Jellyfin и Emby в одной панели управления. Можно завершать потоки прямо из интерфейса. Если уже используется Tautulli или Jellystat, можно импортировать историю просмотров, чтобы не начинать с нуля. Реализация импорта заняла много времени, но теперь она работает стабильно.

Что показал собственный сервер

После запуска Tracearr стали заметны некоторые закономерности:

  • Один «член семьи» выходил в сеть из Бостона и Детройта в один день.
  • Одна учётная запись использовалась как минимум тремя людьми из двух разных стран.
  • Нечто вроде «путешественника», сменившего 15 уникальных IP-адресов за месяц.

Эти данные уже были в Tautulli, но ни один инструмент не анализировал поведение для выявления шаблонов. Именно поэтому возникла идея поделиться разработкой. Ведь, вероятно, не только одному администратору приходилось смотреть в логи и задаваться вопросом, кто же это стримит из Кучека, Казахстан.

Страница истории просмотров
Страница истории просмотров

Tautulli и Jellystat предоставляют историю просмотров, статистику и мониторинг сессий. Tracearr добавляет к этому механизм обнаружения совместного использования. Инструменты можно использовать одновременно — они не конфликтуют между собой.

ФункцияTautulliJellystatTracearrИстория просмотровДаДаДаВыявление совместного использованияНетНетДаОповещения о невозможных перемещенияхНетНетДаОценка доверияНетНетДаПоддержка PlexДаНетДаПоддержка JellyfinНетДаДаПоддержка EmbyНетДаДаМультисерверная поддержкаНетНетДа

Другие инструменты начинают тормозить при загрузке больших объёмов данных. Кроме того, для нескольких серверов требуется несколько экземпляров приложения.

В Tracearr используется TimescaleDB, поскольку журнал сессий — это типичный временной ряд. Благодаря непрерывным агрегатам статистика на панели формируется заранее, а не при каждом запросе, что обеспечивает быструю работу даже при многолетней истории.

Plex-серверы передают обновления сессий через SSE (Server-Sent Events), что обеспечивает мгновенное обнаружение событий. Jellyfin и Emby пока используют опрос (polling), так как не поддерживают SSE, но механизм также работает надёжно.

Как начать работу

Существует образ «всё-в-одном», в котором объединены TimescaleDB и Redis в одном контейнере:

Default

services:

tracearr:

image: ghcr.io/connorgallopo/tracearr:supervised

container_name: tracearr

restart: unless-stopped

ports:

- "3000:3000"

volumes:

- tracearr-data:/data

volumes:

tracearr-data:

При желании можно использовать собственные инстансы базы данных и Redis — для этого предусмотрены стандартные образы.

В разработке

Автоматическое завершение потоков по правилам пока недоступно — пока это можно делать вручную через интерфейс. Планируется добавить уведомления по Email и Telegram; уже работают Discord и вебхуки.
Существует мобильное приложение, но пока оно находится в бета-версии.

Проект полностью автономный: без облачных сервисов, без телеметрии, без исходящих соединений.

Заключение

Tracearr начался как личный проект для решения собственных проблем, но вскоре выяснилось, что он востребован у многих. Сообщество Discord активно тестирует инструмент и помогает развивать его — половина функций появилась именно благодаря пользователям.
Репозиторий на GitHub доступен для всех. Если инструмент оказался полезным — добавьте звезду. Активное сообщество Discord поможет при возникновении вопросов или просто для общения.

Если сервер работает на Jellyfin или Emby, разработчик просит сообщить о результатах тестирования. Plex уже испытан достаточно серьёзно, но другие платформы нуждаются в проверке в реальных условиях. Предложения по новым правилам обнаружения также приветствуются.

Источник на английском языке

Читайте про умный дом:
🌐
Сайт
📱
Телеграм
📰
Дзен