前回の日記で「最近個人開発をよくやるようになりました」と書いたのですが、そのうちの1つの話です。
※成人向け作品を扱うサイトの紹介です。この日記に成人向けの画像はありません。
同人ゲームを買うとき、FANZAとDLsiteがそれぞれでセールやってるので片方で作品を見つけても「一応もう片方もチェックしておこうかな」ってなるんですよね。
でも、毎回両方開いて見比べるのは面倒
しかも300円セールだって油断してると実は以前100円セールでも売られてた作品だったする。
というわけで価格履歴を見れるサイトを作りました
同人価格DB — FANZA・DLsiteの同人作品 価格推移とセール履歴
FANZA同人とDLsiteの価格を毎日記録して、作品毎に
- 両ストアの今の価格と割引率
- 価格の推移グラフ
- 記録を始めてからの最安値
がまとめて見られます。
SteamでいうSteamDBの同人版的なやつです。

これで「今が最安値」って時に買える。
逆に「前回は半額だったのに今回は30%OFFか、じゃあ待つか」という判断もできます。
一覧やセールのページで毎回ここから集計すると重いので、クロールが終わった後にマテリアライズドビューを作り直して、画面はそれを読むだけにしてます。
一番ハマったのは「同じ作品」を見つける所
FANZAとDLsiteって、共通の作品IDが無いんですよね。
なのでタイトルとサークル名で突き合わせる事になるのですが、同じ作品でもストアによって表記が微妙に違う……。
- 全角と半角 (`?` と `?`、`~` と `~`)
- 伏字の記号 (`●` と `○`)
- `♡` が片方では `(はーと)` や `♪` になってる
- 大文字と小文字 (`COMIC Ver.` と `COMIC ver.`)
- サークル名の表記 (`BULLET` と `Bullet`)
まあ揃えてから比べればいいか、と思ってやってたのですが、緩くしすぎると今度は別の商品がくっつきます。
タイトルの末尾に付いてる `《…》` を「どうせ購入特典の表記だろう」と思って無視してたら、`《総集編》` みたいな版の違いまで消えてて、別の商品が90件くらい1作品にまとまってた……。
表記がもっと大きく違うやつは、毎晩候補を出して、以下を全部満たした時だけ自動で1作品にまとめる様にしてます。
- 同じサークルで、相手が1つに決まる (1対多は触らない)
- タイトルの類似度 (bigramのDice係数) が0.95以上
- タイトルに含まれる数字と、版を表す語が一致する
- サムネイル画像のハッシュ (dHash) の差が256bit中8bit以内
- 定価がほぼ同じ (2%以内)
1つでも外れたら人間(自分)が目で見て判断。
サムネイルが一致してても「表紙を使い回した版違い」ってのがあるので、画像だけだと決められないんですよね。
同じ作品が2つに分かれるより、別の作品が1つにまとまる方が被害が大きい(違う商品の値段が混ざる)ので、迷ったらまとめない方に倒してます。
他にもハマった所
- DMMのWeb APIが新着作品の約25%を返してくれない(品番を直接指定しても0件)
- FANZAのランキングは上位1.5〜2万件より先が実質順不同だった
- AIクローラーにLightsailのCPUバースト枠を使い切られた
特に最近はAIクローラーがマジ多い。最初滅茶苦茶アクセスあるなって思ったら全部AIクローラーでした。
ブラウザ拡張も作りました
で、サイトを作ったはいいけど、毎回サイトを開いて調べるのも結局面倒。
ってことでブラウザ拡張も作りました。
FANZAやDLsiteの作品ページを開くと、価格表示のすぐ下に
- もう片方のストアの今の価格
- 両ストアの価格推移グラフと最安値
- 今どっちが安いか
が出ます。
DLsiteで見てる時に「FANZAの方が安いな」とか、逆に「このままDLsiteで買っていいな」ってのがその場で分かります。
タブを行ったり来たりしなくて良くなった。
同人価格DB 価格履歴 – 🦊 Firefox (ja) 向け拡張機能を入手
是非インストールしてください。chromeの制限引っかからないようにchromeの場合はオプションで成人向けを許可しないと一般向け作品のみになります。
