Этот репозиторий содержит код приложения, которое обеспечивает интеграцию между Anime 365 и вашим сервером Emby. Приложение называется сайдкаром (sidecar), потому что оно предназначено для работы рядом с сервером Emby. Сайдкар отслеживает ваш список тайтлов на Anime 365 и загружает в Emby серии для просмотра. После просмотра серия на Anime 365 автоматически отмечается как просмотренная. Со временем просмотренные серии удаляются с вашего сервера Emby.
Обратите внимание: для работы сайдкара необходим аккаунт Anime 365 с активной премиум-подпиской.
Note
Сайдкар находится в процессе активной разработки. Это значит, что на данный момент реализованы не все задуманные возможности. Например, пока что просмотренные серии не удаляются с диска. Некоторые вещи могут работать нестабильно. Поведение приложения может меняться от релиза к релизу, а также допускаются изменения без обратной совместимости с прошлыми версиями (например, иногда может потребоваться изменение переменных окружения или повторная загрузка сериалов). На самом деле сейчас он работает очень стабильно и между версиями ничего не ломается, но может быть всякое!
Есть два неудобства, которые полностью решаются с помощью сайдкара:
- У Anime 365 есть проблемы с онлайн-стримингом видео: он работает нестабильно. Смотреть что-либо через браузер или даже сторонние приложения тяжело из-за постоянных зависаний плеера.
- К медиатеке Anime 365 нет удобного доступа на телевизорах, особенно на тех, где отсутствует встроенный браузер. Даже при наличии браузера пользовательский опыт остаётся неудобным. Изначально проблему просмотра на телевизоре пытались решить с помощью приложения Ichime, но оно по-прежнему оставалось уязвимым к проблемам с зависанием видео при онлайн-просмотре.
Для решения этих проблем было решено создать приложение, которое скачивает серии из Anime 365 на диск для офлайн-просмотра. Для удобной каталогизации сериалов был выбран Emby, который сканирует файлы на диске и создаёт из них библиотеку. Смотреть сериалы можно как через сам Emby, так и через сторонние Emby-совместимые плееры.
Преимущества:
- Открывается более простой и удобный доступ к просмотру медиатеки Anime 365 на телевизорах и других платформах. Не нужно устанавливать сомнительные приложения или разбираться, как установить очередное приложение на своё устройство: Emby — это популярный домашний медиасервер, а совместимые с ним плееры доступны практически на всех платформах.
- Полностью исчезает проблема зависаний видео, так как стриминг происходит внутри домашней сети, где скорость ограничивается не интернет-провайдером или серверами Anime 365, а исключительно возможностями вашего роутера. Скорость локальной сети может достигать нескольких гигабит в секунду.
- Это выручает в случаях, когда дома по какой-либо причине пропадает доступ в интернет.
- Благодаря тому, что всё работает внутри домашней сети, в поездку можно скачать серии на телефон, планшет или ноутбук за считаные секунды.
- При желании можно настроить доступ к вашему серверу Emby из внешней сети и смотреть сериалы даже за пределами дома.
- Просмотренные через Emby серии автоматически отмечаются просмотренными и на Anime 365 — не нужно вручную синхронизировать свой список.
- Дополнительный бонус: сайдкар загружает больше метаданных о сериалах, чем отображается на Anime 365. Например, в Emby будут доступны названия серий, их описания, рейтинги, возрастные ограничения, информация о создателях и другие детали.
Если у вас есть домашний ПК на Windows, установить Emby и сайдкар можно прямо на него. Если же у вас есть старый ноутбук или вы готовы приобрести мини-ПК за 10–20 тысяч рублей, оптимальным решением будет установить на него Ubuntu Server, настроить Docker, запустить Emby и сайдкар, а затем оставить устройство работать круглосуточно.
Если у вас Windows, сначала установите Emby Server.
Предварительная настройка Emby. Создайте директорию, в которой будут храниться загруженные медиафайлы. К этой директории одновременно должны иметь доступ и сайдкар, и Emby. Назовите её, например, anime365. В настройках сервера Emby создайте новую медиатеку с типом «ТВ-шоу». Назовите её «Anime 365». Выберите созданную ранее директорию. Затем откройте настройки медиатеки и отключите все флажки и переключатели, кроме «Включить отслеживание в реальном времени» и «Эпизод отборщики рисунков» (флажок Image Capture).
Теперь необходимо установить и настроить сайдкар. Скачайте актуальную версию из вложений последнего релиза на странице Releases. Также скачайте Servy — программу, которая позволит запускать сайдкар как службу Windows (Windows Service), работающую в фоновом режиме и автоматически запускающуюся вместе с системой.
В Servy Manager создайте новый сервис. В поле Service Name укажите Sidecar, а в поле Process Path выберите загруженный исполняемый файл сайдкара. Перейдите на вкладку Advanced и в поле Environment Variables добавьте переменные окружения, как описано на странице «Переменные окружения» (обратите внимание: одна переменная — одна строка, а имя переменной отделяется от значения знаком = без пробелов). Остальные поля можно оставить со значениями по умолчанию.
После этого нажмите кнопку Install, чтобы установить сервис, а затем кнопку Start, чтобы запустить его.
Если что-то не работает, проверьте логи сайдкара. Их можно посмотреть двумя способами:
- В Servy Manager откройте вкладку Console — там отображаются логи в реальном времени.
- Можно настроить сохранение логов на диск. Для этого на вкладке Logging заполните поля Stdout File Path и Stderr File Path. В указанные файлы будут записываться логи, которые можно открыть любым текстовым редактором.
Рекомендуемый вариант. Emby и сайдкар можно запустить с помощью одной конфигурации Docker Compose.
Пример конфигурации Docker Compose, в которой запускаются Emby и сайдкар с использованием общего волюма:
services:
emby:
image: emby/embyserver:latest
container_name: emby
restart: unless-stopped
pull_policy: weekly
volumes:
- ./emby/config:/config
- ./emby/media/anime365:/mnt/anime365
ports:
- "8096:8096"
- "8920:8920"
environment:
UID: "1000"
GID: "1000"
GIDLIST: "1000"
healthcheck:
test: ["CMD", "wget", "--quiet", "--output-file", "/dev/null", "http://localhost:8096/System/Ping"]
interval: 30s
timeout: 10s
retries: 3
sidecar:
image: ghcr.io/flaksp/anime365-sidecar:latest
container_name: sidecar
restart: unless-stopped
pull_policy: weekly
volumes:
- ./emby/media/anime365:/mnt/anime365
user: "1000:1000"
environment:
SIDECAR_ANIME365_BASE_URL: https://smotret-anime.app
SIDECAR_ANIME365_LOGIN: [email protected]
SIDECAR_ANIME365_PASSWORD: qwerty
SIDECAR_EMBY_API_KEY: d505e9041faf4447935aedd336224b05
SIDECAR_EMBY_BASE_URL: http://emby:8096/emby
SIDECAR_EMBY_LIBRARY_ID: 3
SIDECAR_EMBY_USER_ID: 9283b8ae8bee4ccba61174e310ff0ab1
SIDECAR_LIBRARY_DIRECTORY: /mnt/anime365
depends_on:
emby:
condition: service_healthyСначала запустите только Emby и выполните его настройку.
Предварительная настройка Emby. Создайте директорию, в которой будут храниться загруженные медиафайлы. К этой директории одновременно должны иметь доступ и сайдкар, и Emby. Назовите её, например, anime365. В настройках сервера Emby создайте новую медиатеку с типом «ТВ-шоу». Назовите её «Anime 365». Выберите созданную ранее директорию. Затем откройте настройки медиатеки и отключите все флажки и переключатели, кроме «Включить отслеживание в реальном времени» и «Эпизод отборщики рисунков» (флажок Image Capture).
После этого можно запускать сайдкар. Какие переменные нужно указать и как это сделать правильно описано на странице «Переменные окружения».
В конфигурации Docker Compose для сервиса sidecar вместо тега latest можно использовать конкретную версию образа. Актуальные версии доступны в разделе Packages.
Также существует тег beta — такой образ собирается после каждого пуша в ветку main. Однако использовать его не рекомендуется, так как он менее стабилен.
На странице Releases для каждого релиза доступны исполняемые файлы под различные операционные системы. Вы можете запускать их любым удобным способом.
Сайдкар настраивается через переменные окружения. Подробнее описано на странице «Переменные окружения».
Без необходимости не изменяйте и не удаляйте загруженные файлы вручную. Сайдкар полагается на имена файлов и их расположение в директориях.
Сайдкар поддерживает работу только с одним аккаунтом Anime 365. При необходимости можно запустить несколько экземпляров сайдкара с разными аккаунтами. В этом случае не используйте одни и те же директории для хранения медиафайлов, иначе экземпляры будут конфликтовать друг с другом. Для каждого экземпляра следует использовать отдельную директорию.
Сайдкар — это приложение на Go, которое параллельно выполняет несколько задач:
- Отслеживает ваш список тайтлов на Anime 365.
- Загружает на диск ещё не скачанные серии из тайтлов, присутствующих в вашем списке.
- Обновляет метаданные загруженных тайтлов и серий на сервере Emby.
Каждая из этих задач выполняется в отдельной горутине.
Чтобы не создавать излишнюю нагрузку на Anime 365, Shikimori и Jikan (MyAnimeList), задачи обновления метаданных и загрузки серий выполняются последовательно. В каждый момент времени скачивается только одна серия (хотя сама загрузка может использовать несколько потоков), обновляются метаданные только одного тайтла и т. д.
Это работает медленнее, чем могло бы, однако снижает нагрузку на внешние сервисы и уменьшает вероятность блокировки по IP-адресу или возникновения ошибок, связанных с ограничением частоты запросов.
Первичная загрузка всей библиотеки может занять продолжительное время в зависимости от размера ваших списков и настроек сайдкара.
Теоретически поддержка возможна, но в ближайших планах её нет.
В Jellyfin существуют проблемы с реализацией группировки разных версий одного эпизода. Такая группировка необходима для объединения нескольких переводов одного эпизода в одну серию.