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 檔案中。
收集工作流程
- 釐清目標子版和排名維度。常見的選擇:
--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:用於主題挖掘。
- 在當前專案的研究目錄下,使用明確的
--out-dir參數執行scripts/reddit_mine_posts.py。 - 保留產生的原始檔案:
posts.jsonl:每行一個正規化的貼文。comments.jsonl:當要求取得留言時,每行一個正規化的留言。posts.csv:適合試算表的貼文表格。index.md:人類可讀的熱門貼文索引。summary.json:執行中繼資料和計數。
- 從產生的工件開始分析。除非使用者要求更新鮮的資料,否則優先重新讀取 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:欄位意義、輸出慣例和後續分析模式。
當使用者詢問超出單純收集範圍的評分、研究綜合、可重複使用的工作區佈局或工件解讀時,請閱讀參考檔案。