NowPlayingふたたび。

powered by iTunesBlogger とっかかりは「iTunes用にサードパーティの軽いビジュアライザとか無いのかしら」という欲求だった。標準のビジュアライザは後ろで日本語入力するにも滞るほどで、かといってリスト画面でぼーっとさせておくのも何だか悔しい。MTV世代には画面の左下に曲名アーチスト名アルバム名が欲しいのさ。ららららーららー。
 そんで例によってGoogle様にお伺いを立てたところiPod情報局というデジタルARENA内のブログ記事に行き着いた。さまざまなビジュアライザをWin共用/Mac専用とりまぜて紹介しているのだが、その中にNow Playingプラグインという気になる名前が。


 常連さんは覚えているだろうか。ここも改装前はWinAMPで再生中の曲を最近の日記兼トップページに表示していたことを。しかし昨年4月sb導入以後は外してしまっている。

  1. WinAMPで再生を停止すると現在の曲データを再送してしまう
  2. ID3タグに2バイト文字を含むと文字化けする

 問題になったのはこの2点で、今回新たに導入するツールでは最低これらをパスしていることが条件となる。
 以下、時系列を追うために昨夜のIRCログを取り混ぜて経過報告。

23:56 >futami< iTunesで今かかってる曲をウェブにうpするプラグインを見つけたのですが
23:56 >futami< 例によって2バイト文化と邂逅してない蛮族らしいしあがりで
23:57 >futami< しかもシェアウェアでペイパル受付のし、とかほざくので速攻消しますた

 ざっくり見てみたところNow Playing関係では先述のBrandon Fuller氏によるものが最も充実しているようだったのだが、実は先行してWinAMP→iTunesへの移行を進めていたのがその邦楽アーチストだったのだ。理由はカンタン、少ないから。
 というわけで最有力候補が速攻脱落するも、iTunesのNow Playing自体はWindows版リリース直後あたりから結構出ていて(前回WinAMP用を導入する際にもiTunes向けのリソースの方が多かったように思う)、早速次の候補が見つかった。それがiTunesBlogger
 しかしこれはiTunesプラグイン(ビジュアライザ)ではない。これを選択した時点で目的と手段が入れ替わるわけだが、脳内では既に実装と運用の検討が進められていた。いつものことだが困ったもんだ。

00:36 >futami< うむ、そして別のユーティリティでNowPlaying実装オワタ
00:36 >futami< これでWinAMPで聴いてもiTunesで聴いてもOK
00:38 >futami< しかし埋め込んであるジャケット写真のアップロードまではさすがに無理か

 Brandon Fuller版Now PlayingではID3埋め込み画像のアップロードが可能だった。それどころかAmazonアソシエイトリンクも(日本版にすら!)自動でリンクしてくれるという優れもの。さらにiTMSアフィリエイトにも対応しているという至れり尽くせりなのだが、2バイトコード通らないんじゃあどうしょうもないよね。日本版iTMSアフィリエイトであるリンクシェアのURL生成には対応してないだろうし。
 ていうかリンクシェアの使いにくさはどうにかならんもんか。

01:38 >futami< うし、NowPlayingをブログに表示するようにできた はず
01:39 >futami< 以前のWinAMP用をカリカリ改造したら割と安易にできた
01:39 >futami< ういす 珍しくJavaScript実装なので大丈夫かなと
01:39 >futami< >対更新チェッカー用

 既に実装していた「web上の受け側CGI」は大きく改造しないようにした。iTunesBloggerの送信URL設定がフレキシブルで、WinAMP版Now Playingと同じデータ構成(フォーム内容)にカスタマイズできたのが幸いして、今後もしWinAMPのNow Playingを復活することがあっても(ウェブページへの埋め込み方法自体を変えなければ)書き直さなくてもよさそう。
 ウェブページへの埋め込みは前回のServer Side IncludeからJavaScriptへと変更した。当時と違って日に何度も巡回している複数のアンテナがいるから、曲が変わるだけで更新扱いになるのを避けたいという理由。自分はJavaScript無効にしてるくせになあ。

01:57 >futami< iTunesBloggerの「NowPlaying」でいいところー
01:57 >futami< 曲を止めて、また再生しても情報は再送しないところー
01:58 >futami< だめなところー
01:58 >futami< 曲が始まってから情報送るまでのタイムラグが2秒ほどで固定なところー
01:59 >futami< ザッピングすると全部曲が送られちゃうー

 これはまあ、さほど大きな問題でもない。でもユーザ側で設定できるようになれば素晴らしいところ。それよりもiTunesの起動・終了に連動しない方が問題だ。
 データ取得のためiTunesをフックしているのか、iTunesBloggerを常駐したままiTunesだけを終わらせようとするとアラートが出る。ここはなんとかiTunes本体に連動してもらいたい。それが無理なら、ワンクリックかホットキーでフックを解除(iTunesBloggerをDisableに)できるようにすべきだな。

02:00 <Mubou-an> ……しかし 別になにも現在再生中の曲をアピールしたい相手なんかいねえ気がしてきたw
02:00 >futami< それは言わない約束!(つД`)

 いやホントに。

02:06 >futami< (そしてアポストロフィの変換を忘れててJavaScriptエラーでまくりな罠
02:09 >futami< (日本語も化けてんじゃん_| ̄|○

 SSIからJavaScriptへと変更したせいで色々と問題が。
 まず.js自体の文字コード。そして曲データ中に含まれるダメ文字への対応。既に動いていた環境を弄ってるから細々とした調整が必要になるのは仕方ないが、アバウトな性格にはそれがめどいさん。でもここまできたらやるしかない。
 iTunesから送られてくる曲データ(多分UTF-8)と見出し文字を書き込むCGI(Shift_JIS)とブログ本体(EUC-JP)の食い違いを適当に調整。アポストロフィは数値実体参照に置き換え&amp;#39;)。セクションタイトルの“最近聴いた曲”という文字列は面倒なので英語にしてしまった。
 ほかのセクションタイトルをわざわざデフォルトの英語から日本語に変更した経緯があるので(Latest Entries→最近の記事など)ちょっと悔しいが、当時の思い入れもいまや薄れているのできっとすぐ忘れるだろう。こうしてトップページはカオス化していく。いつものことだ。

02:44 >futami< うっし 超適当に日本語対応
02:44 >futami< さてアポストロフィか
02:52 >futami< よし対応
02:52 >futami< 半年後に同じ事やれと言われても忘れてるな絶対に

 でも面倒だと思ったら手を付けなきゃいい話であって、そのへんは仕事と違ってお気楽だ。実際お仕事となったら(コーディングする仕事じゃないけど)、作業自体の遂行より「どう進めてどうなったか」の記録ととりまとめの方が重要だったりするからねえ。特に組織の中にいると。

02:58 >futami< 私もAmazonからちっちゃいジャケ写引っ張って来れんか模索中

 変に高機能版を見てしまったせいで色々考えてしまう。既にxexcelを使ったミニジャケ付きアルバムリストはできているので、そのうちこちらも何とかしたい。ただスペース的に難しいような気もする。
 レイアウトまで弄り出すとsbのテンプレート強化懸案にぶつかってしまうので避けたいのだが。

03:11 >futami< iTunesでリップし直したやつは半分ぐらい直リンクコードが入ってません_| ̄|○
03:11 >futami< ID3コメントでasin:*******と入れるだけのことですがー
03:13 >futami< ていうか本当はiTMSアフィリエイトで曲単位の狙い打ちしたいのに

 これは徐々に埋め中。というか抜けているのは最近iPod用に再リップした60曲ほどのことで、以後アルバム単位でAACに入れ替えていくのならさほどの手間でもない。はず。
 という感じでNow Playing導入終了。最近聴いた100曲も動きだし。
 疲労感が増すから「何のために」とか聞かないように。