プログラミング・Webサービス
DAAPでiTunes連携プライベートWebアプリ
- 閲覧数: 3233
- 5
作品説明
iTunesで毎日音楽聴いてるわけだけど歌詞をすぐ忘れる。でも歌詞カード引っ張りだしてくんのつらいなあ・・・ということで、DAAP使って再生中の曲情報取得して検索用リンク生成みたいなことをやるプライベートネットワーク用のWebアプリを作ってみた。
あと同じものばっかりヘビーローテーションしてね?自分どんな曲聴いてんのよ?ということでただひたすら曲再生を記録し続けたりもする。
WebベースならWeb Hooksとかなんかその辺のアレをアレして他にもいろいろたのしそうなことできるじゃない。とそんなことも考えつつ。
あと同じものばっかりヘビーローテーションしてね?自分どんな曲聴いてんのよ?ということでただひたすら曲再生を記録し続けたりもする。
WebベースならWeb Hooksとかなんかその辺のアレをアレして他にもいろいろたのしそうなことできるじゃない。とそんなことも考えつつ。
レシピ
できたもんはこの辺においてある。適当。バイナリもあるよ。詳細は[うごかしかた]参照。:http://code.google.com/p/jsimpledaap/
画面
他、iTunesとのペアリング画面とか、機能に関する画面あり。それなりのデザインが簡単なマークアップでできるからほんとBootstrapは捗る。
つくるよ
ベースは前回作ったコンソールベースのアプリケーション。これに色々足していく。
- Jetty。簡単に自分のアプリにServlet Containerが組み込めるよ。やったね。
- Twitter Bootstrap。CSSとかと格闘したら死ぬよね、ただでさえも仕事で衰弱してるから。だから全部おまかせ。
- H2 Database Engine。MySQLとかインストールするのめんどくせえし、DBはアプリに組み込んじゃう。
- Apache Velocity。テンプレートエンジンって油断するとすぐ自作しちゃいそうになるけどやっぱりあるもの使うのがいいよね。多分。
- Gson。多少非同期処理とかしちゃう。
- java-image-scaling。自力でスケーリングしようとするとだいたい残念になるのだわ。
画面
主要な画面は2つ。
再生中画面
再生中の曲を表示してもろもろ検索したりする画面:非同期処理で現在の再生状況にあわせて更新される。
履歴画面
履歴画面:DAAPから得た再生状況に関して、変化したら記録していく。トラック名をクリックするとまた再生できる。アーティスト名、アルバム名をクリックするとそれぞれ1曲目から再生開始される。
他、iTunesとのペアリング画面とか、機能に関する画面あり。それなりのデザインが簡単なマークアップでできるからほんとBootstrapは捗る。
うごかしかた
エラー処理とか適当なのでコンソールベースで動かすのがよいかも。
Java SE 6で動作確認。Javaの知識があってiTunesのRemoteであそんでいるひと向けの説明。あくまでも遊びサーバなので扱いは自己責任でお願いします:
- https://code.google.com/p/jsimpledaap/ のDownloadsからjsimpledaap.jarをダウンロード
- 適当なディレクトリに置いて、java -jar jsimpledaap.jar
- ちょっと待って http://localhost:8080/remote をブラウザで開く
- iTunesがLAN内のどこかで動いていればペアリングリストに何か出てくる(はず)。あとは画面の指示にしがたう
- iTunes側でコードを入力したらブラウザ再読み込み。で、再生中の情報が出てくる(はず)
- てきとうにリンクをクリックする
備考
- 設定ファイルやDBはカレントディレクトリに作られる。
- ChromeとFirefoxで動作確認済み。ポート番号を変えたい場合は先の2.でオプションに -port 8090 とかする。
- いつまでたっても曲情報が得られなかったり履歴が更新されなかったりしたらいったんjavaのプロセスを停止して再実行。ペアリングされた情報は覚えているので、再生中の曲情報が出てくる。(はず)
- 停止はjavaのプロセスを殺す。(まだ適当)
- 実行中に再生された情報は逐一H2 DBに記録している。H2 DBのファイルを明示するには -dbpath <path> みたいなことを書く。
- 特にアクセス元IPアドレスの制限などしていない。よって、Webアプリ部分を外部に公開みたいなことをすると外部に趣味嗜好がバレたり勝手に再生する曲を決められたりするので注意が必要。すべて自己責任でおねがいします。
コメント (0件)