Claude Reddit Scraper
Scrape Reddit with a real browser, no API key, no Reddit API
- memory
- previous_output
- output
- scraped_data
- summary
- item_count
Claude Reddit Scraper is the pack's flashiest node and the one most people find it for: it pulls Reddit posts and comment threads and turns them into structured JSON, all without a Reddit API key. Instead of hitting the API, it tells Claude Code to drive a real browser through the Playwright MCP server, click around the actual site, and save what it finds. That's the whole trick - you're trading API access for a browser doing what a human would.
The intended pipeline is right there in the pack: scrape a subreddit's comments, feed the JSON into Claude Code Execute with one of the bundled commands (like reddit-video-script-simple.md), and out comes a TikTok/YouTube Shorts script. Reddit-to-content farms are the pack's founding use case, and it shows.
How it works
How it works: the node builds a Reddit URL from your inputs, makes sure a Playwright MCP server is configured (it runs claude mcp add-json for playwright-mcp-server if it isn't there), then fires claude -p --max-turns 15 --allowedTools mcp__playwright --dangerously-skip-permissions at it with a long, detailed scraping prompt. Results land in a reddit_scrape_* folder under claude_code_outputs/ as reddit_data.json plus a scraping_summary.txt, and the node reads both back out for you. There's a hard 10-minute timeout on the run.
The inputs that matter
- source_type / source -
url,subreddit,search, oruser. Type the subreddit name plain (programming), or paste a full URL.sort_byandtime_filteronly apply in subreddit mode. - scrape_mode -
comments,posts,both, ormetadata. The default,comments, clicks into the single most-active thread and crawls it tomax_comment_depthlevels. - max_items (1–100, default 10) and include_metadata (author, score, date, flair, awards) control how deep the crawl goes.
It also takes memory and previous_output as optional context, same as the Execute node. Outputs: output (CLAUDE_OUTPUT, for chaining into Execute), scraped_data (the JSON), summary (the text summary), and item_count (how many items actually came back).
Installing
Install: ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/christian-byrne/claude-code-comfyui-nodes
and restart. The node needs the claude CLI signed in, same as every node in this pack - and it needs the Playwright MCP server binary installed, which the node does not install for you. The MCP config it writes assumes playwright-mcp-server is already on your PATH; if scraping fails with the browser never launching, that's why. Get it with npm install -g @playwright/mcp or pip install playwright-mcp-server.
Common issues
Where people get burned: Reddit fights back. Bot walls, "you're doing too much" rate limits, and the occasional login wall are the norm, and a 10-minute timeout with partial data is a common failure mode (the node still returns whatever it got before dying). Also note it hardcodes --dangerously-skip-permissions, so it will open a real browser and click unprompted - don't run it on a headless box and expect it to stay invisible, and keep an eye on it the first time. It's a scraper with good ergonomics, but it's still a scraper: Reddit changes its HTML, Playwright configs rot, and max_items is a target, not a guarantee. Check item_count before you trust the JSON downstream.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| source_type | COMBO | subreddit | Type of Reddit source to scrape |
| source | STRING | programming | Reddit URL, subreddit name, search query, or username |
| scrape_mode | COMBO | comments | What to scrape from Reddit |
| max_items | INT | 101–100 | Maximum items to scrape |
| model | COMBO | sonnet | Claude model to use |
| sort_byopt | COMBO | hot | Sort order for posts (subreddit mode only) |
| time_filteropt | COMBO | day | Time filter for top/controversial posts |
| include_metadataopt | BOOLEAN | true | Include post metadata (author, score, date, etc) |
| max_comment_depthopt | INT | 21–10 | Maximum comment thread depth to scrape |
| memoryopt | CLAUDE_MEMORY | Additional context/memory for Claude | |
| previous_outputopt | CLAUDE_OUTPUT | Output from previous Claude execution |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| output | CLAUDE_OUTPUT | — |
| scraped_data | JSON | — |
| summary | STRING | — |
| item_count | INT | — |