私はminidlnaバージョンを含む小さなNASに音楽を保存し、UPnPを通して聞きます。私の顧客はアルバム、アーティスト、プレイリストなどを再生します。サーバーまたはクライアントをアップグレードすることはできず、他のトランスポートまたはプロトコルを使用することもできません。
ランダムに選択された音楽を毎日再生できれば幸いですが、サーバーもクライアントもこの機能を持っていません。どうすればこれを最良に達成できますか?
答え1
Minidlnaは、すべてのユーザーが直接アクセスできるsqliteテーブルにデータを保存します。インストールされたsqlite3
アプリケーションと適切なSQLクエリを使用すると、単純なm3uプレイリストを作成できます。これはminidlnaとして再度取得できます。
たとえば、
sqlite3 -list /tmp/minidlna/files.db "select path from details where track>0 order by random() limit 1000" > /home/user/music/random\ playlist.m3u
より強力な方法があるかもしれませんが、-list
ファイル名の周りに引用符を使用せずにオーディオトラックを参照しないレコードをフィルタリングする必要があります。track>0
生成されたm3uプレイリストファイルがminidlnaが検索したディレクトリにある場合は、inotifyが選択して自動的に提供されます。
このアプローチは、特定のジャンルやその他の基準のみを含むように開発され、「スマートプレイリスト」機能を効果的に追加できます。
毎日/時間ごとに実行するには、音楽ディレクトリへの書き込み権限を持つユーザーのcrontabにこのコマンドを追加します。欠点は、再起動時にNASがcrontabを失うことです。しかし、このような場合はまれです。
さまざまなminidlnaインストールは/ varにデータを保存できます。