Community寫作與編輯github.com

zicojiao/reddit-skill

可安裝的 AI 代理技能,用於透過 PRAW 挖掘 Reddit 子版貼文。

reddit-skill 是什麼?

這是一個為 AI 代理(如 Claude Code、Cursor 等)設計的技能,旨在簡化從 Reddit 收集結構化研究資料的流程。它使用 PRAW(Python Reddit API Wrapper)並支援 OAuth 認證,可從單一子版或 `r/all` 中提取貼文和留言。此技能的核心價值在於優先保存原始資料(如 JSONL、CSV),讓後續的重新排名、摘要、翻譯或匯入分析無需重複向 Reddit API 發送請求,從而節省時間和資源。它支援多種排序維度(如熱門、最新、搜尋),並內建語言偵測功能,可根據使用者的語言環境產生中文報告。使用者需先設定 Reddit OAuth 憑證,技能提供互動式設定腳本,並建議將憑證安全地存儲在環境變數或 `.env` 檔案中。產出的成果包括標準化的貼文與留言 JSONL 檔案、CSV 試算表、人類可讀的 Markdown 索引以及執行摘要。這個技能特別適合開發者關係、產品研究或內容策略分析,能有效從 Reddit 社群中挖掘見解。

相容平台✓Claude Code✓Codex CLI~Cursor
npx skills add zicojiao/reddit-skill

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

Reddit 技能

概述

使用此技能透過 OAuth 支援的 PRAW,從單一子版或 r/all 收集可重現的 Reddit 研究資料。優先取得原始資料工件,再進行分析,以便後續無需重新抓取 Reddit 即可進行重新排名、摘要、匯入或翻譯。

語言政策

針對人類可讀的輸出內容,鏡像使用者的語言。如果使用者以中文書寫,或專案上下文為中文,請以中文產生生成的報告、筆記、Markdown 索引、審核佇列、摘要和建議。

保持原始資料結構穩定:JSON 鍵值、CSV 標頭、Reddit 標題、貼文內文、留言、URL 和 API 欄位名稱可保留原文。在中文上下文中執行捆綁腳本時,傳遞 --language zh 參數,以便 index.md 和 CLI 訊息使用中文標籤。

必要設定

如果缺少 Python 相依套件,請安裝:

python3 -m pip install praw

首次使用時,在收集資料前請先完成憑證設定。最簡單的流程是:

python3 scripts/setup_reddit_env.py

此腳本會要求使用者提供:

REDDIT_CLIENT_ID=你的_reddit_client_id
REDDIT_CLIENT_SECRET=你的_reddit_client_secret

並將其寫入 ~/.config/reddit-skill/.env 檔案,scripts/reddit_mine_posts.py 會自動讀取。收集器也會讀取專案目錄下的 .env 檔案以及程序環境變數。

如果使用者已有 Reddit OAuth 應用程式,告知他們可直接使用現有的應用程式 ID 作為 REDDIT_CLIENT_ID,應用程式密鑰作為 REDDIT_CLIENT_SECRET。

如果使用者尚無憑證,請解釋 https://www.reddit.com/prefs/apps 是一個舊版 OAuth 應用程式頁面,登入後可能仍然有效,但可能不是目前唯一的入門路徑。當此頁面可用時,建立一個 script 類型的應用程式,使用任意應用程式名稱,將重新導向 URI 設為 http://localhost:8080,然後複製應用程式 ID 作為 REDDIT_CLIENT_ID,密鑰作為 REDDIT_CLIENT_SECRET。如果舊版頁面不允許建立應用程式,請引導使用者前往 Reddit 官方說明中的開發者頁面,了解目前 Reddit 資料 API 的註冊/請求流程。

請勿將 Reddit 憑證儲存在技能儲存庫中。應將其儲存在環境變數、專案 .env 檔案或 ~/.config/reddit-skill/.env 檔案中。

收集工作流程

  1. 釐清目標子版和排名維度。常見的選擇:
    • --listing top --time-filter all:取得歷史最佳貼文。
    • --listing top --time-filter month:取得近期表現優異的貼文。
    • --listing hot:取得當前熱門貼文。
    • --listing new 或 --listing rising:用於早期發現。
    • --listing search --query "關鍵字" --search-sort comments --time-filter year:用於主題挖掘。
  2. 在當前專案的研究目錄下,使用明確的 --out-dir 參數執行 scripts/reddit_mine_posts.py。
  3. 保留產生的原始檔案:
    • posts.jsonl:每行一個正規化的貼文。
    • comments.jsonl:當要求取得留言時,每行一個正規化的留言。
    • posts.csv:適合試算表的貼文表格。
    • index.md:人類可讀的熱門貼文索引。
    • summary.json:執行中繼資料和計數。
  4. 從產生的工件開始分析。除非使用者要求更新鮮的資料,否則優先重新讀取 JSONL/CSV 檔案,而不是重新查詢 Reddit。

快速指令

從包含此 SKILL.md 檔案的目錄執行,或將 scripts/reddit_mine_posts.py 替換為已安裝技能的腳本絕對路徑。

收集單一子版的歷史最佳貼文:

python3 scripts/reddit_mine_posts.py \
  --subreddit LocalLLaMA \
  --listing top \
  --time-filter all \
  --language zh \
  --limit 100 \
  --include-comments \
  --max-comments 8 \
  --out-dir research/reddit/localllama-top-all

挖掘 r/all 中最熱門的貼文:

python3 scripts/reddit_mine_posts.py \
  --subreddit all \
  --listing hot \
  --language zh \
  --limit 100 \
  --out-dir research/reddit/all-hot

按主題搜尋子版並按留言數排序:

python3 scripts/reddit_mine_posts.py \
  --subreddit SaaS \
  --listing search \
  --query "voice agent" \
  --search-sort comments \
  --time-filter year \
  --language zh \
  --limit 75 \
  --include-comments \
  --out-dir research/reddit/saas-voice-agent-comments

分析指南

  • 同時根據 score 和 num_comments 對貼文進行排名;對於痛點挖掘,高留言數可能比高分數更有用。
  • 對於內容策略,先檢視標題模式,再檢視留言模式。
  • 除非使用者明確要求,否則將 Reddit 發文或回覆保留為人工審核佇列。
  • 將公開的匿名 .json 端點視為不可靠(當它們回傳 403 或稀疏資料時)。建議使用具有 OAuth 憑證的 PRAW。
  • 對於開發者關係或產品線索挖掘,應同時從標題、自述文字和熱門留言中評估意圖。

資源

  • scripts/setup_reddit_env.py:用於 REDDIT_CLIENT_ID 和 REDDIT_CLIENT_SECRET 的互動式設定輔助工具。
  • scripts/reddit_mine_posts.py:用於子版列表、搜尋、留言和研究工件的 PRAW 收集器。
  • references/reddit-research-patterns.md:欄位意義、輸出慣例和後續分析模式。

當使用者詢問超出單純收集範圍的評分、研究綜合、可重複使用的工作區佈局或工件解讀時,請閱讀參考檔案。

相關技能