last.Ucountdown という Web サービスを作りました

Web サービスというほど大げさなものでもないですが、
Rails で last.Ucountdown という Web サービスを作りました。


last.Ucountdown
last.Ucountdown の charts の例


last.Ucountdown とは?


last.Ucountdown とは last.fmAPI を利用するので
まず last.fm を使ってない方は使えません。


last.fmAPI をたたいて、今週あなたがよく聞いていた
アーティストをよく聞いていたユーザのアーティストを集計します。
で、それを RSS で購読するというだけのサービスです。


日々なんだか忙しい生活を送っていたりすると、
新しい音楽に触れる機会がまったくなかったりします。
若いころは、音楽雑誌とかCD屋とか巡って、いろいろ見てたのが
だんだんそんなこともしなくなってきて、確かに能動的に
探せばいろいろあるんですが、なるべく受動的に、しかし
自分の好みに近い音楽を知りたいと思っていました。


で、自分が今週聞いていたアーティストを同じように聞いていた人が
どんな音楽を聴いていたかを知ればいいんじゃないか、と思い作りました。
(自分が聞いていたアーティストは除いて)


実際 last.fm にはレコメンデーション機能はあるのですが、
それは自分の今まで蓄積されたデータから統計を取るので、
あまり結果がブレません。なのであまり面白いものを推薦されないように思います。


けれどもこれで面白いものが推薦されるかどうかもまだよく分かりませんw


課題 - API の問題


1 user あたり 31 request するのでいつ BAN されてもおかしくない気がします。
ただ cron(BackgrounDRb) は一日一回実行するのですが、Weekly Artists Charts が更新されないと
実行されないので実際は3日〜5日に一回しか実行されないのが救いかな、とも思います。
last.fmAPI 利用規約には「当たり前だけど一秒間に何回もリクエストするのはやめてね」
と書いてあるけど、Twitter のように具体的にどれくらいで不可となるのかは書いてないように思いました。


ということでとりあえずの試験運用的な感じではじめたいと思うので
いつこのサイトを中止するかは分かりません><


そのほかの課題


1, Björk, Sigur Rós といったグルジア語を使ったアーティストの文字の取得の仕方がおかしいため文字化けする。
2, サイトが重すぎる。slicehost の 256MB の限界なのかなーとも思うけど、まだ最適化できる余地は全然あると思う。
3, キャッシュとか使おう。
4, 詳細ページでは、もっとなんか Ajax とか使ってサイトを移動せずに YouTube とかで取得できてもいいか。
5, about の英語が適当。あとで直す。


まとめ


Rails をきちんと使ったことがなかったので、ひとつひとつが勉強になりました。
今度はもう少し、しっかりしたものを作りたいな、と思いました。