読了目安: 約4

ウェブサイトのサードパーティクライアントを作ることについて

先日、Twitterでちょっと面白い炎上を見かけた。サイゼリヤのWeb注文ページの非公式クライアントを作った人と、CLIツールを作った人が、それぞれボコボコに叩かれていた。

眺めながら、正直「え、なんで?」と思った。


何が問題にされたのか

批判のコメントを読み漁ってみると、大体こんな感じに分類できる。

  • 「公式じゃないものを勝手に使うな」
  • 「サーバーに負担をかけるな」
  • 「なんか気持ち悪い」

ただ、整理してみると、法律の話・マナーの話・なんとなくの感情が全部ごっちゃになってることに気づく。それぞれ分けて考えた方がよさそうだ。


法的な観点から整理する

結論から言うと、条件次第でセーフ寄り、ただし無条件にシロとも言えない。

まず、日本にはWebスクレイピングそのものを禁止する法律は存在しない。ただ、周辺のリスクはいくつかある。

不正アクセス禁止法:他人のアカウントでログインしたり、認証を不正に突破したりする行為がこれにあたる。自分のアカウントで普通にログインした上でUIを自作する分には問題ない。そもそも今回はそういう話でもないが。

著作権法:画像やテキストをコピーして再配布するのはアウト。ただ、UIを自分で作って「表示する」だけなら話は別だ。

利用規約違反+大量アクセス:利用規約は法律ではなく契約の話だが、規約違反の状態で大量アクセスをかけると、民事上の不法行為や、場合によっては業務妨害として問題になる余地がある。

アメリカでは LinkedIn vs. hiQ Labs という裁判で、公開情報のスクレイピングは違法ではないという判断が出ている。日本法に直接当てはまるわけではないが、「公開されているHTMLを読む行為」の性質を考える上での参考にはなる。ブラウザがやっていることと本質的には同じだ。

まとめると、サーバーに過負荷をかけず、他人の認証を突破せず、コンテンツをそのまま再配布しない、という条件を満たせば、法的にはセーフ寄りの話になる。「絶対アウト」という断言は、少なくとも根拠がない。


批判側の「まともな懸念」も一度受け止める

ここで一つ正直に言っておきたい。批判の全てが感情論かというと、そうでもない。

APIを公開していないサービスをスクレイピングするのは、ある意味で「設計者の意図を無視している」とも言える。非公式クライアントはサービス側の仕様変更で突然壊れる。それを知らないユーザーが使えば、体験の質が下がる。個人の小さなツールは問題なくても、それが広まれば負荷のスケール問題になる可能性もある。

こういった懸念は、理解できる。

ただ、だからといって「作るな」にはならないと思っている。壊れるリスクを理解した上で使うのは自己責任だし、負荷の問題はアクセス頻度の設計で対処できる。設計意図を「無視している」かどうかは、公開されているHTMLを読む行為をどう定義するかによる。

懸念と、禁止の根拠は、別の話だ。


エンジニア文化として見ると

非公式クライアントは、エンジニアの世界では割と「普通のこと」だ。

なぜ公式があるのに自作したくなるのか。一言で言えば、自分の手で制御できる方が気持ちいいからだ。UIのどこに何が表示されるか、どんなショートカットで操作できるか、どんな形でデータを扱えるか。それを自分で決められる。CLIツールの場合はさらに、スクリプトに組み込める、自動化できる、という実用上のメリットもある。

初期のTwitterは、サードパーティクライアントが盛り上がったことでAPIの整備が進んだ。TweetDeckも元々はサードパーティ製だ。「使いにくいUIを自分で直す」という行為が、結果的にサービスの改善につながった例は珍しくない。

「自分が使いたいものを自分で作る」、それがOSSやハッカー文化の基本精神だと思っている。


なぜ炎上したのか

技術を知らない人から見ると、スクレイピングや非公式クライアントは「ハッキング」に見える。その感覚は理解できる。でも実態は、ブラウザが読んでいるHTMLを別の形で読んでいるだけだ。泥棒でも不法侵入でもない。

ただ、今回の炎上にはもう一つ気になる構造があった。

「わかった気」が一番厄介

バイブコーディングという言葉が流行った。AIにコードを書かせて、動けばOK、というやつだ。それ自体を否定する気はない。入り口として悪くないし、作りたいものがある人が使う分には全然いいと思っている。

問題は、「動いた」と「わかった」を混同してしまうケースが増えてきたことだ。

スクレイピングのコードをAIに書かせて動かせた、でも「なぜそれが法的にセーフなのか」「どこからアウトになるのか」は全然わかっていない、そういう状態の人が、今回みたいな炎上に加わって「これは犯罪ですよね?」と断言し始める。そしてそれが拡散される。

「AIに聞いたらスクレイピングは違法って言われた」、「なんか不正アクセスっぽい」。薄い根拠による断言が、火を大きくしていく構図。

怖いのは悪意ではなくて、中途半端な理解による自信だ。技術ってのは、わかればわかるほど「これはグレーだな」「ケースによるな」という解像度になっていく。断言が減って、条件が増えていく。入り口に立ったばかりの人ほど「絶対アウト」と言い切ってしまいがちなのは、どの世界でもそうだろう。


それでも自分は賛成派

「やめろ」という空気は、純粋に損だと思っている。

趣味で作ったツールは誰への攻撃でもなく、自分の体験をよくするための工夫だ。文句を言うより先に「じゃあ作ろう」と動ける人間は、そうじゃない人より間違いなく伸びる。

理想を言えば、サイゼリヤの中の人が「面白いじゃん、うちに来ない?」ってなる世界線が一番かっこいい。実際にそういう採用の話、たまに聞くし。


まとめ

法的には条件次第でセーフ寄り、文化的にはエンジニアの世界では普通のこと。炎上の多くは印象論で、そこに「半歩だけ踏み込んだ人たちの断言」が重なって火が大きくなった。

技術のグレーさを正確に扱えるリテラシーが、今の時代むしろ一番問われているんじゃないかと思う。「絶対アウト」と言い切れる気持ちよさより、「条件による」と言える誠実さの方が、長い目で見て信頼できる。

黙って使いにくいUIに耐えるより、「じゃあ自分で直すか」と動いてしまう人のことを、自分はかっこいいと思う。そしてそれを叩く前に、自分の理解を一度疑ってみてほしいとも思う。