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

Audioserveは、ディレクトリ構造から直接音声ファイルを配信するRust製のパーソナル音声サーバーです。主にオーディオブックを対象としていますが、整理されたフォルダコレクションであれば何でも利用できます。設計はシンプルさとミニマリストなアプローチを重視しています。 メディアライブラリ: Audioserveは音声タグに依存せずファイルシステムを閲覧するため、作成したフォルダ構造がそのまま表示されます。推奨されるレイアウトにはauthor/bookやauthor/series/bookがあります。ファイルは自然な順序で並べられるため、数値のゼロ埋めは任意です。フォルダに配置されたカバー画像や説明ファイルは表示に使用され、検索はフォルダ名を対象とします。複数のコレクションを個別のコマンドライン引数として渡すことができます。 キャッシュ: コレクションデータは組み込みのキー・バリュー・データベース(sled)にキャッシュされ、多数のファイルを含むフォルダの検索と読み込みを高速化します。大規模なコレクションでは最初のスキャンに時間がかかることがあります。変更はデフォルトでinotify経由で監視され、シグナルまたは--force-cache-update引数で完全な再スキャンを強制できます。個々のコレクションは:no-cacheでオプトアウトできますが、検索が遅くなり、位置共有も利用できなくなります。 単一ファイルのオーディオブック: チャプターメタデータを持つ.m4bなどのファイルは、仮想チャプターファイルを含むフォルダとして表示されます。チャプターは再生時間から生成したり、.chapters CSVファイルで指定することもできます。CDサブフォルダはオプションで親フォルダに統合できます。 再生位置: 同じデバイスグループ内のクライアントはWebSocket接続を介して再生位置を共有でき、別のデバイスで続きから再生できます。位置はJSONにバックアップして復元できます。完了したフォルダは最後の再生位置に基づいてマークされます。 セキュリティ: アクセスは共有シークレットで制御され、名前付きユーザーはありません。シークレットはソルト付きハッシュとして送信され、サーバーは後続のリクエスト用にトークンを発行します。TLSは直接またはリバースプロキシ経由でサポートされ、レート制限も利用できます。隠しファイルはAPIでブロックされます。 トランスコーディングとパフォーマンス: Audioserveは音声をより低いビットレートにトランスコードでき、オプションのトランスコーディングキャッシュを備えています。レスポンス圧縮とHTTP/2をサポートしています。 クライアントとAPI: モダンなPWAウェブクライアント(TypeScript/Svelte)が含まれており、旧式のウェブクライアントとAndroidクライアントもあります。文書化されたHTTP APIにより、カスタムクライアントを作成できます。 インストール: Dockerイメージ、静的Linuxビルド、ローカルビルド、およびcollation、tags-encoding、shared-positions、transcoding-cache、behind-proxyなどのオプション機能を有効にしたコンパイルなどの選択肢があります。