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 | 失效——403 | harness 層級封鎖;瀏覽器 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。無需驗證、無需瀏覽器、無須工作量證明驗證。 - 能看到已刪除、已移除和被垃圾過濾器攔截的貼文——這是其他方法都做不到的事。
在任何情況下都使用它:歷史研究、指標、使用者活動、版規、語氣、已刪除內容復原。
四個會悄悄搞砸執行的陷阱。均經由實際呼叫驗證。
- 參數名稱不明顯,且錯誤的猜測會導致硬錯誤。 全文搜尋在
/posts/search上使用title=或selftext=,在/comments/search上使用body=。q會回傳{"error":"Unknown query parameter: 'q'"}。sort只接受asc/desc。 - 在一秒內回傳
{"error":"Timeout. Maybe slow down a bit"}是速率限制,而非查詢緩慢。 四個未間隔的呼叫就足以觸發。使用更長的-m或更窄的視窗重試並無幫助。每次呼叫間隔約 4 秒,並在遇到此錯誤時呈指數級退避(8→120 秒)。 - 任何錯誤的回應都是
{"data":null,...}。 直接存取json.data.length的程式碼會在遇到速率限制回應時拋出錯誤,而非回報該錯誤。在存取data之前務必進行空值檢查,並在error有設定時將它呈現出來。 - 約 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 | 重新導向到 HTML | 301 → HTML |
| redlib / safereddit / libreddit 鏡像 | Anubis 工作量證明驗證頁面,需要 JavaScript | 驗證頁面,0 則貼文 |
api.pullpush.io(Pushshift 後繼者) | 下線 | 502 |
在 old.reddit.com 前方使用 r.jina.ai 代理 | 代理回傳 200,但包裝了 Reddit 自己的 403 | 403 本體 |
不要浪費一次執行來重新發現這些。如果 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 | 中等,值得參與 |
| C | 0.05-0.10 | 多數被動 / 觸及型 sub |
| D | < 0.05 | 低參與度 |
| E | 平均留言數 < 1 | 死亡或嚴格管制 |
語氣評估
從已擷取的貼文資料進行評估(無需額外呼叫):
link_flair_text值——主題日、分類、明確指標- 標題模式——語言風格、常規
- 高分貼文的
selftext——文化訊號 - 分數分佈——社群實際上獎勵什麼
在客戶端將已擷取的貼文依分數排序。前 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 的介面或已驗證的客戶端來完成。