13 คะแนน โดย GN⁺ 2025-10-08 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • รวบรวม ข้อมูลส่วนตัวทั้งหมด เช่น รูปภาพ วิดีโอ ข้อความ ประวัติตำแหน่ง คอนเทนต์โซเชียลมีเดีย และรายชื่อติดต่อ มาจัดเรียงตามลำดับเวลาเป็น เครื่องมือเก็บถาวรไทม์ไลน์แบบโลคัล
  • นำเข้าข้อมูลจากบริการหลากหลาย เช่น Google Takeout, iCloud, Facebook, Twitter/X, Strava, Instagram แล้ว จัดระเบียบอัตโนมัติลงฐานข้อมูลที่ใช้ SQLite
  • มีฟังก์ชันสำรวจข้อมูลแบบภาพ เช่น แผนที่·มุมมอง 3D·มุมมองรวมบทสนทนา·การรู้จำเอนทิตี และแสดงความเชื่อมโยงระหว่างข้อมูลต่างชนิด เช่น ข้อความ รูปภาพ และตำแหน่ง
  • ข้อมูลทั้งหมด ถูกเก็บไว้ในพีซีส่วนตัวแทนคลาวด์ จึงไม่มีความเสี่ยงจากการรั่วไหลออกภายนอก และยังสำรวจไฟล์ต้นฉบับได้โดยตรง
  • เป็น โปรเจกต์อัตชีวประวัติดิจิทัล ที่สามารถนำชีวิตของแต่ละคนมาสร้างใหม่ในเชิงภาพ และต่อยอดไปสู่การแชร์ข้อมูลในครอบครัวหรือการเก็บรักษามรดกดิจิทัลได้

ภาพรวม

  • Timelinize คือ เครื่องมือรวมข้อมูลแบบโลคัล ที่นำร่องรอยดิจิทัลหลากหลายของแต่ละคนมารวมไว้ในไทม์ไลน์เดียว
  • รวบรวมรูปภาพ วิดีโอ บทสนทนา โซเชียลมีเดีย ประวัติตำแหน่ง และรายชื่อติดต่อ แล้วจัดโครงสร้างใหม่โดยยึดเวลา สถานที่ และผู้คนเป็นศูนย์กลาง
  • ช่วย บันทึกชีวิตประจำวันของตัวเองและครอบครัวได้อย่างละเอียด และเปิดทางให้สำรวจเรื่องราวได้สมบูรณ์และลึกซึ้งยิ่งกว่าแอปรูปภาพหรือแอปไดอารีแบบเดิม
  • ทำงานผ่านเบราว์เซอร์ และใช้งานได้แม้ออฟไลน์
  • ไม่ได้ เข้ามาแทนที่ แอปหรือบริการที่ใช้อยู่เดิม แต่ทำหน้าที่สร้าง สำเนาสำรองถาวรและเป็นส่วนตัว ของข้อมูลทั้งหมดที่ผู้ใช้ทำงานด้วย
  • Timelinize ทำงานอยู่ เบื้องหลัง สภาพแวดล้อมการใช้งานเดิม และทำหน้าที่เป็น คลังเก็บถาวรแบบแบ็กกราวด์ ที่ไม่รบกวนชีวิตของผู้ใช้

ฟีเจอร์หลัก

  • รองรับแหล่งข้อมูลหลากหลาย
    • นำเข้าฟอร์แมตการส่งออกข้อมูลตาม GDPR จาก Google Takeout, Apple iCloud, Facebook, Instagram, Twitter/X, Strava เป็นต้น ได้โดยตรง
    • ตรวจจับและจัดระเบียบอัตโนมัติได้โดยไม่ต้องแตกไฟล์ .zip หรือ .tar
  • อินเทอร์เฟซสำรวจแบบภาพ
    • มุมมองไทม์ไลน์: แสดงรายการข้อมูลทั้งหมดรวมกันตามวันที่
    • มุมมองแผนที่ 3D: แสดงเส้นทางการเคลื่อนไหวตามลำดับเวลาโดยอิงจากข้อมูลตำแหน่ง
    • กราฟฟองอากาศ: วิเคราะห์ว่าช่วงเวลาใดของวันมีการทิ้งข้อมูลประเภทใดไว้มากที่สุด
  • โครงสร้างข้อมูลแบบอิงเอนทิตี
    • จัดความสัมพันธ์ของข้อมูลโดยยึดวัตถุอย่างคน สัตว์ หรือองค์กรเป็นศูนย์กลาง
    • รู้จำบุคคลหรือกลุ่มเดียวกันโดยอัตโนมัติ และรวมเข้าด้วยกันด้วยตนเองได้เมื่อจำเป็น
  • การรวมบทสนทนา
    • เชื่อมข้อความจากหลายแพลตฟอร์มไว้ใน มุมมอง Conversations เดียว
    • รวม Facebook Messenger และข้อความ SMS เข้าด้วยกันเพื่อฟื้นคืนบริบทของบทสนทนา
  • การรวมแกลเลอรี
    • นอกจากคลังรูปภาพแล้ว ยังแสดงรูปที่อัปโหลดในข้อความหรือ SNS รวมถึงมีมต่าง ๆ ร่วมกันได้
    • รองรับการสำรวจตามสื่อหรือหัวข้อผ่านฟิลเตอร์หลากหลาย

โครงสร้างและหลักการทำงาน

  • ข้อมูลจะ ถูกจัดเก็บบนดิสก์ภายในเครื่องตามโฟลเดอร์แยกตามวันที่ และเมทาดาทาจะถูกเก็บไว้ในฐานข้อมูล SQLite
  • มีทั้ง HTTP API และ CLI แบบสมมาตร ทำให้สามารถรันคำสั่งเดียวกันได้ทั้งบนเว็บและบรรทัดคำสั่ง
  • ใช้สคีมาที่อิง JSON เพื่อแปลงอาร์กิวเมนต์ของคำสั่งและฟิลด์ของ HTTP form โดยอัตโนมัติ
  • มีสภาพแวดล้อม Dev Container ให้สำหรับการตั้งค่าสภาพแวดล้อมพัฒนาด้วย Docker

ปรัชญาและวิสัยทัศน์ของโปรเจกต์

  • เป้าหมายหลักของโปรเจกต์คือ การเก็บรักษาและปลดปล่อยข้อมูลส่วนบุคคลอย่างอิสระ
    • ออกแบบมาเพื่อให้ เจ้าของข้อมูลจัดการข้อมูลด้วยตนเอง รองรับความเสี่ยงที่บริการคลาวด์แบบรวมศูนย์อาจหายไป
    • นำชีวิตส่วนตัวมาสร้างภาพในเชิงข้อมูลเชิงปริมาณ และต่อยอดเป็น อัตชีวประวัติดิจิทัล·บันทึกประวัติครอบครัว ได้
  • ในระยะยาวยังเสนออุดมคติที่สามารถรวมไทม์ไลน์ของแต่ละคนเข้าด้วยกันเพื่อสร้าง ‘ไทม์ไลน์ของมนุษยชาติทั้งหมด’

การพัฒนาและการติดตั้ง

  • ดาวน์โหลด รีลีสล่าสุด ได้สำหรับ Linux/macOS/Windows
  • พัฒนาได้ผ่าน Dev Container ในสภาพแวดล้อม VSCode + Docker
  • โปรเจกต์เผยแพร่ภายใต้ ไลเซนส์ AGPL ซึ่งจำกัดการดัดแปลงเพื่อนำไปใช้เชิงพาณิชย์

ประวัติของโปรเจกต์

  • เริ่มต้นในปี 2013 ในฐานะโปรเจกต์ส่วนตัวชื่อ ‘Photobak’ ก่อนจะขยายเป็นเครื่องมือสำรองข้อมูลสำหรับ Google Photos, Facebook และ Twitter
  • หลังจากนั้นได้พัฒนาต่อด้วยการรองรับหลายผู้ใช้ การรวมข้อมูลตำแหน่ง และค่อย ๆ กลายมาเป็น Timelinize ในรูปแบบปัจจุบัน
  • ผู้สร้างยังเป็น นักพัฒนา Caddy server ด้วย และกำลังดำเนินโปรเจกต์นี้ในฐานะการทดลองระยะยาวเพื่ออธิปไตยเหนือข้อมูลส่วนบุคคล

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

 
GN⁺ 2025-10-08
ความคิดเห็นบน Hacker News
  • คิดว่าเป็นบริการที่ยอดเยี่ยม แต่ผมอยากให้มันขยายไปได้ไกลกว่านี้จนแทน Nextcloud กับ Zotero ได้ บันทึกเอกสารและหนังสือทุกอย่างที่ผมเพิ่ม เปิด หรือแก้ไข โน้ตทุกชิ้นที่ผมเขียน รวมถึงแท็บเบราว์เซอร์ที่ผมเปิด การคัดลอก/วาง แม้กระทั่งการกดแป้นพิมพ์ เพื่อให้ตอบคำถามอย่าง "วันนี้เมื่อ 2 สัปดาห์ก่อนผมทำอะไรอยู่?" ได้ทันที ทุกอย่างนี้ควรค้นหาได้ และต้องโฮสต์เองได้ด้วย ไม่ได้ต้องการทำให้มันเป็นซอฟต์แวร์สอดส่องนะ พอเห็นคนใช้ระบบลิงก์แบบทำมือใน Obsidian ก็ยิ่งรู้สึกว่ามุมมองเรื่องเวลากลับสำคัญกว่า ถ้าวันนี้ผมค้นอะไรบางอย่างใน Wikipedia มันมีความหมายมาก เพราะมีโอกาสสูงที่ผมจะค้นข้อมูลคล้ายกันหรือทำงานที่เกี่ยวข้องกันในช่วงเวลาเดียวกัน

    • จำได้ว่า Microsoft เคยมีผลิตภัณฑ์ที่ช่วย Recall ได้ว่าผมกำลังทำอะไรอยู่ก่อนหน้านี้

    • หาที่อยู่ที่แน่ชัดไม่เจอ แต่จำได้ลาง ๆ ว่าเคยมีคนเสนอแนวคิดระบบคอมพิวเตอร์ที่ทุกอ็อบเจ็กต์มีอยู่บนฐานของเวลาเพียงอย่างเดียว และเข้าถึงอย่างอื่นผ่านตัวกรองเท่านั้น อยากกลับไปหาอีกครั้ง

    • ในระยะยาว ส่วนที่แทน Nextcloud, Zotero และเก็บโน้ตทั้งหมด รวมถึงบันทึกแท็บเบราว์เซอร์ คลิปบอร์ด และการพิมพ์ ดูมีประโยชน์มากจริง ๆ แต่ส่วนแท็บเบราว์เซอร์ การกดแป้นพิมพ์ ฯลฯ รู้สึกว่าละเอียดเกินไป ระดับนั้นอาจไม่จำเป็น แต่ผมเห็นว่าความพยายามที่จะบันทึกและทำความเข้าใจชีวิตตัวเองผ่านข้อมูลเป็นสิ่งจำเป็น และแอปนี้ก็เริ่มต้นจากโจทย์แบบนั้น

  • mholt เป็นที่รู้จักในฐานะคนสร้างเว็บเซิร์ฟเวอร์ Caddy เลยยิ่งทำให้สนใจ Timelinize มากขึ้น

  • ตลอด 10 ปีที่ผ่านมา ผมต้องการผลิตภัณฑ์แบบนี้เป๊ะ ๆ เลยบันทึกข้อมูล GPS ทุก 2-3 นาทีมาตลอด รู้สึกว่าน่าสนใจมาก

    • อยากรู้ว่าคุณบันทึกประวัติ GPS อย่างไร
  • Timelinize เป็นระบบที่รับรู้เอนทิตี ดังนั้นแม้ไม่มีข้อมูลพิกัด ก็ยังแสดงข้อมูลที่ใกล้เคียงกันตามเวลาแยกตามเอนทิตีบนแผนที่ได้ ทำให้ตระหนักว่า Google สามารถรวมข้อมูลของผมจาก Android/Chrome/Gmail/Maps/Timeline ได้มากแค่ไหน อยากรู้ว่าจะใช้ข้อมูลสภาพอากาศจริง ๆ อย่างไร เช่น กำลังคิดจะเชื่อมเอนทิตีที่มีตำแหน่งเข้ากับข้อมูลสภาพอากาศในอดีตหรือไม่

    • ใช่ ตั้งใจจะใช้แบบนั้น สามารถเชื่อมข้อมูลสาธารณะเพิ่มเติมอย่างสภาพอากาศ/ข่าว เพื่อเพิ่มบริบทให้ไทม์ไลน์ได้
  • คิดว่าเป็นไอเดียที่เจ๋งมาก แต่ถ้าต้องรัน Google Takeout ทุกครั้งที่เพิ่มข้อมูลใหม่ มันยุ่งยากเกินไป น่าเสียดายที่ยังไม่ใช่ ถ้าอัปเดตแบบเรียลไทม์ได้คงเป็นคิลเลอร์แอปจริง ๆ
    เอกสารแหล่งข้อมูล Google Photos

    • นี่เป็นอุปสรรคใหญ่จริง ๆ ผมพยายามทำอัตโนมัติด้วย Chrome headless แต่ในทางปฏิบัติต้องยืนยันตัวตนทางกายภาพทุก 10 นาที ทำให้แทบเป็นไปไม่ได้ที่จะทำอัตโนมัติ โดยทั่วไปผมทำ Takeout ปีละครั้งหรือสองครั้ง และคิดว่าต่อให้ไม่ใช้ Timelinize ก็ควรทำไว้เพื่อสำรองข้อมูลอยู่แล้ว
  • ผมสนใจบริการนี้มากจริง ๆ (และขอบคุณสำหรับ Caddy ด้วย)
    อยากรู้ว่าจัดการการอัปเดต/แก้ไขข้อมูลอย่างไร เมื่อดึงข้อมูลกึ่งมีโครงสร้างเข้ามา แล้วเหตุการณ์อย่าง "jog" ถูกแยกย่อยเป็น "light run" กับ "intense walk" และมีการย้อนผลไปแก้ข้อมูลเก่าด้วย แบบนี้ก็ต้องนำเข้าข้อมูลซ้ำ ใน FAQ พูดถึงแค่ additive import แต่ในสถานการณ์ที่โครงสร้างข้อมูลเปลี่ยนตลอด ผมไม่อยากทรมานกับการอัปเดต SQL เลยตอนนี้ใช้ plain text กับ git จัดการเวอร์ชันอยู่ แบบนี้คนคนหนึ่งสามารถติดตามความเปลี่ยนแปลงของข้อมูลเหมือนย้อนเวลาได้ ซึ่งดีมาก

    • ขอบคุณที่ชอบ Caddy
      ในตัวเลือกการนำเข้าขั้นสูง คุณสามารถกำหนดความเป็นเอกลักษณ์ของรายการและเกณฑ์ตัดสินรายการซ้ำได้เอง วิธีจัดการรายการซ้ำก็เลือกได้เองด้วย โดยค่าเริ่มต้นจะข้ามรายการซ้ำ แต่ก็สามารถอัปเดตได้และกำหนดได้ว่าจะให้ค่าไหนมีลำดับความสำคัญกว่า อย่างไรก็ตาม การอัปเดตคือคำสั่ง UPDATE จึงย้อนกลับไม่ได้ ผมเคยลองสคีมาแบบ additive ล้วน ๆ ด้วย แต่ในโลกจริงมันยากเพราะความซับซ้อน ความเสี่ยงต่อข้อผิดพลาด และประสิทธิภาพการท่องสำรวจที่ช้าลง แต่ก็ยังสนใจความเป็นไปได้ที่ไทม์ไลน์จะถูกสำรวจย้อนกลับไปตามการเปลี่ยนแปลงในระดับเวลาได้
  • บริการนี้น่าจะสมบูรณ์แบบมากถ้ารวมกับบันทึกทางการเงิน (เช่น ข้อมูลธนาคาร) และ local LLM
    ยังไม่แน่ใจว่าจะใช้ยังไงได้บ้าง แต่สามารถวิเคราะห์รายการใช้บัตรจากประวัติข้อความ ข้อมูลตำแหน่ง ฯลฯ เพื่อจัดหมวดงบประมาณและแสดงสถิติต่าง ๆ ได้
    ถ้ามีรถแบบคลาวด์อย่าง Tesla ก็อาจแยกระยะทางเพื่อธุรกิจ/ส่วนตัว ค่าใช้จ่าย ฯลฯ อัตโนมัติ ช่วยเรื่องภาษีได้ด้วย
    และน่าจะมีประโยชน์กับการแนะนำประสบการณ์ท้องถิ่นที่ยังไม่เคยลอง รวมถึงการจัดการเวลาด้วย

    • ledger.txt(plaintextaccounting.org), การเชื่อม g-cal และ Home Assistant ต่างก็เริ่มมารวมกันในทิศทางคล้าย ๆ กัน

    • ผมก็ได้ยินเรื่องแบบนี้บ่อยมาก และคาดหวังกับการผสานข้อมูลการเงินและ LLM ไว้สูงมาก คิดว่ามันน่าสนใจ มีประโยชน์ และใช้เป็นผู้ช่วยส่วนตัวได้ดีในแง่การคุ้มครองข้อมูลส่วนบุคคลด้วย

  • โปรเจกต์นี้เจ๋งมาก ถ้าไม่ชอบชื่อ timelinize เคยคิดชื่อภาษาละตินบ้างไหม เช่น Temperi ก็เป็นตัวเลือกหนึ่ง
    แล้วก็อยากให้รองรับ FindPenguins ด้วย เพราะมีข้อมูลหลากหลายทั้ง GPS รูปภาพ และข้อความ

    • มีคนเสนอชื่อภาษาละตินมาหลายครั้งแล้ว แต่ส่วนใหญ่สะกดยากและออกเสียงยาก เลยไม่ได้รู้สึกว่าเป็นการปรับปรุงที่มีความหมายเท่าไร FindPenguins ก็เป็นบริการที่ดี ผมเองไม่ได้ใช้ แต่ใครก็สามารถพัฒนาแหล่งข้อมูลเองแล้วเพิ่มเข้าไปได้
  • ช่วงหลังผมหงุดหงิดกับการที่เครื่องมือบันทึกตำแหน่งปิดกั้นมากขึ้นเรื่อย ๆ และคิดว่าโปรเจกต์นี้เป็นก้าวสำคัญในการทวงคืนความเป็นเจ้าของข้อมูลอย่างแท้จริง จะลองใช้แน่นอน

    • เห็นด้วย ผมก็คิดเหมือนกัน
  • ดูเจ๋งมากและเหมือนเป็นบริการที่ผมต้องการมาตลอดโดยไม่รู้ตัว
    มีไอเดียอยู่บ้าง

  • เพราะข้อมูลส่วนตัวมีความอ่อนไหวสูง ถ้าเป็นไปได้ควรโฮสต์เองที่บ้านหลัง VPN อย่าง Wireguard หรือ Tailscale และอยากให้เป็นแอปที่เข้ารหัสแบบ E2E เหมือน Ente.io

  • ถ้าแยกดัชนีกับสตอเรจแบ็กเอนด์ออกจากกันได้ก็น่าจะดี เช่น เก็บรูปภาพไว้ที่เดิมที่มีอยู่แล้ว (Immich, Ente.io ฯลฯ) เพื่อลดการเก็บซ้ำ เพราะ Timelinize คงแทนข้อมูลทุกประเภทไม่ได้ อยากใช้คู่กับแอปเฉพาะทางที่จัดการข้อมูลแต่ละแบบได้ดีที่สุด

  • ถ้ารองรับการนำเข้าประวัติการเดินทางจาก Polarsteps และแบ็กอัป Signal ได้ด้วยจะยิ่งดีมาก
    GitHub ของเครื่องมือแบ็กอัป Signal

    • ขอบคุณสำหรับคำถามและความเห็นดี ๆ
    • โมเดลนี้ตั้งใจให้รันบนคอมพิวเตอร์ส่วนตัวที่บ้านอยู่แล้ว
    • ถ้าโฮสต์จากภายนอก ผมคิดว่ายากจะมีความเป็นส่วนตัวที่แท้จริง เพราะเจ้าของฮาร์ดแวร์ตัวจริงสามารถเข้าถึงทางกายภาพได้ทุกเมื่อ ผมเคยคิดถึงฐานข้อมูลเข้ารหัสแบบเรียลไทม์เหมือนกัน แต่ในกระบวนการประมวลผลสุดท้ายก็ต้องถอดรหัสอยู่ดี จึงเหมือนเป็นสิ่งที่เป็นไปไม่ได้ในเชิงตรรกะ หรือไม่ก็ยุ่งยากและเปราะบางมาก ผมอาจจะผิดก็ได้ แต่ยังไม่เห็นทางเลือกที่ใช้งานได้จริง
    • เรื่องข้อมูลซ้ำ จุดประสงค์คือจงใจคัดลอกข้อมูลเข้ามาไว้ในไทม์ไลน์นี้เอง เพื่อทำหน้าที่เป็นแบ็กอัปด้วย และรับประกันความสม่ำเสมอ ความน่าเชื่อถือ และความพร้อมใช้งาน แอปอื่นอย่าง PhotoStructure ทำแค่อินเด็กซ์ ไม่ได้สร้างสำเนาข้อมูล Timelinize จึงบังคับให้ใช้แนวทางนั้นได้ยาก
    • อยากรองรับแหล่งข้อมูลให้หลากหลาย รวมถึง Polarsteps/Signal ด้วย ข้อมูล Signal เปลี่ยนรูปแบบบ่อยและยังเข้ารหัสอยู่ ทำให้นำเข้าอย่างเชื่อถือได้ยาก แต่ใครก็เพิ่มแหล่งข้อมูลใหม่เองได้ และในอนาคตก็วางแผนจะมี import API เพื่อให้สคริปต์หรือแอปภายนอกส่งข้อมูลเข้า Timelinize ได้ด้วย
    • ท้ายที่สุด เป้าหมายของ Timelinize คือการทำให้ครอบครองข้อมูลได้จริง ดังนั้นการมีข้อมูลซ้ำอยู่บ้างก็น่าจะเป็นสิ่งที่ยอมรับได้ พื้นที่จัดเก็บก็ถูกลงเรื่อย ๆ และถึงจะแพงก็ยังคุ้มค่าอยู่ดี