Community研究與資料分析github.com

Jibbithy/reddit-research

透過 Arctic Shift 歸檔 API 進行 Reddit 研究——包含 subreddit 分析、參與度指標、使用者活動、已刪除/移除貼文復原、語氣評估、版規與主題探索。在此環境中直接存取 reddit.com 被封鎖,因此本技能也會清楚指明哪些問題無法回答,而非以網頁搜尋取代。

reddit-research 是什麼?

Jibbithy/reddit-research 是一個專為 AI 代理設計的 Reddit 研究技能,其核心是 Arctic Shift 歸檔 API,此為唯一經過驗證且可正常運作的 Reddit 資料來源。它能處理歷史貼文、留言、參與度指標、使用者活動、subreddit 規則、語氣分析、已刪除/移除貼文的復原,以及主題探索。此技能在執行環境中無法直接存取 reddit.com(curl、網頁搜尋、Playwright 等方法皆已失效),因此它內建了誠實的間隙規則:當問題超出 Arctic Shift 的能力範圍(例如即時排名、目前訂閱人數、登入後檢視或 shadowban 檢查)時,它會明確回報無法回答,並提供原因,絕不會靜默地回傳「未找到結果」或誤導使用者。它還提供了經過驗證的非 Reddit 替代來源(如 Hacker News、Lobsters、Stack Exchange)作為替代方案,但會清楚標註來源並非 Reddit。此技能支援 Claude Code、Cursor、Codex 等多種代理平台,並包含標準工作流程、決策流程圖與參與度指標計算,可確保研究結果既可靠又透明。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Jibbithy/claude-code-skills/tree/HEAD/skills/reddit-research

Installed? Explore more 研究與資料分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Reddit 研究技能

透過最可靠的方法進行全面的 Reddit 研究路由。你確切知道哪些工具可行、哪些不可行,以及何時使用每種工具。

觸發

/reddit-research analyze r/homelab engagement
/reddit-research what subs does u/example_user post in
/reddit-research find deleted posts in r/SUBNAME
/reddit-research discover subreddits about topic X
search reddit for discussions about X
check reddit metrics for these subreddits

方法排名——只有一條路有效,其餘皆已失效

2026-09-19 重新測試。Arctic Shift 是唯一可用的來源。其他所有方法都被封鎖。 下面的階梯並非優雅的備援鏈;它的四級階梯中有三級已不存在,而重要的失敗模式是靜默地以網頁搜尋取代失效的階梯,並將結果呈現為 Reddit 資料。

方法2026-09-19 狀態證據
Arctic Shift API可用——唯一的方法curl .../api/posts/search?subreddit=selfhosted → 200,完整的貼文物件
透過 curl 取得 reddit.com .json失效——403harness 層級封鎖;瀏覽器 User-Agent 也無效
在 reddit.com 上使用 WebFetch / WebSearch失效WebSearch 回傳 400 domains not accessible
在 old.reddit.com 上使用 Playwright無法使用需要 Playwright MCP 伺服器,而該伺服器經常連線失敗

Arctic Shift——主要且實務上唯一的方法

  • 基礎網址:https://arctic-shift.photon-reddit.com/api
  • 使用純 curl。無需驗證、無需瀏覽器、無須工作量證明驗證。
  • 能看到已刪除、已移除和被垃圾過濾器攔截的貼文——這是其他方法都做不到的事。

在任何情況下都使用它:歷史研究、指標、使用者活動、版規、語氣、已刪除內容復原。

四個會悄悄搞砸執行的陷阱。均經由實際呼叫驗證。

  1. 參數名稱不明顯,且錯誤的猜測會導致硬錯誤。 全文搜尋在 /posts/search 上使用 title= 或 selftext=,在 /comments/search 上使用 body=。q 會回傳 {"error":"Unknown query parameter: 'q'"}。sort 只接受 asc/desc。
  2. 在一秒內回傳 {"error":"Timeout. Maybe slow down a bit"} 是速率限制,而非查詢緩慢。 四個未間隔的呼叫就足以觸發。使用更長的 -m 或更窄的視窗重試並無幫助。每次呼叫間隔約 4 秒,並在遇到此錯誤時呈指數級退避(8→120 秒)。
  3. 任何錯誤的回應都是 {"data":null,...}。 直接存取 json.data.length 的程式碼會在遇到速率限制回應時拋出錯誤,而非回報該錯誤。在存取 data 之前務必進行空值檢查,並在 error 有設定時將它呈現出來。
  4. 約 36 小時內的較新貼文會帶有 hide_score:true 和 score:1——在計算任何指標之前請過濾掉它們,否則數字將是虛構的。沒有按分數排序的功能:請廣泛擷取並在客戶端自行排序。

當 Reddit 真的無法回答時

如果問題需要即時排名、目前訂閱人數或登入後檢視,Arctic Shift 無法提供,且沒有其他方法可用。請在交付結果中明確說明這一點。 不要讓工作流程回傳零情感分數並被解讀為「未找到任何內容」——在診斷出此問題之前,已有兩次先前的執行耗費了 206 個代理而未能產出任何 Reddit 資料。

以下這些替代方案經驗證是可用的,並且是回答「從業人員怎麼說」這類問題的誠實備援方案,前提是你必須標明來源並非 Reddit:

  • Hacker News(最佳替代方案): https://hn.algolia.com/api/v1/search?query=<terms>&tags=story(或 &tags=comment),然後使用 https://hn.algolia.com/api/v1/items/<objectID> 取得完整的留言樹。每個引用都必須帶有其留言 ID,並重新擷取以確認該字串確實存在。
  • Lobsters: https://lobste.rs/search?q=<terms>&what=stories&order=relevance
  • Stack Exchange: https://api.stackexchange.com/2.3/search/advanced?order=desc&sort=votes&q=<terms>&site=stackoverflow

無效的方法——切勿嘗試

方法原因結果
curl / WebFetch 到 reddit.com(任何路徑,包括 .json)harness 層級封鎖;瀏覽器 User-Agent 無法破解403
使用 site:reddit.com 或 allowed_domains:["reddit.com"] 的 WebSearch不允許的網域400 domains not accessible
透過 curl 的 Reddit RSS(.rss)被特定封鎖403
沒有 token 的 oauth.reddit.com重新導向到 HTML301 → HTML
redlib / safereddit / libreddit 鏡像Anubis 工作量證明驗證頁面,需要 JavaScript驗證頁面,0 則貼文
api.pullpush.io(Pushshift 後繼者)下線502
在 old.reddit.com 前方使用 r.jina.ai 代理代理回傳 200,但包裝了 Reddit 自己的 403403 本體

不要浪費一次執行來重新發現這些。如果 Arctic Shift 無法回答,這裡沒有任何方法可以。


API 參考

端點、回應欄位以及兩個來源的陷阱:references/api.md。在建立呼叫之前請先閱讀,不要憑記憶重建端點。

參與度指標

四項指標(從 Arctic Shift 資料計算)

指標公式衡量內容
留言/讚數比 (cmtRatio)avgCmts / avgScore討論深度
讚數比upvote_ratio 欄位 (0-1)社群認同度
每則貼文平均留言數sum(num_comments) / count活動程度
每則貼文平均分數sum(score) / count觸及/可見度

計算方式

const posts = data.data.filter(p => !p.hide_score && p.score > 1);
const avgScore = posts.reduce((s, p) => s + p.score, 0) / posts.length;
const avgCmts = posts.reduce((s, p) => s + p.num_comments, 0) / posts.length;
const cmtRatio = avgCmts / avgScore;
const avgUpvoteRatio = posts.reduce((s, p) => s + p.upvote_ratio, 0) / posts.length;

討論深度分級

分級門檻值意義
S>= 0.70高度對話性
A>= 0.25強烈討論
B>= 0.10 或 平均留言數 >= 10中等,值得參與
C0.05-0.10多數被動 / 觸及型 sub
D< 0.05低參與度
E平均留言數 < 1死亡或嚴格管制

語氣評估

從已擷取的貼文資料進行評估(無需額外呼叫):

  1. link_flair_text 值——主題日、分類、明確指標
  2. 標題模式——語言風格、常規
  3. 高分貼文的 selftext——文化訊號
  4. 分數分佈——社群實際上獎勵什麼

在客戶端將已擷取的貼文依分數排序。前 10-20 名即可揭示社群價值。


標準工作流程

針對常見問題提供的一組最少呼叫配方——研究一個 subreddit、調查使用者、尋找討論串、探索 sub、批次檢查、復原已刪除貼文、偵測 shadowban:references/workflows.md。

決策流程圖

需要 Reddit 資料?
|
+-- 歷史貼文、留言、指標、使用者活動、版規、已刪除內容?
|     --> Arctic Shift。這是本技能實際上能回答的所有問題。
|
+-- 即時排名、目前訂閱人數或登入後檢視?
|     --> 無法取得。reddit.com 對 curl 和 WebFetch 回傳 403;WebSearch 拒絕該網域;
|         Playwright 需要一個通常處於離線狀態的 MCP 伺服器。
|         請在交付結果中說明。不要靜默地以網頁搜尋取代。
|
+-- Shadowban 檢查?
|     --> 基於同樣原因無法取得(它需要 /user/NAME/about.json)。
|
+-- 「從業人員對 X 怎麼說」,而 Reddit 只是手段?
|     --> Hacker News Algolia / Lobsters / Stack Exchange,並標明為非 Reddit 來源。
|
+-- 發文、留言、私訊、版主郵件?
      --> 無法透過研究工具達成。請使用 Reddit 自己的介面。

誠實間隙規則: 本技能無法回答的問題應回報為無法回答,並附上原因。回傳零筆 Reddit 資料卻未說明原因的結果,會被解讀為「未找到任何內容」,這是截然不同且虛假的聲明。


範圍邊界

  • 本技能為唯讀研究。不允許發文、留言或任何寫入操作。
  • 如果任務需要發文或帳號操作,請告知使用者必須透過 Reddit 的介面或已驗證的客戶端來完成。

相關技能