
Reddit OSINT उपयोगकर्ता नाम से। इंडेक्स किए गए पोस्ट, टिप्पणियाँ, हटाई गई और लाइव सामग्री, गतिविधि पैटर्न, उजागर पहचानकर्ता, और एक समग्र एक्सपोज़र स्कोर खोजें।
उपयोगकर्ता नाम द्वारा Reddit OSINT। इसे एक उपयोगकर्ता नाम दें और यह उस खाते के लिए सार्वजनिक Reddit अभिलेखागार द्वारा अनुक्रमित सब कुछ लौटाता है: पोस्ट, टिप्पणियाँ, क्या हटाया गया और क्या अभी भी सक्रिय है, गतिविधि पैटर्न, लीक हुए पहचानकर्ता, और एक एक्सपोज़र स्कोर।
कोई निर्भरता नहीं, कोई API कुंजी नहीं, कोई लॉगिन नहीं। बस python3।

python3 reddit_osint.py someuser
यही विश्लेषण LLM क्लाइंट्स के लिए MCP टूल्स के रूप में भी उपलब्ध है, देखें MCP सर्वर।
pip install -r requirements.txt && python mcp_server.py
Reddit चीज़ें हटा देता है, लेकिन तीसरे पक्ष के डेटा अभिलेख वह प्रति रखते हैं जो हटाने से पहले मौजूद थी (या कम से कम [removed] / [deleted] मार्कर)। यह टूल उन अभिलेखों को क्वेरी करता है और किसी खाते की गतिविधि प्रोफ़ाइल का पुनर्निर्माण करता है।
यही h3kz-reddint वेब टूल के पीछे की धारणा है, जो इस स्क्रिप्ट के लिए संदर्भ है:
यह उस पाइपलाइन (दो स्रोत, मर्ज, PII रेगेक्स, ग्राफ़, स्कोर) को एक स्टैंडअलोन
CLI के रूप में पुनः कार्यान्वित करता है, जिसमें टेस्ट और वैकल्पिक प्रॉक्सी समर्थन है।
| स्रोत | यह क्या है | भूमिका |
|---|---|---|
Arctic Shift (arctic-shift.photon-reddit.com) | मुफ़्त Reddit अभिलेख, Pushshift का समुदाय-संचालित उत्तराधिकारी। 2022→आज तक कवर करता है और मूल स्क्रैप (selftext, removed_by_category, media_metadata, flair) बनाए रखता है। कोई API कुंजी नहीं, प्रति-IP दर सीमा। | प्राथमिक स्रोत। 100% उपयोगी डेटा प्रदान करता है। |
PullPush (api.pullpush.io) | उसी Reddit डेटा का एक और इंडेक्स (ऐतिहासिक Pushshift डंप)। | फ़ॉलबैक। समानांतर में क्वेरी किया जाता है और id द्वारा मर्ज किया जाता है। इसका subreddit API 404 लौटाता है, इसलिए यह केवल पोस्ट/टिप्पणियाँ प्रदान करता है। |
reddit.com | — | कभी क्वेरी नहीं किया जाता। केवल रिपोर्ट में permalink URL बनाने के लिए उपयोग किया जाता है। आधिकारिक Reddit API का उपयोग नहीं किया जाता (कोई लॉगिन नहीं), यही कारण है कि यह निलंबित खातों पर काम करता है। |
एक वास्तविक नमूना खाते पर मापा गया: Arctic Shift ने 39 पोस्ट / 139 टिप्पणियाँ लौटाईं, PullPush ने
अतिव्यापी ID के साथ 38 पोस्ट लौटाईं। Arctic Shift जीतता है; --source arctic तेज़ और
पर्याप्त है।
pip install नहीं। केवल मानक लाइब्रेरी।pip install pysocks (वैकल्पिक, केवल socks5:// के लिए आवश्यक)pip install -r requirements.txt (FastMCP)। CLI को इसकी आवश्यकता नहीं है।python3 reddit_osint.py someuser
stdout पर रिपोर्ट को JSON के रूप में प्रिंट करता है (केवल सारांश, प्रति-आइटम डंप के बिना) और
stderr पर लॉग करता है।
python3 reddit_osint.py someuser --json report.json
python3 reddit_osint.py someuser --json report.json --quiet > /dev/null
report.json में all_items key शामिल है जिसमें हर पोस्ट और कमेंट (टेक्स्ट, subreddit,
स्कोर, दिनांक, स्थिति, permalink) होता है। ऑन-स्क्रीन सारांश इसे छोड़ देता है ताकि यह 200 KB डंप न करे।
python3 reddit_osint.py someuser --subreddit dotnet # one subreddit only
python3 reddit_osint.py someuser --keywords "kubernetes" # posts mentioning X
python3 reddit_osint.py someuser --over18 true # NSFW only
python3 reddit_osint.py someuser --source arctic # single source (faster)
python3 reddit_osint.py someuser --max-pages 10 # cap pagination (100 items/page)
python3 reddit_osint.py someuser --delay 1.0 # slower, better with proxies
python3 reddit_osint.py someuser --rate-limit-retries 0 # fail fast when throttled
python3 reddit_osint.py someuser --proxies proxies.txt
proxies.txt, प्रति पंक्ति एक प्रॉक्सी। स्वीकृत प्रारूप:
http://1.2.3.4:8080
https://1.2.3.4:8443
socks5://1.2.3.4:1080
socks5://user:[email protected]:1080
1.2.3.4:8080 # no scheme -> assumed http://
# comments and blank lines are ignored
डुप्लिकेट हटा दिए जाते हैं। यदि फ़ाइल में कोई मान्य प्रॉक्सी नहीं है, तो स्क्रिप्ट कोड 2 के साथ बाहर निकल जाती है और कोई अनुरोध नहीं करती।
रोटेशन। प्रॉक्सी को राउंड-रॉबिन में घुमाया जाता है। जब कोई अनुरोध ब्लॉकिंग/रेट-लिमिट
कोड के साथ वापस आता है, तो उस प्रॉक्सी को --cooldown सेकंड के लिए कूलडाउन पर रखा जाता है और स्क्रिप्ट अगले पर चली जाती है:
| फ़्लैग | डिफ़ॉल्ट | यह क्या करता है |
|---|---|---|
--proxies FILE | — | प्रॉक्सी सूची। इसके बिना: सीधा कनेक्शन। |
--cooldown SECONDS | 30 | एक प्रतिबंधित प्रॉक्सी कितनी देर बाहर रहती है। |
--max-attempts N | (proxies+1) × 3 | हार मानने से पहले प्रति अनुरोध प्रयास की सीमा। |
--no-direct-fallback | बंद | जब सभी प्रॉक्सी कूलडाउन में हों तो सीधे कनेक्ट करने के बजाय प्रतीक्षा करें। |
--shuffle-proxies | बंद | स्टार्टअप पर सूची को शफ़ल करें (पहले अनुरोध से ही लोड फैलाता है)। |
--proxy-stats | बंद | रिपोर्ट में proxy_stats जोड़ता है: प्रति प्रॉक्सी ok / banned / errors। |
--rate-limit-retries N | 2 | जब API 429/422 का जवाब देती है तो पूरे पेज को एक्सपोनेंशियल बैकऑफ़ (30 s, 60 s, अधिकतम 120 s) के साथ पुनः प्रयास करता है। |
प्रतिबंध के रूप में माने जाने वाले कोड (ये प्रॉक्सी को रोटेट करते हैं): 401 403 407 422 429 500 502 503 504 520 521 522 523 524, साथ ही कोई भी 400/409 जिसके बॉडी में slow down / rate limit /
too many requests / timeout हो। Arctic Shift रेट लिमिटिंग के लिए 422 "Timeout. Maybe slow down a bit" का उपयोग करता है, इसलिए इसे जानबूझकर प्रतिबंध के रूप में संभाला जाता है।
एक 404 रोटेट नहीं करता: वह एक खराब अनुरोध है, खराब प्रॉक्सी नहीं, और कहीं और पुनः प्रयास करने से
यह ठीक नहीं होगा।
बैकऑफ़। प्रतिबंध के बाद यह min(cooldown, 10 s) प्रतीक्षा करता है — यह सीधे कनेक्शन पर भी लागू होता है,
जहाँ यह सबसे अधिक नुकसान करता है। यदि कोई पेज अपने प्रयास समाप्त कर लेता है, तो fetch_all पेज को
एक्सपोनेंशियल बैकऑफ़ (--rate-limit-retries, डिफ़ॉल्ट रूप से 2 प्रयास = 30 s और 60 s) के साथ पुनः प्रयास करता है। यही वह चीज़ है जो
स्क्रिप्ट को रन के बीच में रेट लिमिट में फँसने पर चुपचाप टिप्पणियाँ खोने से रोकती है।
रोटेशन के साथ नमूना लॉग:
[proxy] http://1.2.3.4:8080 blocked (429), backing off 10s -> rotating
[proxy] http://5.6.7.8:1080 failed (Connection refused), rotating
[proxy] direct connection blocked (422), backing off 10s -> rotating
[!] arctic/comments rate limited, backing off 30s (retry 1/2)
जब हर प्रॉक्सी कूलडाउन में हो, स्क्रिप्ट सबसे लंबे शेष कूलडाउन का इंतज़ार करती है और पुनः प्रयास करती है
(या सीधे कनेक्शन का उपयोग करती है जब तक कि --no-direct-fallback पास न किया गया हो)।
चेतावनी: एक प्रॉक्सी वह egress पथ है जो आपका IP किसी तीसरे पक्ष तक ले जाता है। यदि आप प्रॉक्सी विक्रेता पर भरोसा नहीं करते, तो इस टूल के साथ प्रॉक्सी का उपयोग न करें।
| Variable | Purpose |
|---|---|
REDDIT_OSINT_ARCTIC | Override the Arctic Shift URL (mirrors, tests). |
REDDIT_OSINT_PULLPUSH | Override the PullPush URL. |
id, title, selftext, body, author, subreddit, created_utc, score, permalink,
url, over_18, num_comments, link_flair_text, preview.images, media_metadata,
removed_by_category.
| Status | Detection |
|---|---|
removed | Text = [removed] or [ Removed by Reddit ], or removed_by_category present (posts) → a moderator removed it. |
deleted | Text = [deleted] or author == "[deleted]" → the author deleted it. |
live | Everything else. |
यही इस टूल का पूरा उद्देश्य है: संग्रह हटाने के तथ्य को कैप्चर करता है, भले ही उसमें कोई सामग्री न हो, और वह अकेला ही उपयोगी मेटाडेटा है।