- เครื่องมือโอเพนซอร์สที่แปลงข้อมูลจากแพลตฟอร์มอย่าง Reddit, Voat, Ruqqus ให้เป็น คลังเก็บ HTML บน PostgreSQL
- ประมวลผลโพสต์ Reddit ได้ 2.38 พันล้านรายการในเครื่อง (ครอบคลุมกว่า 40,000 ซับเรดดิต) พร้อม ดีไซน์ที่เหมาะกับมือถือ และ อินเทอร์เฟซที่ไม่ใช้ JavaScript
- ในสถานการณ์ที่การเข้าถึง Reddit API แทบถูกปิดตาย และ แอปภายนอกกับการเข้าถึงข้อมูลถูกบล็อก โครงการนี้จึงพยายามใช้ชุดข้อมูล Pushshift เพื่อเปลี่ยน คลัง Reddit แบบสมบูรณ์ให้กลายเป็นทรัพย์สินส่วนบุคคลที่ถือครองได้เอง
- ทำงานเป็น HTML แบบสแตติกโดยไม่มี JavaScript, คำขอภายนอก, หรือการติดตาม และใช้งานได้ในหลายรูปแบบ เช่น ออฟไลน์, สภาพแวดล้อม air-gap, USB, Raspberry Pi, หรือเซิร์ฟเวอร์ LAN
- รองรับการวิเคราะห์และการสืบค้นขนาดใหญ่ด้วย PostgreSQL Full-Text Search (FTS), REST API มากกว่า 30 รายการ, และ MCP server (29 tools) สำหรับเชื่อมต่อกับเครื่องมือ AI
การเปลี่ยนแปลงของสภาพแวดล้อมการเข้าถึงข้อมูล Reddit
- Reddit API เปลี่ยนไปสู่สภาพที่แทบไม่สามารถใช้งานเพื่อการทำคลังเก็บได้อีกต่อไป
- ระบบนิเวศของแอปภายนอกล่มสลาย และมีการขู่ปิดกั้นการเข้าถึงชุดข้อมูล Pushshift ซ้ำแล้วซ้ำเล่า
- ชุดข้อมูล Pushshift คือคลังเก็บขนาดใหญ่ที่รวบรวมโพสต์และคอมเมนต์สาธารณะของ Reddit มาอย่างยาวนาน และมีบันทึกข้อความหลายพันล้านรายการ
- เป็น ข้อมูลสแนปชอตจากช่วงเวลาในอดีต ที่เก็บผ่าน Reddit API อย่างเป็นทางการ จึงนำมาใช้ได้โดยไม่ต้องเข้าถึงเซิร์ฟเวอร์หรือ API ของ Reddit ในปัจจุบัน
- หลังการเปลี่ยนนโยบาย API และการจำกัดการเข้าถึงข้อมูล ปัจจุบันมันถูกใช้งานในฐานะ ทรัพยากรข้อมูลสาธารณะชิ้นสุดท้ายโดยพฤตินัย สำหรับการอนุรักษ์ประวัติศาสตร์ Reddit และการวิเคราะห์ขนาดใหญ่
- ผ่าน Pushshift มีการเผยแพร่บันทึก Reddit ทั้งหมดในอดีตในรูปแบบทอร์เรนต์ไว้แล้ว
ภาพรวมโครงการ Redd-Archiver
- Redd-Archiver v1.0 แปลงดัมพ์ข้อมูลสาธารณะจาก Reddit, Voat, Ruqqus ให้เป็น คลัง HTML ที่สำรวจได้
- ใช้ PostgreSQL backend เพื่อประมวลผลชุดข้อมูลขนาดใหญ่ด้วยหน่วยความจำคงที่ (4GB) และให้การค้นหาที่รวดเร็วด้วย FTS บน GIN indexing
- ผลลัพธ์ HTML สามารถเรียงลำดับ, แบ่งหน้า, และสำรวจต้นไม้คอมเมนต์ได้แม้อยู่ในโหมดออฟไลน์
โครงสร้างหลักของเครื่องมือทำคลัง Redd-Archiver
- ใช้ดัมพ์ Reddit (.zst), Voat (SQL), Ruqqus (.7z) เป็นอินพุต
- การรวมหลายแพลตฟอร์ม: รวม 3 แพลตฟอร์มไว้ในคลังเดียว พร้อมรองรับการตรวจจับแพลตฟอร์มอัตโนมัติและการค้นหาแบบรวม
- มีโครงสร้างพาธ
/r/, /v/, /g/ ผ่าน CLI flags และ URL prefix
- สร้างไฟล์ HTML แบบสแตติก จึงตัดการพึ่งพาเซิร์ฟเวอร์
- เพียงเปิด
index.html ก็สำรวจได้ทันทีโดยไม่ต้องใช้เครือข่ายภายนอก
- เลย์เอาต์ responsive แบบ mobile-first และการนำทางที่เป็นมิตรกับการสัมผัส
- มีดัชนีสำหรับเรียงตามคะแนน, คอมเมนต์, วันที่ และรองรับการแบ่งหน้า
- ปฏิสัมพันธ์แบบ CSS โดยไม่ใช้ JavaScript
- ใช้ PostgreSQL FTS เพื่อรองรับ การค้นหาข้อความเต็มแบบรวมข้ามแพลตฟอร์ม
- กรองได้ตามคีย์เวิร์ด, ผู้เขียน, วันที่, คะแนน
- มี REST API สำหรับโพสต์, คอมเมนต์, ผู้ใช้, ซับเรดดิต และคิวรีเชิงสรุป
- มี MCP server สำหรับให้ เครื่องมือ AI สอบถามข้อมูลจากคลังได้โดยตรง
- สามารถคิวรีโพสต์, คอมเมนต์, ผู้ใช้, และการค้นหาได้จาก Claude Desktop หรือ Claude Code
- รองรับการประมวลผลโพสต์ได้หลายสิบล้านรายการต่อหนึ่งอินสแตนซ์
- ด้วยโครงสร้าง PostgreSQL การใช้หน่วยความจำจึงคงที่ไม่ว่าข้อมูลจะใหญ่เพียงใด
- สำหรับข้อมูลทั้งหมด 2.38B โพสต์ แนะนำให้กระจายรันเป็นหลายอินสแตนซ์ตามหัวข้อ
- พัฒนาด้วย Python, PostgreSQL, Jinja2, Docker (โดยใช้ Claude Code เป็นผู้ช่วยหลักในการพัฒนาโดยรวม)
สถานการณ์การติดตั้งและการใช้งาน
- รองรับการเปิดดูแบบออฟไลน์ผ่าน USB drive หรือโฟลเดอร์ในเครื่อง
- โลคัล/โฮมแล็บ: รันในสภาพแวดล้อม HTTP หรือ Tor ได้ด้วยคำสั่งเดียว
- โปรดักชัน HTTPS: ตั้งค่าใบรับรอง Let’s Encrypt อัตโนมัติ (ประมาณ 5 นาที)
- Tor hidden service: เข้าถึงผ่านที่อยู่
.onion ได้โดยไม่ต้องทำ port forwarding
- Static hosting: อัปโหลดไปยัง GitHub Pages หรือ Codeberg Pages ได้ (ยกเว้นฟังก์ชันค้นหา)
- การติดตั้งแบบ Docker: ตั้งค่าอัตโนมัติครบชุดพร้อม PostgreSQL
- รองรับการเปิดดูออฟไลน์, เซิร์ฟเวอร์ค้นหาในเครื่อง, และโหมด Tor/HTTPS พร้อมกัน
ข้อมูลสาธารณะ
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
นี่เป็นวิธีที่ยอดเยี่ยมในการ self-host อาร์ไคฟ์
ส่วนตัวอยากให้มี ปลั๊กอิน ที่กู้คืนคอมเมนต์ที่ถูกลบหรือถูกบอตเขียนทับกลับเป็นต้นฉบับแบบอัตโนมัติ
ทุกวันนี้สาเหตุที่ใช้งาน Reddit ได้ยากก็เพราะลิงก์เก่า ๆ ครึ่งหนึ่งกลายเป็นคอมเมนต์ไร้ประโยชน์จากการเขียนทับเพื่อประท้วง
ที่น่าประหลาดก็คือต้นฉบับยังคงอยู่ในอาร์ไคฟ์สำหรับฝึก AI แต่ในมุมของผู้ใช้กลับหาวิธีแก้ปัญหาอย่างไดรเวอร์เครื่องพิมพ์เมื่อ 2 ปีก่อนไม่เจอแล้ว
การทำให้เว็บไซต์มีประโยชน์น้อยลงคือเป้าหมายของพวกเขาอยู่แล้ว และการทำให้ผู้ใช้ย้ายออกไปคือแก่นของการประท้วง
ไม่ได้อยากไปขุดอาร์ไคฟ์เพื่อทำให้การตัดสินใจนั้นเป็นหมัน แค่ข้ามไปอ่านอย่างอื่นต่อ
สามารถรับข้อมูลผ่านทอร์เรนต์ได้
ลิงก์: คลังเก็บ redd-archiver
ช่วยตัดสินใจได้ว่าควรเก็บรักษาชุมชนไหนก่อน
เป็นโปรเจกต์ที่เจ๋งมาก
นอกจาก PushShift แล้วก็ยังมีอาร์ไคฟ์อื่น ๆ อีก เช่น Arctic Shift และ PullPush ที่ให้ชุดข้อมูลต่างกัน
โพสต์หรือคอมเมนต์ที่รวมอยู่ด้วยอาจแตกต่างกันตาม ขอบเขตของคำขอลบข้อมูล
คิดว่าน่าจะใช้ข้อมูลนี้มา seed โซเชียลมีเดียแบบกระจายศูนย์ ใหม่ได้หรือเปล่า
คล้ายกับการ fork โปรเจกต์นั่นแหละ
API ก็รองรับสิ่งนี้ด้วย จึงสามารถร่วมกันโฮสต์อาร์ไคฟ์แบบกระจายศูนย์ได้
เป็นโปรเจกต์ที่น่าสนใจมาก
สิ่งที่สงสัยคือชุดข้อมูล Pushshift มี การอัปเดตเป็นประจำ หรือเป็นแค่สแนปชอตของช่วงเวลาใดช่วงเวลาหนึ่ง
ถ้า self-host เอง อยากรู้ว่าต้องดึงข้อมูลใหม่เป็นระยะหรือไม่
watchful1 กำลังแยกและประมวลผลข้อมูลใหม่อยู่ และต่อไปมีแผนจะนำ Arctic Shift dump มาใช้เพื่อรองรับการอัปเดตรายเดือน
ลิงก์ที่เกี่ยวข้อง:
ฉันก็กำลังทำโปรเจกต์คล้ายกัน และได้อัปโหลดข้อมูล Pushshift Reddit ไปที่ Hugging Face Datasets แล้ว
ถ้าซีดทอร์เรนต์อ่อน ก็สามารถดาวน์โหลดไฟล์แยกได้โดยตรงจาก huggingface.co/datasets/nick007x/pushshift-reddit
มีประโยชน์สำหรับคนที่อยากทดสอบข้อมูลรายเดือนหรือเฉพาะบาง subreddit
ลองรันสภาพแวดล้อมบนเครื่องด้วย Docker Compose แต่ไม่สำเร็จ
ไม่มีไฟล์
.env.exampleและถึงจะตั้งค่าตัวแปรสภาพแวดล้อมเองก็ยังมี ปัญหาเส้นทางของ volumeดูเหมือนว่ายังต้องเกลาอีกหน่อย
mkdirในเอกสารด้วยคอมมิตที่เกี่ยวข้อง: 0bb1039, c3754ea
สงสัยว่าจะเชื่อมกับ แอป Apollo ที่ตายไปแล้วเพื่อกู้สภาพ Reddit ในช่วงเวลาหนึ่งในอดีตได้ไหม
ฉันไม่ได้อยากเก็บ Reddit ทั้งหมดไว้ในคอมพิวเตอร์
ถ้าเลือกเฉพาะบาง subreddit ได้ก็น่าจะดี
watchful1 ได้แยกข้อมูลตาม subreddit ไว้แล้ว จึงดาวน์โหลดเฉพาะส่วนที่ต้องการได้
สงสัยว่ามีวิธีตรวจสอบไหมว่า subreddit ที่ถูกเปลี่ยนเป็น private เมื่อ 2~3 ปีก่อนรวมอยู่ใน data dump หรือไม่
สามารถตรวจสอบได้จากฟิลด์สถานะว่าเป็น private หรือไม่ และยังมีรายละเอียดอีกมาก