reddit について
CamoFox CLI で Reddit の閲覧、投稿、コメント、投票などを自動化するスキルです。セッションを使った認証、ページごとの操作手順、レート制限への注意点を説明します。
主な機能
- 01フィードとサブレディットの閲覧
- 02投稿とコメントの作成
- 03返信と投票
- 04セッションの保存と復元
- 05ページ別の操作手順
活用シーン
- 01保存済みセッションで Reddit を閲覧
- 02サブレディットへの投稿
- 03投稿へのコメントや返信
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ redf0x1/ camofox-browser --skill redditインストール後、Claude Code で/redditを入力して読み込まれたか確認します。
同梱ファイルreferences/workflow-reference.md
詳細
Reddit 自動化スキル
CamoFox CLI の検出回避ブラウザーを使って Reddit を自動化します。2026-03-04 に、50 回を超える操作すべてで CAPTCHA が発生しないことを確認済みです。
1. 前提条件
- CamoFox ブラウザーが起動していること:
camofox server status - 保存済みの Reddit セッションがあること(セクション 2 を参照)
- インストール:
npm install -g camofox-browser
2. 認証
Reddit のログインでは reCAPTCHA Enterprise が使用されるため、自動での認証情報入力はブロックされます。セッションベースの認証を使用してください。
初回 — CamoFox で手動ログインしてから、保存します。
camofox session save "reddit-session" --user reddit
次回以降 — 保存済みセッションを復元します。
camofox open https://www.reddit.com --user reddit
camofox session load "reddit-session" --user reddit
camofox navigate https://www.reddit.com [tabId]
camofox snapshot [tabId]
確認:スナップショットにユーザー名が表示されていれば、ログイン済みです。
参照用に認証情報を保存します。
camofox auth save reddit-main --url https://www.reddit.com --notes "Reddit account"
3. フィードを閲覧する
camofox open https://www.reddit.com --user reddit
camofox session load "reddit-session" --user reddit
camofox navigate https://www.reddit.com [tabId]
camofox snapshot [tabId]
camofox scroll down [tabId] --amount 500
camofox snapshot [tabId]
camofox get-links [tabId]
4. サブレディットを閲覧する
camofox navigate https://old.reddit.com/r/test [tabId]
camofox snapshot [tabId]
camofox click [eN] [tabId]
camofox snapshot [tabId]
Old Reddit は HTML 構造がシンプルなため、投稿一覧を解析しやすくなっています。
5. 投稿にコメントする(Old Reddit)
重要:テキストエリアの入力には eval を使用してください。通常の入力では、Old Reddit で 500 エラーが発生します。
camofox navigate https://old.reddit.com/r/test/comments/POST_ID/ [tabId]
camofox snapshot [tabId]
camofox eval "const ta = document.querySelector('.usertext-edit textarea'); ta.value = 'Your comment'; ta.dispatchEvent(new Event('input', {bubbles: true})); ta.dispatchEvent(new Event('change', {bubbles: true}));" [tabId]
camofox snapshot [tabId]
camofox click [eN] [tabId]
camofox snapshot [tabId]
eval を使う理由:Old Reddit のテキストエリアにブラウザー自動化の入力機能で入力すると、Internal Server Error が発生します。JavaScript で textarea.value を設定すれば、安定して動作します。
6. 投稿を作成する(New Reddit)
重要:www.reddit.com を使用してください。Old Reddit では reCAPTCHA が表示され、投稿がブロックされます。
camofox navigate "https://www.reddit.com/r/test/submit?type=TEXT" [tabId]
camofox snapshot [tabId]
camofox type [eN] "Your Post Title" [tabId]
camofox snapshot [tabId]
camofox type [eN] "Post content with markdown." [tabId]
camofox snapshot [tabId]
camofox click [eN] [tabId]
camofox wait navigation [tabId] --timeout 5000
camofox snapshot [tabId]
7. コメントに返信する(Old Reddit)
camofox navigate https://old.reddit.com/r/test/comments/POST_ID/ [tabId]
camofox snapshot [tabId]
camofox click [eN] [tabId]
camofox snapshot [tabId]
camofox eval "const tas = document.querySelectorAll('.usertext-edit textarea'); const rb = Array.from(tas).find(t => t.offsetParent !== null && t.value === ''); if (rb) { rb.value = 'Your reply'; rb.dispatchEvent(new Event('input', {bubbles: true})); rb.dispatchEvent(new Event('change', {bubbles: true})); }" [tabId]
camofox snapshot [tabId]
camofox click [eN] [tabId]
camofox snapshot [tabId]
8. 賛成票/反対票
camofox snapshot [tabId]
camofox click [eN] [tabId]
投票ボタンは、スナップショット内で矢印アイコンの参照として表示されます。
9. セッション管理
camofox session save "reddit-session" --user reddit
camofox session load "reddit-session" --user reddit
camofox session list
camofox session delete "reddit-session"
10. レート制限
- コメント/返信の間隔を 2 分以上空けてください
- 新規アカウントまたはカルマの低いアカウントでは、投稿の間隔を 10 分以上空けてください
- 遅延を追加します:
camofox wait networkidle [tabId] --timeout 3000 - カルマの高いアカウントでは制限が緩和されます
11. 検出回避
- CamoFox の検出回避機能は Reddit で完全に有効です(50 回以上の操作で CAPTCHA は 0 回)
- Reddit は CamoFox に広告を配信します = 実際のユーザーとして扱われています
- セッション間で一貫した userId(「reddit」)を使用します
- 操作の間に Cookie を消去しないでください
- 特別なプロキシやフィンガープリントの設定は不要です
12. プラットフォームの選択
| 操作 | プラットフォーム | 理由 |
|---|---|---|
| ログイン | 手動のみ | reCAPTCHA Enterprise |
| コメント | old.reddit.com | プレーンな HTML フォーム |
| 返信 | old.reddit.com | プレーンな HTML フォーム |
| 投稿の作成 | www.reddit.com | 表示される CAPTCHA がない |
| 閲覧 | どちらでも | どちらも動作します |
| 投票 | どちらでも | どちらも動作します |
13. トラブルシューティング
| 問題 | 原因 | 対処法 |
|---|---|---|
| ログイン時の CAPTCHA | reCAPTCHA Enterprise | 保存済みのセッションを使用します |
| 旧 Reddit での投稿時の CAPTCHA | reCAPTCHA v2 | 新しい Reddit を使用します |
| コメント時の 500 エラー | 旧 Reddit での type | textarea.value を使って eval を使用します |
| テキストが二重になる | Lexical エディターの不具合 | 入力には eval を使用します |
| レート制限 | 操作が速すぎる | 2 分以上待ちます |
| SPA のリンクが機能しない | Reddit SPA | camofox navigate を使用します |
| セッションの期限切れ | Cookie の期限切れ | 再ログインして保存します |
14. 完全な例
#!/bin/bash
USER="reddit"
SESSION="reddit-session"
TAB=$(camofox open https://www.reddit.com --user $USER --format json | jq -r '.tabId')
camofox session load $SESSION --user $USER
camofox navigate https://old.reddit.com/r/test $TAB
camofox snapshot $TAB
camofox eval "const ta = document.querySelector('.usertext-edit textarea'); ta.value = 'Automated via CamoFox CLI'; ta.dispatchEvent(new Event('input', {bubbles: true})); ta.dispatchEvent(new Event('change', {bubbles: true}));" $TAB
camofox session save $SESSION --user $USER
camofox close --user $USER