Repo of the Day
Coding-Doctor-Omar/reddrix
Published: Oct 20, 2026
Open repository ↗Reddrix is an open-source, blazing fast Reddit Scraper for Python (No API Key)
Summary
Reddrix is a Python 3.10+ library that scrapes Reddit without requiring authentication or official API credentials, using an async-first design built on asyncio. It retrieves posts and comments from subreddits, user profiles, specific post URLs, and site-wide keyword searches, returning each item as a structured Python dictionary. The package wraps a Camoufox browser to handle anti-detection, with optional proxy rotation for users who need sustained throughput.
What it is useful for
Reddrix targets engineers who want to collect Reddit data for analysis without registering an app or managing OAuth tokens. It is useful when you need posts and full comment threads with metadata such as authors, scores, timestamps, flairs, media URLs, and crosspost info from places like https://www.reddit.com/r/webscraping, plus the ability to filter by sort order (new, hot, top_today, top_past_year, and similar). Teams building sentiment pipelines, trend trackers, or research datasets can consume items one at a time through an async iterator, cap work with max_results, max_posts_per_collection, max_comments_depth, and max_comments_per_post, and treat each item consistently whether it is a post or a comment. Reddrix can also serve as a standalone async HTTP client via reddrix.get(url=...) and reddrix.post(...) for custom scrapers, though the README notes only HTML/XML responses are supported in that mode.
How engineers can use it
The documented setup is two commands:
pip install -U reddrix
reddrix install
The second step is mandatory, since it provisions the Camoufox browser Reddrix drives. From there, the common pattern is an async context manager:
from reddrix import Reddrix
import asyncio
async def main():
async with Reddrix(
mode="standard",
subreddit_urls=["https://www.reddit.com/r/webscraping"],
sort="new",
include_comments=True,
max_results=500,
max_posts_per_collection=500,
verbose=True,
) as r:
async for item in r.get_items():
print(item["submissionType"], item["submissionUrl"])
asyncio.run(main())
For site-wide discovery, switch to mode="keyword_search" and pass a query; the README states the sort option is ignored in this mode. To avoid throttling on long runs, supply a proxies=[...] list in scheme://user:pass@hostname:port form, and Reddrix will rotate across them. The README explicitly warns that without proxies, frequent scraping can cause aggressive rate limiting on your IP, so plan accordingly for production workloads. Full field semantics and the complete arguments reference live in the README.