このプロジェクトについて

## プロジェクト概要 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 つの動画をテストすること、ログと再現手順を提供することを強調しています。要件を満たさないフィードバックは無視されます。