3 คะแนน โดย GN⁺ 2026-01-16 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เครื่องมือโอเพนซอร์สที่แปลงข้อมูลจากแพลตฟอร์มอย่าง 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 ทั้งหมดในอดีตในรูปแบบทอร์เรนต์ไว้แล้ว
    • Subreddit Comments/Submissions 2005-06 to 2024-12
    • รวบรวม 40,000 ซับเรดดิตยอดนิยมที่สุดในประวัติศาสตร์ 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 พร้อมกัน

ข้อมูลสาธารณะ

  • เดโมสด: https://online-archives.github.io/redd-archiver-example/
  • ที่เก็บ GitHub: https://github.com/19-84/redd-archiver
  • ใบอนุญาต: - เผยแพร่ภายใต้ Unlicense (public domain) จึงสามารถใช้งาน แก้ไข และแจกจ่ายต่อได้อย่างอิสระ ทั้งเชิงพาณิชย์และไม่เชิงพาณิชย์

1 ความคิดเห็น

 
GN⁺ 2026-01-16
ความคิดเห็นจาก Hacker News
  • นี่เป็นวิธีที่ยอดเยี่ยมในการ self-host อาร์ไคฟ์
    ส่วนตัวอยากให้มี ปลั๊กอิน ที่กู้คืนคอมเมนต์ที่ถูกลบหรือถูกบอตเขียนทับกลับเป็นต้นฉบับแบบอัตโนมัติ
    ทุกวันนี้สาเหตุที่ใช้งาน Reddit ได้ยากก็เพราะลิงก์เก่า ๆ ครึ่งหนึ่งกลายเป็นคอมเมนต์ไร้ประโยชน์จากการเขียนทับเพื่อประท้วง
    ที่น่าประหลาดก็คือต้นฉบับยังคงอยู่ในอาร์ไคฟ์สำหรับฝึก AI แต่ในมุมของผู้ใช้กลับหาวิธีแก้ปัญหาอย่างไดรเวอร์เครื่องพิมพ์เมื่อ 2 ปีก่อนไม่เจอแล้ว

    • จริง ๆ แล้วนั่นไม่ใช่เรื่องน่าประหลาดอะไรนัก การลบคอมเมนต์ครั้งใหญ่ส่วนมากไม่ได้เกิดจากการ ประท้วงการฝึก LLM แต่เป็นการคว่ำบาตร Reddit ที่ปิด API
      การทำให้เว็บไซต์มีประโยชน์น้อยลงคือเป้าหมายของพวกเขาอยู่แล้ว และการทำให้ผู้ใช้ย้ายออกไปคือแก่นของการประท้วง
    • มีการแชร์ลิงก์โปรเจกต์ที่เกี่ยวข้อง reddit-uncensored
    • ฉันเองก็เห็นคอมเมนต์หายไปบ่อยเหมือนกัน แต่ถ้าผู้เขียนไม่อยากมีส่วนร่วมในการสนทนาสาธารณะอีกแล้ว ฉันก็เคารพการตัดสินใจนั้น
      ไม่ได้อยากไปขุดอาร์ไคฟ์เพื่อทำให้การตัดสินใจนั้นเป็นหมัน แค่ข้ามไปอ่านอย่างอื่นต่อ
  • สามารถรับข้อมูลผ่านทอร์เรนต์ได้
    ลิงก์: คลังเก็บ redd-archiver

    • มีการเผยแพร่ สถิติและโปรไฟลิงของ sub แยกตามแต่ละแพลตฟอร์มด้วย
      ช่วยตัดสินใจได้ว่าควรเก็บรักษาชุมชนไหนก่อน
  • เป็นโปรเจกต์ที่เจ๋งมาก
    นอกจาก PushShift แล้วก็ยังมีอาร์ไคฟ์อื่น ๆ อีก เช่น Arctic Shift และ PullPush ที่ให้ชุดข้อมูลต่างกัน
    โพสต์หรือคอมเมนต์ที่รวมอยู่ด้วยอาจแตกต่างกันตาม ขอบเขตของคำขอลบข้อมูล

  • คิดว่าน่าจะใช้ข้อมูลนี้มา seed โซเชียลมีเดียแบบกระจายศูนย์ ใหม่ได้หรือเปล่า
    คล้ายกับการ fork โปรเจกต์นั่นแหละ

    • มีการทำ tooling สำหรับ instance registry และ leaderboard แบบอิงทีมไว้แล้ว
      API ก็รองรับสิ่งนี้ด้วย จึงสามารถร่วมกันโฮสต์อาร์ไคฟ์แบบกระจายศูนย์ได้
  • เป็นโปรเจกต์ที่น่าสนใจมาก
    สิ่งที่สงสัยคือชุดข้อมูล Pushshift มี การอัปเดตเป็นประจำ หรือเป็นแค่สแนปชอตของช่วงเวลาใดช่วงเวลาหนึ่ง
    ถ้า self-host เอง อยากรู้ว่าต้องดึงข้อมูลใหม่เป็นระยะหรือไม่

    • ตอนนี้มีการเผยแพร่ข้อมูลไปถึงเดือน 12 ปี 2025 แล้ว และโดยปกติจะมีรีลีสใหม่ทุกเดือน
      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 ในช่วงเวลาหนึ่งในอดีตได้ไหม

    • API รองรับการเชื่อมต่อแบบต่าง ๆ จึงมีความเป็นไปได้
  • ฉันไม่ได้อยากเก็บ Reddit ทั้งหมดไว้ในคอมพิวเตอร์
    ถ้าเลือกเฉพาะบาง subreddit ได้ก็น่าจะดี

    • ในทอร์เรนต์มีข้อมูลของ 4 หมื่น subreddit แรกอยู่
      watchful1 ได้แยกข้อมูลตาม subreddit ไว้แล้ว จึงดาวน์โหลดเฉพาะส่วนที่ต้องการได้
  • สงสัยว่ามีวิธีตรวจสอบไหมว่า subreddit ที่ถูกเปลี่ยนเป็น private เมื่อ 2~3 ปีก่อนรวมอยู่ใน data dump หรือไม่

    • มีการรวม metadata dump ของทุก subreddit ไว้แล้ว
      สามารถตรวจสอบได้จากฟิลด์สถานะว่าเป็น private หรือไม่ และยังมีรายละเอียดอีกมาก