Geddit開発によるReddit利用禁止
(buzl.uk)-
Redditにアプリ開発が原因でブロックされた話
-
はじめに
- 2023年6月、Redditは新しいAPI料金ポリシーを発表した
- 以前は無料だったが、現在は5,000万回のAPIリクエストごとに12,000ドルを要求している
- これは非商用アプリやボットにとって大きな打撃だった
-
Geddit
- Reddit APIを調べているうちに、URLの末尾に
.jsonを追加するとページ全体をJSON形式で取得できることを発見した - シンプルなJavaScriptライブラリでReddit APIラッパーを作り、これをGedditと名付けた
- 匿名でRedditを読み取り専用で利用できる機能を提供した
- Reddit APIを調べているうちに、URLの末尾に
-
アプリ開発
- HTML、CSS、JavaScriptでネイティブモバイルアプリを開発できるCapacitorとIonicフレームワークを見つけた
- GedditをAndroidアプリとして開発し、GitHubで共有した
- Hacker News、Android Police、Reddit、YouTubeなどで取り上げられた
- GitHub Releasesページで25k以上のダウンロードを記録した
-
終わり
- 複数のバージョンをリリースし、Material Designガイドラインに従ってスタイリングを追加した
- F-Droidストアにアプリを公開した
- Redditからメールを受け取り、商用製品ではなくAPIも悪用していないことを説明した
- Redditの返答を待ちながら開発を中断した
-
GN⁺のまとめ
- この記事は、Redditの新しいAPI料金ポリシーが非商用アプリ開発者に与えた影響を示している
- Gedditは、Reddit APIを迂回して匿名でRedditを利用できるようにしたオープンソースプロジェクトだった
- Redditの対応によりプロジェクトは中断されたが、現在も動作している
- 類似の機能を持つ他のプロジェクトとして、ApolloとJunoがある
1件のコメント
Hacker News の意見
子どもの頃、Reddit は一番好きなサイトで、新しくて面白いサブレディットを見つけては、適当に投稿やコメントを読んでいた
以前はトップページもかなり見応えがあったが、今ではボット祭りであり、プロパガンダ装置のように感じる
まだ使ってはいるが、利用頻度はかなり減り、楽しみのためではなくニッチな技術系サブレディットを読む用途だけになった
公式モバイルアプリは拒否し、Android では Baconreader と Relay を使ってきたが、Relay は API 変更後にサブスクリプションモデルで生き残った
ただし Revanced のおかげで、古いバージョンの Relay にパッチを当てて自分の API キーで無料利用できるようになった
HN はシンプルで、多くの低品質コンテンツをふるい落としてくれるので、技術の世界で何が起きているかを学ぶにはまだ悪くないが、タイトルだけに反応するコメントは増えている
Reddit は Meta のように、アカウントがないとユーザー体験がひどすぎて使いにくくなり、X は完全に使えないようにしている代わりに、少なくともそうでないふりはしない
もっとシンプルなウェブサイトが再び必要だと思うが、そういう構造を作るインセンティブが何なのかはよく分からない
以前は多くのサブレディットが名前に合った内容を扱っていたが、今では90%が米国政治コンテンツで、r/pics でさえ例外ではない
投稿だけでなくコメントにも政治的立場が絶えず入り込み、政治と関係のない投稿でもそうなので、読むのが疲れる
経営陣や幹部が自分の影響力を示し、報酬を正当化しようとしてプラットフォームを壊す典型例のように見える
ボットとプロパガンダは文字通りどこにでもあり、プラットフォームは悪化し続けているが、ある程度の中毒性があることは認める
HN が概して政治を避ける場である点はかなりありがたい
人々が自分の地域の市長候補の公約も知らず、そもそも市長が誰なのか、市議会が何をしているのかさえ知らないことが多い一方で、地政学や国内政治をファンダム同士の争いのように語るのにはうんざりしている
これは地域に根ざしていた従来の新聞が死に、本質的に世界規模のインターネットメディアがそれに取って代わったことから来ていると思う
イタリア人の大半は、自分の町で起きていることより米国政治のほうをよく知っているようで、完全に逆転してしまっている
最後の一撃はもちろんAPI 騒動だったが、その前から、いくつもの Reddit コミュニティを本気で大事にしていた人たちが、会社の小細工や無関心に耐えきれず、諦めて去っていく様子が見えていた
その間も Reddit は成長し続けたので、スプレッドシート式の経営視点では何の問題もないように見えただろう
しかしその成長の大半は、どのソーシャルプラットフォームでも見られる低努力コンテンツであり、Reddit を特別なものにしていた固有のコンテンツは、何年もかけて量・質ともに少しずつ減っていった
自分で必要だったので作ったサービスだ
Reddit から抜け出すのを助ける fediverser [0] プロジェクトを紹介する時期が来たように思う
Reddit アカウントで Lemmy インスタンス [1] に登録させ、対応する Lemmy の代替コミュニティを自動購読させてくれる
代替リストはクラウドソーシングされており、代表的なデプロイ先は https://fediverser.network にある
フォークしたいなら、自分のインスタンスを実行して好きな方法で管理すればよい
数か月前に NLNet から小さな助成金を受け、この機能を Voyager クライアント、つまり Apollo クローンの PWA に組み込む作業をしている
さらに手伝いたい、または支援したい個人や企業があれば連絡してほしい
[0] https://fediverser.io
[1] https://portal.alien.top
Mastodon や他の ActivityPub アプリケーションから Lemmy とある程度相互作用でき、その逆も可能なので、2種類のソーシャルネットワークが互いの成長を助けることを期待している
自分の Fediverse アカウント設定を追加して、コミュニティをクリックすると自分のサーバーへリダイレクトされるようにできるのか気になる
たとえば /r/switzerland を検索すると、Fediverser が提案した switzerland@feddit.ch の横に、自分の Fediverse サーバーで開くボタンがあるような形で、Mastodon のウェブクライアントにある「Take me home」ボタンに似ている
まだ活動量は足りないが、自分も参加して解決策の一部になろうとしている
結局、各インスタンスごとに別々の c/linux、c/funny、c/technology、c/anime などが存在し、非常に使いにくくなる
Geddit はまだ動作しており、優れたアプリで、アカウントなしでも NSFW と表示された投稿を読める
私が知っている他の動作するアプリは RedReader で、障害のある読者向けの高度なアクセシビリティ機能があるため、Reddit が壊さずに残しているようだ
ただし NSFW 項目にはアクセスできず、ウェブサイトを使うようメッセージが出る
共有 IP が Reddit でネットワークブロックされ、匿名ブラウジングも無効化された
1日に CAPTCHA を50個くらい見ている気がして、昔のウェブとプレーンテキストが本当に恋しい
rif is fun もまだ動作している、少なくとも1、2か月前に最後に起動したときは読み取り専用で動作していた
Geddit が使っている JSON エンドポイントは Reddit API であり、完全に開かれているので、「API 制限の回避」とは見なせない
Digg から離脱したときに初めて見つけた Reddit は素晴らしい場所だった。
残念ながら、その良かった状態を維持するにはあまりにも脆弱で、管理者たちの運営上の失策が繰り返し生んだドラマが善意をむしばんでいった。
会社はそれに対して、ユーザーにさらに敵対的に振る舞う形で対応し、ユーザーの自由時間であれ、お金であれ、その他の何であれ、搾り取り続けようとする姿勢をやめる気配がない。
有害な仲介者なしに、ニッチな話題について互いに話せる公的な方法が必要だ。
Reddit をプラットフォームにして開発する人がまだいることに驚く。
プラットフォームに依存すること自体もともと危険だが、よりによって Reddit とは。
Reddit の唯一の利点は、良質なユーザーコンテンツに付随するネットワーク効果だけで、開発者への扱いも含め、それ以外はすべてゴミために近い。
金の卵を産むガチョウを殺してしまい、卵の商売は必然的に崩壊しつつある。
URL の末尾に
.jsonを付けるとページ全体を JSON 形式で取得できると知ったのが大きな気づきだった、というくだりがあるが、これは実は今でも動く。いま人気投稿の一つで https://www.reddit.com/r/funny/comments/1ezq3po/asked_for_my... を https://www.reddit.com/r/funny/comments/1ezq3po/asked_for_my... に変えると、認証なしですべてのコメントを JSON として取得できる。
これを使って広告をすべて回避する、まともな UI のクライアントを作るのは、おそらくかなり簡単だろうという点が興味深い。
返ってきたデータをもとに投稿のコメントをすべて列挙しようとすると、Reddit の Web UI が表示する数よりずっと少ない数で終わってしまう。
9年間手を入れていない小さな React アプリ [2] がこれを使っているが、今でも問題なく動いている。
[1] https://www.reddit.com/r/programming/comments/cxh3a/we_just_...
[2] http://insin.github.io/just-dadjokes/
Reddit がこういうことをしたときに利用をやめ、生活はずっと良くなった。
初期の Reddit には良いコミュニティとコンテンツがあったが、人気が高まり収益を搾り取るようになるにつれて価値が下がった。
初期の大規模言語モデルプロジェクトが Reddit をスクレイピングして始まったというのは笑える。
Common Crawl のランダムなゴミよりはましだったのだろうが、世界はすでに移ってしまった。
モデレーターに大きく左右されるし、たとえば /r/anime のような場所には代替がない。
私なら返事すらしない。
必要な API は HTTP だけだ。
どんなユーザーエージェントを使えるかを自分たちが決められると信じ込ませようとする人たちは、自分の所有物以上のものを支配しようとしているだけだ。
サブレディットの URL に
.rssを付けると RSS フィードも取得できる。RSS は本来、ボット、つまりコンピュータープログラムが読むように設計されたものだが、Reddit の見解がどうなのか気になる。
これも「API 制限の回避」と見なすのだろうか?
Reddit 側は RSS のことを忘れているか、全コンテンツを提供しているわけではなくアプリには有用でないため気にしていないのだと思う。
私のコツは各サブレディットの「週間人気」フィードを購読することで、こうすると流れてくる投稿の量がかなり管理しやすい水準まで減る。
ナラティブ操作は世界的に大きなビジネスになった。
だから Reddit は API に年間3万ドルを支払わせようとしているし、Twitter/X も同じ理由で同じことをしている。