[music] Subsonic所感

Subsonic 便利ですね。さくらVPSではなくて、家のMacにいれて DynDNSでホスト名を当てて使ってます。

曲数が多くてもインポートの時間が全然かからないのがいいなと思いました。あとMacの場合パッケージでインストールが完了しますのでお手軽に試せます

アクセスログがとれない(ぽい) のでproxyかましてログを取る

Subsonicのプロセスはデフォルトで4040ポートでLISTENしますが、ここにリクエストを出してもアクセスログを吐いてくれません。(つーか java知らん)

なので無駄にnginxをリバースプロキシにしてログを吐かせています。server部分の設定は↓みたいな感じで

http {
     server {
         listen 80;  
         server_name         subsonic.<ドメイン>
         access_log          /dev/stdout;

         proxy_set_header    X-Real-IP       $remote_addr;
         proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header    Host            $host;
         proxy_redirect      off;
         proxy_max_temp_file_size    0;  
         location / { 
             proxy_pass  http://127.0.0.1:4040;
             break;
         }
}

nginxの設定は適当にコピペしてきたものなので、これでいいのかどうか自信ないですが... とりあえず動いてます

X-Real-IP, X-Forwarded-For はいらんよね。ログはlaunchdに任せたいので /dev/stdout に出しています

Subsonicプロセスをlaunchd で常駐化

Subsonicを動かしているのがMac上なので、プロセス管理を launchd に任せています。launchd用の.plistは下記のような感じで

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>user.launchkeep.subsonic</string>
  <key>KeepAlive</key>
  <true/>
  <key>Program</key>
  <string>/Applications/Subsonic.app/Contents/MacOS/JavaApplicationStub</string>
  <key>StandardErrorPath</key>
  <string>/var/log/subsonic.error_log</string>
  <key>StandardOutPath</key>
  <string>/var/log/subsonic.log</string>  
</dict>
</plist

(labelは他の名前空間とバッティングしなければ何でもいいと思います)

$ launchctl load ~/Library/LaunchAgents/user.launchkeep.subsonic.plist

で起動します。 "KeepAlive true"のオプションをつけているので、プロセスをkillしても自動でよみがえります。

iPhoneクライアント iSub Music Streamer も便利

iSub Music Streamer がなかなか便利です。一旦聴いた曲をローカルにキャッシュに持ってくれるのが良いです。アーティスト、アルバム、曲単位で明示的にもキャッシュ(というかダウンロード)できます。キャッシュ登録はキュー管理されているので たくさん登録しても大丈夫なようです。

3G回線でもちゃんと聴けます。ただ選曲のレスポンスが遅いので、頻繁に曲を変えようとするとモタつきます。

検索インデックス

検索インデックスが作成されていない場合、曲の検索ができません
Settings > Search で検索インデックスを作成するタイミングを設定できます。

インデックス作成後は3G回線で曲リストを表示する速度があがったような気がしますが、ほんとにそうなのかちょいと分かりません

デメリット

DRM付きの曲は聴けません。iPod併用で聴きましょう。iTunes Storeのヘビーユーザーだったりすると 聴けない曲が多くてがっかりするかもしれません。

デフォルトでaiffには対応していないです (ffmpeglameの設定をすれば聴けそうですが まだ出来てません。)

テンプレートをいじってハックしましょう

以下のディレクトリにテンプレートが置いてあります。

/Library/Application\ Support/Subsonic/jetty/2169/webapp/WEB-INF/jsp

余計なiframe削ったりあれこれを削除/追加すると使いやすくなると思いますよ。広告も消せますが、寄付すれば消えるものらしいので、なんちゅうか ハック的に消すと心が痛みます。

その他

ご利用は計画的に。