GooglePlayMusic->Supersonic
またまた,有名なクラウドサービスから自前クラウドサービス(?)に乗り換えるというお話です。
といっても今回は乗り換えではありません(GooglePlayMusicは関係ない)。
旅行の移動中や部室での作業中などに音楽をかけたいと思うようになったのですが,携帯はiPhone16GBモデルで,今持ってる音楽プレイヤーはBluetooth2.0しか使えないことが判明しました。
そこで最近流行のGooglePlayMusicっぽいサービスを自前で用意しようと思い立ちました。
今回使用したのは"Supersonic"なるソフトウェアです。
こいつが音楽データの管理・ストリーミング配信等を行ってくれます。
配信を聞くために,パソコンからはブラウザ,iPhoneからはiSub Music Streamerを使いました。
特に不便もなく利用できそうです。
環境
いつもどおりのUbuntuServer12.04 LTSサーバーにインストールしました。
本来であれば,
Mach5/supersonic · GitHub
このリポジトリをクローンして自前でパッケージをビルドすべきなのでしょうが,どうしてもコンパイルが通らなかったので
(プロジェクト外のファイルに対して"Not a v4.0.0 POM"というエラーが出ました),
ビルド済みのパッケージを使用しました。
Downloads · Mach5/supersonic · GitHub
cd /path/you/want/to/download sudo apt-get update sudo apt-get install lame ffmpeg sudo apt-get install default-jre-headless sudo dpkg -i supersonic-4.7.beta1.deb
インストールと同時に自動起動の設定もされるようです。
設定
ポートをあけてローカル環境からアクセスできるようにします。
デフォルト設定では4040番を使うそうなので,そのままにしておきます。
sudo ufw allow 4040
デフォルト状態ではセキュリティ上あまりよろしくないので,権限周りの変更をします。
/etc/default/supersonic SUBSONIC_ARGS="--port=4040 --https-port=4443 --max-memory=100" SUBSONIC_USER=supersonic
新規ユーザーを作成し,音楽データの保管先の所有権を変更します。
sudo useradd supersonic cd /var sudo mkdir music sudo mkdir playlists sudo chown supersonic:supersonic music sudo chown supersonic:supersonic playlists sudo service supersonic restart
ブラウザからの設定
これでとりあえずの準備はできたはずなので,早速4040ポートにアクセスします。
初期ID,パスワードはadmin, adminなのでログインし,表示されている3項目の設定変更を行います。
実際に使うことを考え,ユーザーアカウントも作成しておきます。
実はここにありがたい項目があり,ユーザーごとに最大ビットレートを変更することができます。
僕は携帯回線用と無線LAN用の2種類のアカウントを作成しています。
設定ができたらFTPなどを利用して音楽データを転送します。
僕は/var/music/以下にアーティスト名のディレクトリを作り,その下にアルバム名のディレクトリを作成しています。
データ転送後にはブラウザから音楽データのスキャンを実行する必要があります。
学内からのアクセス
本筋から少し離れるのですが,ここで少し苦戦しました。
携帯回線を使用する場合は構わないのですが,学内LANから4040ポートにアクセスできないようになっているので,リバースプロキシを利用して回避します。
リバースプロキシが何かは自分で調べてみてください。
すでにApache2を立ち上げているので,追加設定を行います。
/etc/apache2/sites-available/000-default.conf に追記 <VirtualHost *:80> ServerName music.hogehoge ProxyPass / http://localhost:4040/ ProxyPassReverse / http://localhost:4040/ </VirtualHost>
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo service apache2 restart
合わせてDNSサーバーにもmusic.hogehogeを通しておき,アクセスできるようにしておきます。
以上の設定で"http://music.hogehoge:80/"または"http://music.hogehoge/"でSupersonicにアクセスできるようになりました。
他
今回ストリーミングサーバとしていくつかの環境を候補に上げました。
その中でも,良い比較記事を書かれているブログがあったので紹介しておきます。
ミュージックストリーミングWebサーバのAmpacheとSubsonicを比較してみた: boKUma
さてさて,大会前なのになんでこんなことやってるんだろうなあ。
頑張ってマウス作ります。