« マスコミがマスゴミなのは、そんな大した理由があるわけじゃない説(BlogPet) « » 変更(BlogPet) »

2009年02月07日

 Pixivの画像をFlashとかで取得する方法などこのエントリーを含むはてなブックマーク

ちょっと前にpixivカードバトラーβという作品を作りました。
http://pixivcard.sipo.jp/
Pixivの画像を読み込んで、その画像の内容を読み取って能力値にするっていうものです。
画像解析のほうもなんちゃってで色々やってるんですが、まあそこは大方予想付くと思うので、今回はpixivの画像をどうしているかって話をメモ程度に。

チャレンジしたことのある人なら知ってると思うんですが、Pixivの画像ってがっちがちのガードがかかっていて、生画像にアクセスするのは面倒です。
一応それ用にアカウント取って、うにゃうにゃーっとやると拾えるわけなんですが、面倒だしあからさまに規約違反ですし、pixivサーバーに大変よろしくないっぽいので良い大人の皆さんはやめましょう。
こういうガードの固さが、Flickrとかに比べてあまり外部との連携が無い理由なんで、もったいないなぁって思ってるんですけど、サーバー事情とかあるんでしょうがないですよね。
まあそんなんで、僕のほうはさっさと生画像は諦めて、サムネイル画像とキャプションの読み込みだけを実装しました。
以下、細部は省きつつ、読み取りの大まかな流れだけを書いておきます。
キャプションとサムネイル画像だけなら、pixivの公開している外部貼り付けツールと同程度の負荷だと思いますが、これをクロールするような仕組みだとpixivのサーバーに大きな負荷をかける恐れがあるのでご注意を。

pixivの画像は、ユーザー名に関わらず通し番号で管理されています。
ユーザー向けの画像ページは
http://www.pixiv.net/member_illust.php?mode=medium&illust_id=[ID番号]
ですが、非ログインユーザー向けの画像ページは
http://www.pixiv.net/index.php?mode=medium&illust_id=[ID番号]
になります。
それぞれユーザーのログイン状態でリダイレクトするので、いちいちログインを切り替えるのが面倒なら、Chromeのシークレットウインドウを使うことで簡単に非ログイン状態を再現できて便利です。

非ログインユーザー向けの画像ページに、キャプションが表示されるので、これをスクレイピングします。
この画面、あまり固定されているわけではないようで、でっかい広告が挿入された影響で、スクレイピングが失敗したりしました。
(RSS等が欲しいところです。後で記述します)
このページで、サムネイル画像のURLもわかります。
サムネイルは
http://img[サーバー番号].pixiv.net/img/[ユーザー名]/[サムネイルID]_s.[拡張子]
となっています。
たぶん結構不規則なので、先ほどのページから取らないと苦労しそうです。

ここまで分かれば、あとは自鯖を挟んで取得すればFlashで読み込めます。
結構原始的な方法ですね。


負荷とAPIについて。

pixivが画像取得に関して厳しいのは知っていたので、カードバトラー公開直後にtwitterでメッセージを送ってみたんですが、「面白いですね」の一言を頂き、胸を撫で下ろしました。
たぶん、クロールしなかったのと、外部向けサムネイルだったことが良かったんだと思います。

ただ、最初のスクレイピングのところで無駄があるというか、本来必要ないデータまで読み込んでるし、そういうためのページでもないので、ちょっと気になっています。
pixiv側がAPI(サムネイルとキャプションが画像IDから取れるとか)を用意してくれれば、こういう無駄なアクセスもしなくて済むし、もっと色々なサービスも出てきて、pixivもみんなもニコニコだと思うのですが、どうでしょうか。(タグや閲覧数が取れたらもっと面白そう。キャッシュの関係上1日遅れとかになったとしても有用だし)
とはいってもpixiv的には、どっちかっていうとAPIへのアクセス過多のリスクのほうが嫌だし、対象ユーザー的にも合ってないので、メリットが薄いんだろうなーと思っています。


文化について。

pixivの独特な反応についても書いておきます。
実は文句というか進言を頂いていまして、伝聞になっちゃうんで正確性が怪しいんですが、曰く「pixivの外の他人の絵をカード化したくて、イラストサイトから勝手に絵を持ってくるやつが出てきたらどうするんだ」というもので、僕としては、え?そりゃその無断転載する人が悪いんでしょ?と思ったのですが、そういう意見そのものが僕たち側の人間とは文化の違いを感じさせるところがありました。
古くは「無断リンク禁止」とか「キリ番踏み逃げ禁止」といったような、イラスト系サイトには独自の文化圏が存在していましたが、pixivにもそれに近いものが存在しているようです。
イラスト系サイトからのユーザーが多いので当然といっちゃ当然なんですが、pixivというサービス自体は「ギーク側」の出のような気がしていたのでちょっと意外でした。
とはいえイラスト式のmixiという側面もありますし、またユーザーが多様なサービスなので、一部にはそういうものもあるものでしょうね。
郷に入れば郷に従えなので、僕としてはそういう文化にはできる限り配慮しつつ、思いついたオモシロツールを作っていきたいと思います。

コメント

6012   投稿者: BlogPetの麦茶 (2009年02月07日 14:18)

画像ってなに?

6192   投稿者: st (2009年03月25日 04:33)

麦茶・・・

コメントする

(サーバーが見つかりませんの表示になることがありますが、
正しく投稿されてることが多いです。
落ち着いて確認してみてください。)

はてなブックマーク