Today'sShuffle

このページのソースです。

!Today's Shuffleとは
iPod shuffle に転送されている曲の曲名とアーティスト名を表示するhtmlを
作成し、携帯などから見れるようにします。

*使用例>http://ashitani.jp/shuffle.html*。

なお、今のところ、以下のような制限があります。
-iTunesの「環境設定」-「iPod」が「ディスクとして使用する」設定になってないと(たぶん)使えません。
-シャッフルモードには対応してません。「順番に再生」モードで使用してください。

!ダウンロード
*shuffle-0.1.tar.gz>http://ashitani.jp/download/shuffle-0.1.tar.gz*

!インストール条件
Rubyが必要です。
確認してないのですが、たぶんRuby1.8以降なら動くと思います。1.6系でも、*erb>http://raa.ruby-lang.org/project/erb/*を入れれば動くかもしれません。

!ライセンス
GPL2です。

!設定
shuffle.rbに設定を書きます。必須な設定は、IPOD_PATH(接続したiPodのパス)
のみです。

MACの方は、
=IPOD_PATH="/Volumes/MyIPod/"
Windowsの方は、
=IPOD_PATH="e:¥¥" 
のように記述してください。

!使い方
iPodが接続され、ファイルボリュームが見えた時点で、
=$ ruby ./shuffle.rb
とすると、同じフォルダにshuffle.htmlというファイルができます。
このファイルをブラウザで見るなり、サーバにアップロードしてください。

携帯電話の2468、あるいはPCのカーソルキーを上下左右に割当て、以下のように動きます。
|キー|動作|
|4,←|1画面戻る|
|8,↑|1曲戻る|
|2,↓|1曲進む|
|6,→|1画面進む|

動作にはブラウザ依存があると思います。いまのところ、下記のブラウザでのみ動作確認しています。
|FireFox1.0 |Mac OS X|
|FireFox0.9 |WindowsXP|
|Safari1.2.4|Mac OS X|
|Opera |AH-K3001V|
|Opera7.60 |WindowsXP|
IEだとエラーになりますね。気が向いたら調べます。

!高度?な使い方と解説
template/以下にerbで書かれたテンプレートがあります。
shuffle.rbのTEMPLATE_FILEが指すテンプレートから、shuffle.htmlは生成されます。

サンプルにあるのはsimple.erbというファイルですが、これは曲名、アーティスト名、アルバム名、ジャンル、をひたすら表示するものです。

playlists[] はハッシュで、複数のプレイリストがあればその数だけ配列になっています。iPod shuffleはプレイリストを一つしかもっていませんので、playlists[0]しか意味がありません。(シャッフルモード時の曲順は別で、現在のところ非対応です。)

playlists[]["SongList"] は曲のIDを演奏順に並べた配列です。

playlists[]["Title"] はプレイリスト名です。iPod shuffleの場合は、機体につけた名前が入るようです。

songs[]はハッシュで、キーは曲のIDです。ハッシュの指す先はさらにハッシュになっており、
以下のキーが使用できます。中にはutf8の文字列が入っています。
|Title|タイトル|
|Location|楽曲ファイル実体へのパス|
|Album|アルバム名|
|Artist|アーティスト名|
|Genre|ジャンル|
|Filetype|ファイルの種類|
|EQ Setting|イコライザ設定|
|Comment|コメント|
|Composer|作曲者|
|Grouping|グルーピング|

つまり、プレイリストに入っている曲名一覧を得るためには、
{{{
playlists[0].each do |song_id|
 puts songs[song_id]["Title"]
end
}}}
のようにすればよいです。これをerbで書くと、
{{{
<% playlists[0].each do |song_id| %>
 <%=songs[song_id]["Title"] %>
<% end %>
}}}
のようになります。

!感想などは以下に追記ください。
#comment 名前(英字数字のみ),10 コメント,40,5