XBMCのScraperを作ろうとして、まあ動かなくもないものはできたものの、どうもすっきりしない感じでした。
XBMCの主要な機能の一つにメディアライブラリがありますが、利用するにはScraperと呼ばれるメディア情報を取得するアドオンの設定が必要です。
Scraperは、メディアの情報を何らかのWeb検索を通じて取得します。
機能すれば便利そうなのですが、今のところ日本語の情報を取得するアドオンがないようです。
それなら作ってみようかと思い、以下のWikiページを参考に作り始めました。
How-to:Writing Media info scrapers
XBMCのScraperは、正規表現パターンとキャプチャでWebサイトを解析します。
Scraper自体はXMLファイル一つというDSLのような構成になっています。
以下画像直リンク。

とりあえずシンプルに作ってみたものの、どうも動かない。動作確認をするためのScrapというツールでは動くのに。
仕方がないのでリポジトリを見ると、Scrapは既に削除されてobsoleteになった様子。
他のScraperを見ると、CreateSearchUrl が返す文字列はXMLに変更されたようで、 url タグで囲むとXBMC本体でも動きました。
また、配置も xbmc/system/scrapers/videoではなく、addonに移ってaddon.xmlが必要になったようです。
さて、とりあえず動いたものの文字化けしていてタイトルが読めない状況だったので、xml の encoding を指定してみるもうまくいかず。
再びリポジトリの xbmc/addon/Scrapers.cpp を見ると、ASCIIとUTF-8しか考慮してなさそうなコードだったので、一旦諦めて保留することに。
また、別のサイト向けのを作れないか見ていると、文字コードはもんだいないものの製品タイトルの文字列が character entity reference になっていて挫折。
あ、でもそのままXMLに入れれば動いたのかもしれない。
いずれにしても、ファイル名でWeb検索してDBに登録するという方法はあまり良くない気がする。普通は素直に NFO ファイル作った方がいいか。
いろいろと難しいものです。
追記
それにしても、正規表現でscrapingするというのはもはや古いアイデアだけど、かといってBeautifulSoupやその他であらゆるサイトに対応できるかというとそれも難しそうだ。
本来は、xbmcのようなメディアセンター自体でこういうことをするべきでなく、外部のWeb APIを参照するだけの方がシステム的にはいい気がする。でもWebサイトの利用規約の関係もあるので私は作りたくないな。。。
