TL;DR
https://www.apple.com/jp/shop/retail/pickup-message?parts.0={製品の型番}
でjson形式で取得できます。
はじめに
どうしてもPowerbeatsProが発売日当日に欲しかった
Apple傘下のBeats by Dreから7月19日にPowerbeats Proという完全ワイヤレスイヤホンが発売されました。 特徴としては、- 左右独立Bluetooth接続のイヤホン
- 専用ケースに入れるだけで充電(24時間持つ)
- 新型AirPodsと同じチップを採用している
- iPhone・iPad・Apple TVなどに瞬時に接続・切り替えができる
- カナル型
- 色が黒
人気すぎて家電量販店経由は「メーカーに問い合わせ中」、AppleStore経由でも注文してから3週間待ちと大変な状態になっていたのです。(そもそも海外の品薄の影響を受けて日本の発売が2ヶ月延期されてた) しかし、Apple製品には「ピックアップ」というどんなに人気でも発売日当日に手に入る謎制度が存在します。
これは、発売日当日の朝にAppleStore(Web)に突然在庫が降ってきて、それをAppleStore受け取りにすると他の人の予約をすっ飛ばして当日に手に入るというものです。
このピックアップの在庫というのはかなり少ないらしく、6週間待ちだった「AirPods」の発売日には3分で無くなったとかなんとか。
なんでか分からないけど発売日当日に欲しかった僕は、なんとかして在庫の情報を瞬時に入手して当日に入手したかったのです。
取得方法
APIがあったのでそのまま使いました。(Chromeの開発者ツールでNetworkのタブを眺めてたら見つけた) https://www.apple.com/jp/shop/retail/pickup-message?parts.0=MV6Y2PA%2FA&searchNearby=true&store=R224
parts.0=MV6Y2PA%2FA
が製品の型番(MV6Y2PA/A)、searchNearby=true
が周辺のストアの情報も一緒に取得するかどうか、store=R224
がAppleStore表参道のストアIDです。
あとはこれをごにょごにょしてtraQ(サークル内の独自SNS)にwebhookで投稿するようにしたら在庫が監視できますね。Rubyで15分くらいで書きました。 あとはこれを自鯖のcronで定期的(5分おきとか)に実行するだけです。
実践
ピックアップの在庫更新は6時ぐらい説と8時ぐらい説と10時ぐらい説があったので、頑張って発売日当日の5時50分に起きて監視してました。転機があったのは7時50分ごろ、三週間待ち(8月10日)だった在庫が本日になりました。
(Twitterでは同じくウォッチしてる人がいたりしてちょっとしたお祭りになってた。) 11時あたりから元に戻りはじめ、12時には通常状態(3週間待ち)に戻りました。Powerbeats Proのピックアップ予約来てますよ〜〜 pic.twitter.com/B82ObbyBNA
— nagatech (@nagatech_i) July 18, 2019
結果
果たしてピックアップで当日分の在庫を無事に確保できたのかというと… AppleStoreで買ってません() 実は予約開始日にすばやく予約を済ませてたおかげで、発売日当日に届くことが当日6時の段階で判明したからです。(あと2時間予約が遅かったら「メーカーに問い合わせ中」になってたらしい…)
というわけで別にこんなことしなくても発売日当日に手に入ったとさ。Powerbeats Pro無事に発売日に届きました〜!
— nagatech (@nagatech_i) July 19, 2019
参考までに、ビックカメラで予約開始日の早朝にネット予約しました#PowerbeatsPro pic.twitter.com/uy3KuNihZw
おしまい。