このプロジェクトについて
## プロジェクト概要
etlp(embyToLocalPlayer)はローカルプレイヤーブリッジツールです。Emby / Jellyfin のWebページで元の再生ボタンをクリックすると、本機にインストールされたプレイヤーを呼び出して再生し、プレイヤーが正常終了した後に再生進捗をメディアサーバーへ返送します。README には Plex にも対応していると記載されています。
## 主な機能
- ホームページからそのまま再生可能。元の再生ボタンをクリックして起動。複数バージョンの動画はバージョン優先度を設定可能。
- プレイリスト(連続再生)に対応。次のエピソードは同じバージョンを維持。
- bgm.tv / bangumi.tv、simkl.com、trakt.tv への片方向視聴済みマークに対応。
- ローカルマウントユーザーはパスに対応するフォルダへジャンプ可能(ボタンはWebページのファイルパス上部に表示)。
- 未対応のプレイヤーでも一般的に呼び出し可能ですが、進捗は返送されません。
- qBittorrent WebUI から直接再生、またはマウントフォルダへジャンプ可能(専用スクリプトが必要)。
- 疑似集約検索スクリプト(embyEverywhere)を同梱。
## 進捗返送に対応するプレイヤー
mpv(mpv.net およびその他の mpv コアプレイヤーを含む)、PotPlayer、MPC-HC、MPC-BE、VLC、IINA(macOS)。README では特別な要望がなければ mpv 系を優先することを推奨しています。
## インストールと実行方法
1. ブラウザに Tampermonkey や Violentmonkey などのユーザースクリプト拡張をインストールして開発者モードを有効にし、対応するユーザースクリプトをインストール後に Emby ページを更新。
2. リリースページから zip をダウンロードして英語パスに解凍。3つの方法:
- `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 内蔵の字幕/音声トラック選択は無効。外部字幕/音声トラックは有効。内蔵字幕はプレイヤー側で選択。
- プレイリストはデフォルトで有効。無効化は推奨されません。Webページ上の全再生/ランダム再生/プレイリストは映画とミュージックビデオタイプのみ対応。
- 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 を記入後に認証。
- 三者ともプレイヤー正常終了後のみ同期。Webページでクリックした既再生はトリガーされません。
## 隠し機能(README ではサポート対象外と記載)
iso 原盤/bdmv 再生(VLC 推奨、iso は進捗返送非対応)、ローカルリダイレクト/再生アドレス置換、strm の LAN 内再生進捗同期、mpv から lua スクリプトへのデータ受け渡し、mpv の自動オープニング/エンディングスキップ、次エピソードの先読み、続きを見るの先読み、追更の Telegram 通知、永続キャッシュ(ダウンロードしながら再生)、弾弾play 弾幕プレイヤー対応、Pot 読み取りモードでの Emby 準拠プレイリストなど。
## フィードバック要件
README では、フィードバック前に最新版へ更新すること、mpv 同梱のポータブル版でテストすること、少なくとも 2 つの動画をテストすること、ログと再現手順を提供することを強調しています。要件を満たさないフィードバックは無視されます。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.