# Reddit Fetch

Fetch content from Reddit via its JSON API using a browser session (DuckDuckGo-hop...

- Repository: https://github.com/ykdojo/claude-code-tips (10298 stars)
- Category: Engineering
- License: see repository
- Last updated: 2026-09-25
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add ykdojo/claude-code-tips --skill reddit-fetch -g -a claude-code -y`
Codex: `npx skills add ykdojo/claude-code-tips --skill reddit-fetch -g -a codex -y`
Cursor: `npx skills add ykdojo/claude-code-tips --skill reddit-fetch -g -a cursor -y`
Gemini CLI: `npx skills add ykdojo/claude-code-tips --skill reddit-fetch -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add ykdojo/claude-code-tips`

## Description

Fetch content from Reddit via its JSON API using a browser session (DuckDuckGo-hop unlock). Use when accessing Reddit URLs, researching topics on Reddit, or when Reddit returns 403/blocked errors.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Reddit Fetch

Reddit's public JSON API works by appending `.json` to any Reddit URL, but Reddit now hard-blocks automated access. **curl 403s essentially every time (host AND container, regardless of User-Agent), and even a cold Playwright navigation to `reddit.com` hits a `"You've been blocked by network security"` challenge page.** The reliable method is to arrive at Reddit *through a DuckDuckGo result redirect*: that sets a Reddit session cookie which unlocks direct `.json` access for the rest of the browser session.

## Primary method: the DuckDuckGo-hop unlock

**Step 1 - the DDG hop.** Do this once per session before any `.json` fetch.

1. `mcp__playwright__browser_navigate` to `https://html.duckduckgo.com/html/?q=site:reddit.com/r/SUBREDDIT+YOUR+QUERY`
2. Grab the first result's **full href** - it's a DDG redirect that includes a `rut` token (`https://duckduckgo.com/l/?uddg=...&rut=...`). The token is required; navigating to the bare `/l/?uddg=` without it 400s.
   ```js
   () => document.querySelector('.result__a')?.href
   ```
3. `browser_navigate` to that full redirect href. It lands on a real `www.reddit.com` page (title = the post/subreddit title, **not** "Blocked") and sets the session cookie. The result doesn't have to be the exact thread you want - landing on *any* real Reddit page sets the cookie.

If Playwright errors with `Browser is already in use`, a stale instance is holding the profile - `pkill -f ms-playwright-mcp` (or the profile dir named in the error) and retry.

**Step 2 - direct `.json` now works.** For the rest of the session, navigate Playwright straight to any `.json` URL and `JSON.parse(document.body.innerText)`. Use `www.reddit.com` (not `old.reddit.com`) for browser navigation. Full recency sorting (`sort=new&t=week`) is available.

The rest: https://github.com/ykdojo/claude-code-tips/blob/HEAD/skills/reddit-fetch/SKILL.md
