2014-02-20 [長年日記]

ampacheでオーディオストリーミング

いままで、スマートフォンでの音楽再生はSDカードにライブラリすべてを入れておいて再生していたのだけど、実際に聞く曲は限られていて、それ以外のデータはSDカードの容量だけを使う肥やしと化していた。ただ、事前に曲を選んでプレイリストを作成、データ転送というのも面倒だし、唐突に違う曲が聞きたくなることもあるじゃない。ということでピコーンとなったのでオーディオストリーミングサーバーを立ち上げることにした。

Dropboxを使用するソリューションもあるみたいなんだけど、さいわい、帯域もディスク容量も余っているさくらVPSもあるし、ここにセットアップすることに。いろいろ検索した感じ、subsonicが良さそうで、セットアップもしたのだけど、androidアプリから再生するには$1/monthのプレミアム版にアップグレードする必要があるらしく、何か相手のサーバーリソースを使っているならともかく、リソースはすべて自前で買い切りではなく月額というのは高いなーということでこちらは諦めることにした。

再度探してみたところ、ampacheが良さそうだったのでこちらを導入することに。

まずは音楽データをサーバーに配置。今回はrsyncで送信したけど、osxでのファイルのパーミッションと文字コードが特殊なので、適切にオプションを設定する必要がある。また、osxのrsyncが古く、いくつかのオプションが使えないので、homebrewでrsyncをインストールし、そちらを使用している。

$rsync -azv --iconv=UTF8-MAC,UTF-8 --chmod=a+r,Da+x --exclude=".*" (snip)iTunes\ Music/Music/ user@hostname:~/music

こんな感じで、転送先のファイルが644、ディレクトリが755になっていればOK。

次に必要なソフトウェアをインストール。ubuntuではampache自体もパッケージとして存在するのだけど、今回の構成には不要なものもついてくるので、ampacheは単体でインストールすることにした。

#sudo apt-get install mysql-server php5 php5-mpf php5-mysql

こんな感じ。

ampacheはgithubから持ってきて、最終リリースの3.6-alpha6をチェックアウト。適当にパーミッションを設定しておく。

#git clone https://github.com/ampache/ampache.git
#cd ampache;git checkout 3.6-alpha6
#chown www-data:www-data -R ../ampache

今回はnginx->php-mpf->ampacheという構成にするので、nginxの設定ファイルを編集。

server {
  (中略)
  gzip off;

  root /path/to/ampache;
  index index.php;

  location ~ ^/config {
    deny all;
  }

  location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
  }
}

こんな感じ。/configには設定ファイルがあるので外部からはアクセス出来ないようにしておく。

あとはブラウザでアクセスしてデータベース、ユーザーの設定を行い、カタログの生成をすればOK。ブラウザから曲データにアクセスできるようになる(以下続く)。

Tags: linux android