VPSからRedditのJSON APIが403でブロックされる — RSSフィードで回避した話
2026年4月22日
やりたかったこと
Redditのr/ClaudeAIから最新投稿を取得して、Claudeのサービス状態を監視するツールを作りたかった。
ローカルでは動いた
Macのターミナルからは問題なく投稿データがJSONで返ってきた。
VPSでは403
同じコマンドをVPSで実行すると403 Blocked。old.reddit.com経由も「whoa there, pardner!」というブロックページが表示された。
原因
Redditはデータセンターの既知IPレンジからのリクエストをブロックしている。自宅IPは一般ISPなので通るが、VPSのIPはデータセンターとして識別されて拒否される。
解決策: RSSフィード
curl -s -A "claude-monitor/1.0" \
"https://www.reddit.com/r/ClaudeAI/new.rss?limit=25"
VPSからも正常にデータを返した。XMLフォーマットだが、Pythonのxml.etree.ElementTreeで簡単にパースできる。投稿本文はHTMLエンコードされているので、html.unescape()でデコードし、正規表現でタグを除去する。
学び
- 同じAPIでもアクセス元のIP種別で挙動が変わる
- ローカルで動いてもVPSで動くとは限らない
- RSSは「古い技術」だが、APIブロックの回避策として今でも有効
- シンプルな代替手段を先に試す方が効率的