Polarisでサブスクリプション不要の音楽ストリーミングを実現する方法
ストリーミングサービスは便利ですが、著作権問題で好きな曲が突然カタログから消えたり、サブスクリプションの料金が高くなり続けるという厄介な問題があります。数年にわたって蓄積したFLACやMP3ファイルがハードディスクやホームサーバーに大量にある場合、USBメモリで持ち歩くのは不便です。月額料金不要でどこでも動作する自分だけのストリーミングサービスが欲しいところです。
最近Polarisを見つけました — Rustで書かれた軽量なセルフホスト型音楽ストリーミングサーバーです。有料プラン、功能制限のあるバージョン、肥大化したインターフェースは一切ありません。
Polarisできること
プロジェクト作者の主な目標は、レスポンシブ性能と大規模なメディアライブラリへの対応力です。10万曲以上のコレクションでも安定したパフォーマンスが期待できるとのことです。
PlexやJellyfinのような重量級のオールインワンソリューションとは異なり、Polarisはオーディオ専用に焦点を当てています:
- flac、mp3、mp4、mpc、ogg、opus、ape、wav、aiffフォーマットを読み込みます。
- プレーヤー内にオーディオ波形をレンダリングするため、トラック内の 원하는 момента에素早くジャンプできます。
- 1つのトラックに複数のアーティストやジャンルがある場合のメタデータのマルチバリュータグをサポートしています。
- タグ(アーティスト、アルバム、ジャンル)による音楽ライブラリの表示と、ディスク上のフォルダツリー構造での表示の両方に対応しています。古いリリースのタグが適当に埋められている場合に便利です。
- 特定のメタデータフィールドでの検索をサポートしています。
- ユーザー分離をサポートしており、各ユーザーに個別のプレイリストを作成できます。
嬉しい機能として、インターフェースはダークテーマとカラーパレットのカスタマイズに対応しています。
内部構造
PolarisはRustで書かれており、システムリソースを最小限に抑え、静的コンテンツとストリームを素早く配信します。複雑なデータベースで設定を管理する必要はなく、設定はプレーンテキストファイルに保存されますが、Webインターフェースから直接編集することもできます。
開発者はサーバーAPIを完全にオープンにし、OpenAPIでドキュメント化了しています。Polarisのローカルインスタンスでは/api-docs/にインタラクティブなSwaggerが起動するため、独自のクライアントや自動化を作成することが簡単です。
フル機能のクライアントはすでに存在します。Webインターフェースに加えて、以下を使用できます:
- Android向け公式クライアント(Google PlayおよびF-Droidで入手可能)。
- iOS向けサードパーティー製Polariosアプリ。
- 組込みシステムおよびデスクトップ向けのPolarityクライアント。
始め方
サーバーはLinux、Windows、BSD向けにビルドされていますが、最も簡単な方法はDocker経由です。基本的なdocker-composeファイルは最小限です:
version: "3"
services:
polaris:
image: agersant/polaris:latest
container_name: polaris
ports:
- "5050:5050"
volumes:
- /path/to/your/music:/music:ro
- /path/to/polaris/data:/var/lib/polaris
restart: unless-stopped
起動後、インターフェースはポート5050で利用できます。管理者パスワードを設定し、音声ファイルのあるディレクトリを指定するだけです。Polarisはバックグラウンドでトラックを素早くインデックス化します。
コンテナをすぐに設定したくない場合、開発者はdemo.polaris.streamでライブデモを公開しています(ログイン: demo_user、パスワード: demo_password)。Creative Commonsライセンスのトラックが含まれています。
こんな人におすすめ
Polarisは、Raspberry Piや古いネットブックのような小型ハードウェアでホームサーバーを運用しており、4K動画トランスコーディングのような余分な機能なしで高速なプレーヤーを求めている人に最適です。クリーンなオーディオ、瞬時のレスポンス、ファイルへの完全なコントロールしたい場合は、ぜひブックマークしておきましょう。
関連プロジェクト