Emby Virtual Proxy:Emby向け高機能プロキシサーバー

DevOps

概要

Emby Virtual Proxyは、メディアサーバーEmbyのクライアント(ブラウザやモバイルアプリ)と実際のEmbyサーバー間に介在するプロキシサーバーです。Pythonで実装されており、API通信をインターセプトして改変することで、Embyの標準機能では実現できない仮想メディアライブラリの作成や、高度なコンテンツフィルタリング、カスタムカバーアートの自動生成などを提供します。Vue.jsによる管理画面を備え、使いやすく設定可能。また、Dockerコンテナとして提供されており、docker-composeを利用した簡単な一括デプロイも可能です。これにより、Embyユーザーはより柔軟で洗練されたメディア管理環境を構築できます。

GitHub

リポジトリの統計情報

  • スター数: 7
  • フォーク数: 1
  • ウォッチャー数: 7
  • コミット数: 9
  • ファイル数: 6
  • メインの言語: Python

主な特徴

  • Embyサーバーとクライアント間のAPI通信をプロキシで制御し、高度な機能を付加
  • 仮想メディアライブラリの生成および高度なコンテンツフィルタリングをサポート
  • Vue.jsベースの管理画面により全機能をGUIで設定可能
  • Dockerおよびdocker-compose対応で、ワンクリックでの簡単デプロイを実現

技術的なポイント

Emby Virtual Proxyは、Embyのクライアントとサーバー間の通信を中間で受け持ち、リクエスト・レスポンスをプログラム的に解析・編集する仕組みを核としています。具体的には、HTTP APIリクエストをインターセプトして、対象のメディアライブラリ情報の抽出や改変、仮想ライブラリの構築に利用しています。これにより、Emby本体がサポートしないメディアの仮想的なグルーピングや、ユーザーごとに異なるコンテンツのフィルタリングが可能になります。

プロジェクトはPythonで実装されており、軽量かつ柔軟なミドルウェアとして機能します。API通信の改変は正確なルールベースまたは動的処理によって行われ、メディア情報のカスタムカバー生成機能も備えています。これにより、UI上での視覚的なメディア体験が大幅に向上します。

管理画面はVue.jsで構築されており、ユーザーはブラウザからプロキシの各種設定を直感的に操作できます。これにより、ネットワークやAPIの専門知識がなくても、仮想ライブラリの作成やコンテンツフィルタリングの設定が容易です。

さらに、Dockerfileとdocker-compose.ymlが用意されているため、Docker環境を利用すれば、依存関係のインストールや環境構築を気にせずに、数分で環境構築が完了します。これにより、運用者は素早く本プロキシを立ち上げ、既存のEmby環境に組み込むことができます。

このプロキシの導入で、Embyユーザーは標準のUIやAPIの制約を超えた柔軟なメディア管理体験を得られ、複雑なメディア構成や多人数環境でのカスタマイズを容易に実現できます。特に、複数のメディアライブラリを仮想的に統合・編集したいケースや、ユーザーごとに異なる視聴制限・表示制御を行いたいシナリオに最適です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: Git管理対象外のファイルを指定
  • Dockerfile: Dockerコンテナイメージを作成するための設定ファイル
  • README.md: プロジェクト概要やセットアップ方法を記載
  • docker-compose.yml: 複数コンテナをまとめて起動するための設定ファイル
  • frontend: Vue.jsで構築された管理画面のソースコードディレクトリ
  • その他 Pythonスクリプトや設定ファイルが含まれ、プロキシサーバー本体のロジックを実装

まとめ

Embyのメディア管理を飛躍的に強化する高機能プロキシサーバー

リポジトリ情報: