2006 . 10 . 31

「livedoor 番組表」の不具合

しばらく前に、この サイトで公開・配布している、Rainmeter用のスキンで「livedoor 番組表」を表示する「ktv-07__livedoor」について、利用者の方より不具合報告をいただきました。




2006 . 10 . 21

Rainmeterスキン「A1」 V1.6 アップデート

■ 変更点

今回のバージョンでは、スクリプト側でRainmeterが起動しているか確認し、起動している時にのみコマンドを送信するようにしました。



2006 . 10 . 12

A1についての補足

■既知の問題

現状では動作に不安定な面が見られます。確認している不具合についていくつかまとめてみます。

1) エラーによる強制終了
それは、アプリケーションエラーとランタイムエラーといったかたちで発生することが多く、どちらもINIの読み込みに失敗しているものと思われます。
それがRainmeter側の問題の場合とAMIP側の問題の場合とがあり、前者の場合、AMIPがINIを出力するタイミングとRainmeterがリフレッシュされるタイミングが衝突した際、Rainmeterのアプリケーションエラーにつながるようで、後者の場合、何らかの理由でAMIPが誤作動して不適切な(空の)INIを出力した上で、それをRainmeterが読み込んでしまいエラーになるのでなないかと考えられます。
ただ、、これらの現象は決まった条件で一様に起こる現象ではないため、はっきりとした原因はつかめていないのが現状です。
対処療法的ではありますが、前者のケースの対策として、Rainmeterのリフレッシュコマンドをスクリプト経由で行い、AMIPの出力が完了するまでコマンド送信を500ミリ秒の遅らせるようにしてみました。
結果、アプリケーションエラーというかたちで発生するエラーは少なくなったと思います。

2) A1はAMIPに装備された文字列処理に関するさまざまな関数を使用して出力させていますが、これらの組み合わせとある特定の文字が誤動作を引き起こすようです。現在確認しているのは、タイトルに「ポ」、「竹」という文字が含まれている場合、一部が正常に出力されません。

3) 画像の自動保存機能にリネーム用の文字列を送る際、AMIP側であらかじめファイル名に使えない文字を空白に変換処理しています。しかし、上の 2) の例のようなことが原因でそのような文字が出力されてしまうことがあります。その場合、保存機能は働きません(というか、働かなくした)。

4) 画像取得サイトの3番目にGoogleImagesがセットされていますが、Googleは画像のあるサイトをリンクしているだけで、実際のダウンロード元は個々のサイトになります。サイトによってはすでにファイルが存在していないケースもあり、取得できない場合があります。こういったかたちで画像取得に失敗すると、取得の際に表示されるメーターは止まったままになります。
また、 GoogleImagesからの画像取得では、あえてJPG画像に限定せず、縦横が同じサイズの画像であればすべてその対象にするようにしていますが、稀に拡張子がなかったり間違っていたりすることがあります。それでもダウンロードはしますが、最終的には表示できません。

2006 . 10 . 10

Rainmeterスキン「A1」 V1.5 アップデート

仕様を大幅に変更しました。

合わせてページの方も更新しましたので、すでに旧バージョンを使用されている方も、改めて目を通されてほしいと思います。

■追加機能
1) 3つのサイトをリレー方式で巡回して画像を取得する
2) 取得した画像をリネームして自動的に保存フォルダに保存
3) Webサイトから画像取得する前に保存フォルダを検索し、目的の画像があればその画像を使用し、Webからのダウンロードは行わない。
4) WINAMPの状態に追従してスキンの形状を変化

■変更点
1) AMIPのプリセット機能の使用を止め、直にテンプレートを書き換えて使用するようにした
2) AmazonとGoogleMusicSearchから取得する画像をサムネイルサイズから標準サイズにした
3) 再生および曲の更新時に行われるRefreshコマンドの送信を外部スクリプト経由で行うことにした

2006 . 10 . 01

Amazon Webサービス

先日公開したA1「アルバムジャケットを表示するスキン」で、画像の取得元としてAmazon.co.jpを利用しています。
画像の取得方法は、単に一般のWebページにアクセスしHTMLからパースして画像のURLを抜くというものです。


しかし、AmazonにはAWS「Amazon Webサービス」という便利なものがあります。利用者のリクエストに対しXMLを出力してくれるサービスです。


http://webservices.amazon.co.jp/onca/xml?
Service=AWSECommerceService&
SubscriptionId=1AR30AGGGMJRGP5EJ302&ItemPage=1&
Operation=ItemSearch&SearchIndex=Music&ResponseGroup=Images&
Keywords=Red+Hot+Chili+Peppers+-+Stadium+Arcadium

(↑URLは改行してますが本来は一行です)


例えば上のように、Keywords=に続けてアーティスト名とアルバム名をクリエとして追加させてリクエストすれば、その情報ページを出力してくれます。この例では画像情報に焦点を絞ってリクエストしているので、他の余計な情報が含まれず、HTMLからパースするより非常に容易です。また、HTMLと違いレイアウトの変更によって取得に失敗するといった心配もありません。


そんな訳で、こういうスキンでの利用には断然このサービスを利用した方が有利ですので、早速こちらから画像の取得を行ってみようと試してみました・・・が、結局断念。


理由は文字コードによるものです。
AWSのリクエストの入力はUTF-8のみになっていますが、RainmeterはUnicodeを含む文字を表示することはできません。(WebParserでパースすることはできるが)なので、英数字のみの使用であればほとんど実害はないかもしれませんが、日本語を含む文字をRainmeterで表示できる状態でAWSにリクエストすれば、文字化けで「該当データなし」になり、逆にリクエストできるかたちにしてやれば、今度はRainmeter側で文字化けが起こるということになってしまい、これでは元も子もない。


(そこでID3v2は表示用にJIS、ID3v1にリクエスト用にUnicodeにしたらどうだろ、としばし妄想するもアホらしくなってやめる・・・いちいちそんな面倒くさいタグ私は付けたくありません。)



Rainlendarは最近のバージョンでUnicodeに対応しましたし、WINAMPも最近のバージョンでUnicodeのファイル名やタグを表示できるようになったようで、Rainmeterも次バージョンでUnicodeに対応してもらいたいものです。



2006 . 09 . 23

A1 各部修正へ

「アルバムジャケットを表示するスキン」として、先日リリースして間もない「A1」ですが、気になるところを修正して早々ですが新しいバージョン1.1にアップします。

すでに使用されている方もお手数ですが、新しいバージョンに変更してくださるようお願いします。なお、変更点はAMIPで使用される「Plugin.ini」にも及ぶため、こちらのファイルもあわせて変更されることをお忘れなく。


【変更内容】


1- カウント表示をRainmeter側で実装


前バージョンでは「カウント/曲時間 [ 曲番号/曲数 ] 」という風に表示される情報は、すべてAMIP側で取得させそれをテキストに出力し、Rainmeter側でそのテキストを参照するという仕組みを取っていました。
これは実に回りくどいやり方ですが、Rainmeter側でこれらを実装させようとすると、それ相応Measure数を作ってやる必要が出てくるため、それよりはずっと効率的なんではないかといった考えからでした。


しかし、私の環境ではこれが悪さをして、エクスプローラ(ファイラー)の表示が更新しなくなるという不具合を引き起こしました。
原因はカウント情報の取得で、AMIPでこのような動的データの取得の可能にさせるため「Update file every second」というオプションを有効にして、毎秒、出力ファイルを更新させるようにしていましたが、これがよくなかったようです。


そこでカウントは順当にRainmeter側で取得させることとしました。カウント以外は毎秒変化するわけではないので、AMIP側でタグ同様に取得させれば、Rainmeter側での負担も軽減され、何よりAMIPに別途ファイル出力させることがなくなったので、全体的に見れば以前よりずっと効率的かつクリーンになったと思います。


2- タグを持たない曲の表示方法を改良


前バージョンではタグを持たない曲はWINAMPのデフォルト・フォーマット(Artist - Title)で対処するという方法を取っていました。しかし既存の状態では「Artist - Title」が同じ行になってしまうので、どうしても収まりきらずタイトルが尻切れトンボになってしまうことがほとんどでした。

前回も言及しましたが、AMIPには強力なFormattingの機能が備わっています。これを利用しない手はありません。


そこで今回は正規表現を使って取り出す文字列部分を指定することで、「Artist - Title」のハイフンの前後でArtistとTitleを切り分けることで、タグがある場合とほぼ同様に各行で別々に表示することができました。


3- 「Plugin.ini」の内容を修正


前バージョンの「Plugin.ini」は、デフォルトの設定をそのまま残している部分がありましたが、それらの多くが不必要な設定であったり、また不具合を引き起こす要因になりうる設定もあったため、これらを改めました。


※一部、利用者の方からの情報を参考にさせていただきました。ありがとうございました。

 

 

今回バージョンアップしましたが、残念ながら気になるところがすべてクリアされた訳ではありません。おそらく、今後も(飽きない内は)ちょこちょこ修正していくかと思います。


今更ながら「ベータ版」という名目でリリースするべきだったかなと悔やんでます。
、がしかし、ウチで配布しているものは、すべてベータ版同然で動作確認甘々ですので、そこら辺は何卒ご容赦を・・・。



2006 . 09 . 19

アルバムジャケットを表示するRainmeterスキン



久々にスキンをリリースしました。画像入りの完成形スキンのリリースはPictureBrowser以来です。


今回作成したのはWINAMPコントロールと曲情報に加え、アルバムジャケットの画像をネットより取得して表示するというものです。このようなWidgetは他に数多くあるものの、Rainmeterのスキンではあまり見ないので作ってみました。


実際作る前から分かっていたことですが、これはどう考えてもRainmeterだけでできることではありません。そこで最初は簡単なスクリプトを作って試してみたものの、うまくいきません。一番の問題は、曲が切り替わる毎にスクリプトを動かすコマンドを送って、それにあわせてスキンを更新という具合にしたいのですが、通常の場合のように一曲単位で分かれている場合は曲と曲の変わり目がRainmeter側で測定することができるため、このようなことが可能になるかもしれませんが、ネットラジオのように曲同士がつながっている場合には通用しません。そこでAMIPというWINAMPのプラグインの手を借りることにしました。


このAMIPは元々はWINAMPで再生中の曲をmIRCでIRCのコメントとして融合させるためのプラグインでしたが、曲の切り替えタイミングで任意のテンプレートを出力したり、バッチコマンドを送ったりと最近では汎用的なプラグインとして実装されています。今回のスキン作りに正に打ってつけのプラグインといえます。


今回のスキンの動作のカギとなるのがAMIPの機能のひとつで、AMIPの変数を仕込んだテンプレートをあらかじめ用意しておいて、曲の変わり目にその変数をアーティスト名や曲名などに置き換えて、指定したファイル名で出力するというものです。さらに出力後、スキンにコマンドを送ってリフレッシュさせることでこのスキンの機能が実現されるようになります。

これ以外にも、AMIPは実に多くの機能を備えていて、プレイヤー情報の取得から出力、コマンド送信と何でもやってこなす実力があります。どうせ外部プラグインの力を借りるなら、AMIPにできることは極力AMIP側に任せてた方が得策と思い、今回はプレイヤー情報の取得などはAMIPで取得したものをRainmeterで表示するというようにしています。
これはRainmeter側にはかなりの負担軽減になります。

RainmeterでWINAMPの情報を取得するには必然的にMeasureを作る必要がありますが、AMIPにそれを分担させればRainmeter側はそれを表示させるMeterだけで済んでしまいます。
プレイヤーの制御もAMIP側でできるよう(未確認)ですが、今回はボタン表示との兼ね合いもありRainmeter側でやった方が賢明と考え、そうするようにしました。


AMIPの多機能ぶりはさておき、特に出力に関する機能は強力です。例えば、指定したタグがその曲に付いていればタグどおりに、付いていなければ違う形式で出力するという<TRUE | FALSE>だとか、もしアーティスト名がXXだったらOOで出力するとか、さらには正規表現まで使用し強力な置換えをすることまで可能です。

中でもURLエンコードして出力してくれるのには関心しました。WebParserで情報を取得する際、URLにスペースや日本語が含まれていると受け付けないサーバーもあるため、この機能はとても有り難いです。


というわけで何とかこんな形で完成することができました。が、あまり十分な動作テストを行っていないので今後どのような不具合に遭遇するか一抹の不安がありますが、現状目立った挙動は確認してません。


今後の基本機能の改良点として、現状の仕様では同じアルバムの曲を聴いていても、曲が切り替わるたびネットにアクセスして、再度同じ画像を取得してきて非効率ですので、できれば、一度表示した画像はローカルに保存するようにして、もしローカルフォルダになければ、ネットから取得という具合にできるような構造にしたいと思います。

また、今回はプラスαの機能として検索リンク機能を実装しましたが、他にも動的な曲名やアーティスト名といった情報を利用して何か面白いことができないか模索しています。



2006 . 08 . 29

Rainmeterマニュアル -導入編-

当サイトに検索エンジンから訪れる訪問者は、圧倒的にRainmeterというキーワードからという方がほとんどで、予備知識のない方は少ないかと思いますが、そうでない方のためにRainmeterというソフトについて簡単な説明と、導入手順を解説したページ設けました。


Rainmeterマニュアル -導入編-


本来順序としては、こういうページは最初に作るべきですよね。



2006 . 08 . 06

音楽チャートを表示するRainmeterスキン

音楽チャートの情報を表示するRainmeterスキンをいくつか作りました。

 

 

 

kns-34__hmv-chart

   HMV
   デイリー音楽チャートを表示


 

 

 

kns-35__tower-chart

タワーレコード 
   ウィークリーチャートを表示


 

 

 

kns-36__billboard-chart

ビルボード
 HOT100 チャート を表示


 

 

 

kns-37__hit40uk-chart

hit40uk
  UKチャートを表示




2006 . 08 . 04

ポッドキャストの情報を表示するRainmeterスキン

音声・動画ポッドキャスト・ディレクトリサービス ZapZap から情報を取得するスキンをつくりました。


kcs-08__zapzap



表示されているのは番組名です。その行をクリックすることでコンテンツに関連付けられたアプリケーションによって再生することができます。

このタイプのスキンは今まで再生するアプリを、INIファイル側で指定してやる仕組みを撮ってきましたが、今回は再生するファイル形式が多岐にわたり特定することができないため、それはOSの方に任せることにしました。

このサイトは音声、動画共に「カテゴリー」、「ビュー」、「コンテンツ」で指定することができます。
デフォルトの設定では対象URLは「ホーム」になっていますが、好きなジャンルのURLに書き換えることで、ジャンル指定を反映することができます。





kns-33__tsutaya-ranking



もう1つは、TSUTAYA online からレンタルDVDランキングの情報を表示するスキン。

こちらはクリックで該当ページをブラウザで開きます。