Об этом проекте
## Обзор проекта
etlp (embyToLocalPlayer) — это инструмент-мост для локальных плееров: при нажатии исходной кнопки воспроизведения на веб-странице Emby / Jellyfin он запускает воспроизведение в установленном на компьютере плеере, а после корректного закрытия плеера передаёт прогресс воспроизведения обратно на медиасервер. В README указана совместимость с Plex.
## Основные возможности
- Воспроизведение прямо с главной страницы: запускается нажатием исходной кнопки; для видео с несколькими версиями можно настроить приоритет версий.
- Поддержка плейлистов (непрерывное воспроизведение), следующий эпизод использует ту же версию.
- Односторонняя отметка просмотренного в bgm.tv / bangumi.tv, simkl.com, trakt.tv.
- Пользователи с локальным монтированием могут переходить к папке, соответствующей пути (кнопка отображается над путём к файлу на веб-странице).
- Неадаптированные плееры обычно тоже можно вызвать, но прогресс не передаётся обратно.
- Возможность воспроизведения или перехода к смонтированной папке прямо в qBittorrent WebUI (требуется дополнительный скрипт).
- В комплекте псевдоагрегирующий поисковый скрипт (embyEverywhere).
## Плееры с поддержкой передачи прогресса
mpv (включая mpv.net и другие плееры на ядре mpv), PotPlayer, MPC-HC, MPC-BE, VLC, IINA (macOS). В README рекомендуется при отсутствии особых требований отдавать предпочтение плеерам на базе mpv.
## Установка и запуск
1. Установите в браузере расширение Tampermonkey или Violentmonkey (или аналогичное) и включите режим разработчика, установите соответствующий скрипт и обновите страницу Emby.
2. Скачайте и распакуйте zip со страницы релизов в путь без кириллицы, три варианта:
- `etlp-mpv-py-embed-win32.zip` (Windows, встроенный mpv, без изменения конфигурации);
- `etlp-python-embed-win32.zip` (Windows, требуется указать путь к плееру и выбор в ini);
- `embyToLocalPlayer.zip` (Windows / Linux / macOS, требуется самостоятельная установка Python и изменение конфигурации).
3. В Windows дважды щёлкните `embyToLocalPlayer_debug.bat`, нажмите 1 для тестового запуска в переднем плане, 2 — для создания автозапуска в фоне при включении системы.
4. В macOS / Linux запуск через `etlp_run.command`, также приведены примеры автозапуска через элементы входа, systemd-сервис и т.п.
Минимальная версия Python — 3.8, минимальная версия Windows — 10.
## Режимы и ключевые моменты конфигурации
- Переключение через меню расширения: включение/отключение скрипта, переключатель режима чтения с диска.
- Режим чтения с диска преобразует пути сервера в локальные адреса файлов, требуется заполнить правила замены путей в ini; `dev > path_check = yes` позволяет проверять существование файла и обрабатывать NFC/NFD.
- Режим постоянного кэша зависит только от файла конфигурации и не конфликтует с настройками расширения.
- Обновление: в Windows в bat нажмите 6, в Linux/macOS выполните `python3 utils/update.py` и сравните с `embyToLocalPlayer_diff.ini`.
## Частые вопросы и ограничения
- Передача прогресса происходит только после закрытия плеера; появление в логе `serving at 127.0.0.1:58000` означает успешный запуск службы.
- Встроенные субтитры/выбор аудиодорожки в Emby не работают, внешние субтитры/дорожки работают; встроенные субтитры выбираются плеером.
- Плейлисты включены по умолчанию, отключать не рекомендуется; кнопки «воспроизвести всё»/«случайное воспроизведение»/«плейлист» на веб-странице поддерживаются только для фильмов и музыкальных видео.
- PotPlayer может столкнуться с ошибками рендеринга Pin, `KeyError: 'stream.mkv'` и т.п.; в README приведены шаги по начальной настройке, смене версии, переходу на режим чтения с диска.
- IINA требует настройки выхода после завершения воспроизведения, иначе это повлияет на передачу прогресса; в не-режиме чтения с диска плейлисты не поддерживаются.
- В Jellyfin при повторном воспроизведении того же файла в течение 10 секунд после завершения на главной странице время воспроизведения может быть ошибочным.
- Домен Plex может быть подвержен DNS-загрязнению, требуется изменить DNS или использовать прокси.
## Синхронизация истории просмотра
- bangumi.tv: требуется создать токен доступа и заполнить ini, синхронизация только односторонняя, поддерживаются только обычные серии, не поддерживаются полнометражные версии и т.п.; в README подробно описаны стратегии распознавания продолжений и сопоставления дат выхода.
- simkl: требуется создать приложение на dev-странице, Redirect uri — `http://localhost:58000/simkl_auth`, заполнить client_id/secret для автоматической авторизации.
- trakt.tv: требуется создать приложение, Redirect uri — `http://localhost:58000/trakt_auth`, заполнить user_name/client_id/client_secret для авторизации.
- Все три синхронизируются только после корректного закрытия плеера, отметка «просмотрено» через клик на веб-странице не запускает синхронизацию.
## Скрытые функции (в README отмечены как не поддерживаемые)
Включают воспроизведение iso-образов/bdmv (рекомендуется VLC, для iso передача прогресса не поддерживается), локальное перенаправление/замену адресов воспроизведения, синхронизацию прогресса для strm по LAN, передачу данных mpv в lua-скрипты, автоматический пропуск интро и титров в mpv, предварительное чтение следующего эпизода, предварительное чтение «продолжить просмотр», Telegram-уведомления о новых сериях, постоянный кэш (воспроизведение во время загрузки), поддержку плеера с дансями DanDanPlay, а также плейлисты в режиме чтения с диска Pot, ориентированные на Emby.
## Требования к обратной связи
В README подчёркивается: перед отправкой отзыва обновитесь до последней версии, протестируйте на портативной версии с mpv, проверьте как минимум два видео, предоставьте логи и шаги воспроизведения; отзывы, не соответствующие этим требованиям, игнорируются.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.