アラタナエンジニアブログ

aratana Engineer's Blog

さくらのVPSでストリーミングミュージックライフを充実させてみる

こんにちは、アラタナの月岡です。
あけましてあめでとうございます!!
弊社の増田さんがチャリ通で8kgも減量したらしいので僕もiPhoneの使用ディスクサイズを20Gくらい減量してみました。

f:id:ststyle:20150114125140p:plain

兎にも角にも減量するには、まずはサーバが必要となりますので
まずはさくらのVPSを契約してみてください。
僕のiPhoneの容量を大きく消費しているのは音楽データです。
この音楽データを全てサーバに移しました。

今回はサーバーに保管した音楽をいつでもストリーミング再生できる
自分だけのストリーミングサーバを作ってみます。

これによってiPadiPhoneAndroid、ブラウザが動作するPCやMac等、何でも音楽を再生することができます
ストリーミング再生なので、端末の容量も全く圧迫しません。
もうiPhoneに入れている音楽データは全部ポイできますね。
いつでも何処でもネットさえ繋がれば音楽が再生できちゃいます。


全体像としては以下の様なイメージになります。

f:id:ststyle:20150114155641p:plain



この手の音楽ストリーミング系のサーバソフトウェアの有名どころではSubSonicというものがありますが
アプリ介しての音楽再生などはは30日間しか利用出来なく、Subsonicに最低10ユーロ寄付をしないといけないので
今回はそのSubsonicのクローンであるSuperSonicを使って無料でストリーミングサーバーを構築してみます。

ここではCentOSな環境で構築してみました。


RPMForgeリポジトリの追加

rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

javaや必要なライブラリ群のインストール

yum -y install java-1.7.0-openjdk java-1.7.0-openjdk-devel
yum -y install ffmpeg flac faad2 lame vorbis-tools rpmlint




SuperSonicの取得 (https://github.com/Mach5/supersonic)

mkdir /usr/local/src/supersonic
cd /usr/local/src/supersonic
git clone https://github.com/Mach5/supersonic.git




Apache Mavenの取得と展開

URL : http://maven.apache.org/download.cgi

cd /usr/local/src/supersonic
wget http://ftp.jaist.ac.jp/pub/apache/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz
tar zxvf apache-maven-3.2.5-bin.tar.gz




Supersonicのデプロイ (すこし時間かかります)

cd supersonic

export PATH=$PATH:/usr/local/src/supersonic/apache-maven-3.2.5/bin

mvn -P full -pl subsonic-booter -am install

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Supersonic ......................................... SUCCESS [11:22 min]
[INFO] Supersonic Booter .................................. SUCCESS [07:09 min]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18:32 min
[INFO] Finished at: 2015-01-14T11:15:43+09:00
[INFO] Final Memory: 23M/190M
[INFO] ------------------------------------------------------------------------

mvn -P full -pl subsonic-main -am install

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Supersonic ......................................... SUCCESS [  1.559 s]
[INFO] Supersonic Main .................................... SUCCESS [05:04 min]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 05:06 min
[INFO] Finished at: 2015-01-14T11:21:10+09:00
[INFO] Final Memory: 29M/152M
[INFO] ------------------------------------------------------------------------


mvn -P full -pl subsonic-installer-rpm -am install

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Supersonic ......................................... SUCCESS [  1.507 s]
[INFO] Supersonic Installer for RPM ....................... SUCCESS [ 17.860 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 19.764 s
[INFO] Finished at: 2015-01-14T11:31:08+09:00
[INFO] Final Memory: 14M/168M
[INFO] ------------------------------------------------------------------------




以下のパスにSupersonicのrpmが作成されていることを確認して下さい

cd subsonic-installer-rpm/target

ls -la

合計 32696
drwxr-xr-x 2 root root     4096  1月 14 11:29 2015 antrun
drwxr-xr-x 8 root root     4096  1月 14 11:31 2015 rpm
-rw-r--r-- 1 root root 33472204  1月 14 11:31 2015 supersonic-4.7.beta1.rpm




Supersonicのインストール(起動までしてくれます)

rpm -ivh supersonic-4.7.beta1.rpm

準備中...                ########################################### [100%]
   1:supersonic             ########################################### [100%]
Starting supersonic ...
Starting Supersonic... Done.
Started Supersonic [PID 3594, /var/supersonic/supersonic_sh.log]




起動確認 (4040ポートをリッスンして起動されます)

 netstat -nlp |grep 4040
tcp        0      0 0.0.0.0:4040                0.0.0.0:*                   LISTEN      3594/java           




自動起動の設定

chkconfig supersonic on




4040ポートはわざわざオープンしたくないのでVirtualHostを切ってリバースプロキシをかけます。

オレオレ証明書でも構いませんので必要に応じてSSLにするとよいでしょう。

<VirtualHost *:80>
    ServerName music.yourdomain.com
    ProxyPass / http://localhost:4040/
    ProxyPassReverse / http://localhost:4040/
</VirtualHost>




Apacheをrestartしてブラウザでアクセス

<例> http://music.yourdomain.com

以下の様な画面が表示されればOKです。
f:id:ststyle:20150114131201p:plain
初期のデフォルトのID/パスワードは以下となっておりますので管理画面から変更してくださいませ。
ユーザー名:admin パスワード:admin



以下の画面からパスワードを変更して下さい。

f:id:ststyle:20150114131308p:plain
f:id:ststyle:20150114131547p:plain



日本語化やテーマの設定

Generalより言語設定が行えますので必要に応じて日本語設定にしてください。
その下からテーマなども選択できますのでお好みで選んでください。
f:id:ststyle:20150114131723p:plain



音楽フォルダの設定

音楽データファイルを格納するフォルダパスを環境に合わせて設定してください。
以上で環境準備自体は終わりです。
流れ的には/var/musicに音楽ファイルをファイル転送を介して配置して
真ん中あたりにある"Scan media folders now"を押下すると音楽データがSupersonicに取り込まれる流れとなります。
あとは再生するだけです。
f:id:ststyle:20150114132008p:plain



PCからSupersonicへ音楽ファイルの転送

MACな方だとiTunesに取り込まれた音楽は以下のパスに格納されていると思いますので
配下にある音楽ファイルをSCPやSFTPクライアントなどでサーバに転送してください。
配置先のパスは/vae/musicです。

/Users/hogehoge/Music/iTunes/iTunes Media/Music

先にも書いたようにSupersonicの設定画面から"Scan media folders now"を押下すると
データが取り込まれます。

いかがでしょうか
テーマも変更して音楽ファイルが揃ってくるといい感じですね!!
アルバムのアートワークや歌詞などもひっぱって来ることが可能です。
私は最終的には家にある430枚ほどのCDをSupersonic上にほぼすべて配置して
いつでもどこでもストリーミング再生が可能になりました。
(音も途切れることなどもなくて快適です^^)

f:id:aratanakoho:20160801132734j:plain


そしてiTunes音楽ファイルも全部消してから再同期する事で
無事にiPhoneのディスク使用量について20Gのダイエットに成功しました^^


ここまで来るとせっかくなのでiPhoneから音楽再生したくなりますよね。。。
あります、ありますよ!!
iSubというアプリで実現できます。(500円します)
もともとSubsonic用のアプリですがSuperSonicでも問題なく動作しました。

iSub Music Streamer

iSub Music Streamer

  • Benjamin Baron
  • ミュージック
  • ¥600


アプリを起動

f:id:ststyle:20150114133103p:plain



サーバの指定

Settingsからサーバの指定をします。
VirtualHostで設定したドメインと最初に設定変更したID/パスワードを指定します。
(HTTPSオレオレ証明書でも問題なく動作します)
管理画面にて"Scan media folders now"をしたものは当然ですが
iPhoneアプリでも同じデータを参照してますので完全にイコール!!
あとは音楽を再生するだけです!!

f:id:ststyle:20150114133138p:plain


最後に

特にエンジニアの方は集中するために好きな音楽を聞きながら作業する方も多いと思いますが
あまり手元でiPhoneなどは触りたくないと思います。

f:id:aratanakoho:20160729171845p:plain


そんな方にはMACからBluetoothを介してiPhoneのリモートコントロール
曲の再生などある程度操作出来るアプリがあるのでオススメです!!
(MACiPhoneBluetoothをONしてpairすれば操作できます。)

iKeyboardRemote

iKeyboardRemote

iKeyboardRemote

  • Invictus Security Inc.
  • Music
  • Free

f:id:ststyle:20150114135740p:plain


あとはs3cmd等を用いてS3にバックアップすればさらにステキです!
次にiPhone買うときは16Gの小さい容量で十分ですね。

それではストリーミングミュージックライフを楽しんで下さい!!