- รวบรวม ข้อมูลส่วนตัวทั้งหมด เช่น รูปภาพ วิดีโอ ข้อความ ประวัติตำแหน่ง คอนเทนต์โซเชียลมีเดีย และรายชื่อติดต่อ มาจัดเรียงตามลำดับเวลาเป็น เครื่องมือเก็บถาวรไทม์ไลน์แบบโลคัล
- นำเข้าข้อมูลจากบริการหลากหลาย เช่น 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 ความคิดเห็น
ความคิดเห็นบน Hacker News
คิดว่าเป็นบริการที่ยอดเยี่ยม แต่ผมอยากให้มันขยายไปได้ไกลกว่านี้จนแทน Nextcloud กับ Zotero ได้ บันทึกเอกสารและหนังสือทุกอย่างที่ผมเพิ่ม เปิด หรือแก้ไข โน้ตทุกชิ้นที่ผมเขียน รวมถึงแท็บเบราว์เซอร์ที่ผมเปิด การคัดลอก/วาง แม้กระทั่งการกดแป้นพิมพ์ เพื่อให้ตอบคำถามอย่าง "วันนี้เมื่อ 2 สัปดาห์ก่อนผมทำอะไรอยู่?" ได้ทันที ทุกอย่างนี้ควรค้นหาได้ และต้องโฮสต์เองได้ด้วย ไม่ได้ต้องการทำให้มันเป็นซอฟต์แวร์สอดส่องนะ พอเห็นคนใช้ระบบลิงก์แบบทำมือใน Obsidian ก็ยิ่งรู้สึกว่ามุมมองเรื่องเวลากลับสำคัญกว่า ถ้าวันนี้ผมค้นอะไรบางอย่างใน Wikipedia มันมีความหมายมาก เพราะมีโอกาสสูงที่ผมจะค้นข้อมูลคล้ายกันหรือทำงานที่เกี่ยวข้องกันในช่วงเวลาเดียวกัน
จำได้ว่า Microsoft เคยมีผลิตภัณฑ์ที่ช่วย Recall ได้ว่าผมกำลังทำอะไรอยู่ก่อนหน้านี้
หาที่อยู่ที่แน่ชัดไม่เจอ แต่จำได้ลาง ๆ ว่าเคยมีคนเสนอแนวคิดระบบคอมพิวเตอร์ที่ทุกอ็อบเจ็กต์มีอยู่บนฐานของเวลาเพียงอย่างเดียว และเข้าถึงอย่างอื่นผ่านตัวกรองเท่านั้น อยากกลับไปหาอีกครั้ง
ในระยะยาว ส่วนที่แทน Nextcloud, Zotero และเก็บโน้ตทั้งหมด รวมถึงบันทึกแท็บเบราว์เซอร์ คลิปบอร์ด และการพิมพ์ ดูมีประโยชน์มากจริง ๆ แต่ส่วนแท็บเบราว์เซอร์ การกดแป้นพิมพ์ ฯลฯ รู้สึกว่าละเอียดเกินไป ระดับนั้นอาจไม่จำเป็น แต่ผมเห็นว่าความพยายามที่จะบันทึกและทำความเข้าใจชีวิตตัวเองผ่านข้อมูลเป็นสิ่งจำเป็น และแอปนี้ก็เริ่มต้นจากโจทย์แบบนั้น
mholt เป็นที่รู้จักในฐานะคนสร้างเว็บเซิร์ฟเวอร์ Caddy เลยยิ่งทำให้สนใจ Timelinize มากขึ้น
ตลอด 10 ปีที่ผ่านมา ผมต้องการผลิตภัณฑ์แบบนี้เป๊ะ ๆ เลยบันทึกข้อมูล GPS ทุก 2-3 นาทีมาตลอด รู้สึกว่าน่าสนใจมาก
Timelinize เป็นระบบที่รับรู้เอนทิตี ดังนั้นแม้ไม่มีข้อมูลพิกัด ก็ยังแสดงข้อมูลที่ใกล้เคียงกันตามเวลาแยกตามเอนทิตีบนแผนที่ได้ ทำให้ตระหนักว่า Google สามารถรวมข้อมูลของผมจาก Android/Chrome/Gmail/Maps/Timeline ได้มากแค่ไหน อยากรู้ว่าจะใช้ข้อมูลสภาพอากาศจริง ๆ อย่างไร เช่น กำลังคิดจะเชื่อมเอนทิตีที่มีตำแหน่งเข้ากับข้อมูลสภาพอากาศในอดีตหรือไม่
คิดว่าเป็นไอเดียที่เจ๋งมาก แต่ถ้าต้องรัน Google Takeout ทุกครั้งที่เพิ่มข้อมูลใหม่ มันยุ่งยากเกินไป น่าเสียดายที่ยังไม่ใช่ ถ้าอัปเดตแบบเรียลไทม์ได้คงเป็นคิลเลอร์แอปจริง ๆ
เอกสารแหล่งข้อมูล Google Photos
ผมสนใจบริการนี้มากจริง ๆ (และขอบคุณสำหรับ Caddy ด้วย)
อยากรู้ว่าจัดการการอัปเดต/แก้ไขข้อมูลอย่างไร เมื่อดึงข้อมูลกึ่งมีโครงสร้างเข้ามา แล้วเหตุการณ์อย่าง "jog" ถูกแยกย่อยเป็น "light run" กับ "intense walk" และมีการย้อนผลไปแก้ข้อมูลเก่าด้วย แบบนี้ก็ต้องนำเข้าข้อมูลซ้ำ ใน FAQ พูดถึงแค่ additive import แต่ในสถานการณ์ที่โครงสร้างข้อมูลเปลี่ยนตลอด ผมไม่อยากทรมานกับการอัปเดต SQL เลยตอนนี้ใช้ plain text กับ git จัดการเวอร์ชันอยู่ แบบนี้คนคนหนึ่งสามารถติดตามความเปลี่ยนแปลงของข้อมูลเหมือนย้อนเวลาได้ ซึ่งดีมาก
ในตัวเลือกการนำเข้าขั้นสูง คุณสามารถกำหนดความเป็นเอกลักษณ์ของรายการและเกณฑ์ตัดสินรายการซ้ำได้เอง วิธีจัดการรายการซ้ำก็เลือกได้เองด้วย โดยค่าเริ่มต้นจะข้ามรายการซ้ำ แต่ก็สามารถอัปเดตได้และกำหนดได้ว่าจะให้ค่าไหนมีลำดับความสำคัญกว่า อย่างไรก็ตาม การอัปเดตคือคำสั่ง UPDATE จึงย้อนกลับไม่ได้ ผมเคยลองสคีมาแบบ additive ล้วน ๆ ด้วย แต่ในโลกจริงมันยากเพราะความซับซ้อน ความเสี่ยงต่อข้อผิดพลาด และประสิทธิภาพการท่องสำรวจที่ช้าลง แต่ก็ยังสนใจความเป็นไปได้ที่ไทม์ไลน์จะถูกสำรวจย้อนกลับไปตามการเปลี่ยนแปลงในระดับเวลาได้
บริการนี้น่าจะสมบูรณ์แบบมากถ้ารวมกับบันทึกทางการเงิน (เช่น ข้อมูลธนาคาร) และ local LLM
ยังไม่แน่ใจว่าจะใช้ยังไงได้บ้าง แต่สามารถวิเคราะห์รายการใช้บัตรจากประวัติข้อความ ข้อมูลตำแหน่ง ฯลฯ เพื่อจัดหมวดงบประมาณและแสดงสถิติต่าง ๆ ได้
ถ้ามีรถแบบคลาวด์อย่าง Tesla ก็อาจแยกระยะทางเพื่อธุรกิจ/ส่วนตัว ค่าใช้จ่าย ฯลฯ อัตโนมัติ ช่วยเรื่องภาษีได้ด้วย
และน่าจะมีประโยชน์กับการแนะนำประสบการณ์ท้องถิ่นที่ยังไม่เคยลอง รวมถึงการจัดการเวลาด้วย
ledger.txt(plaintextaccounting.org), การเชื่อม g-cal และ Home Assistant ต่างก็เริ่มมารวมกันในทิศทางคล้าย ๆ กัน
ผมก็ได้ยินเรื่องแบบนี้บ่อยมาก และคาดหวังกับการผสานข้อมูลการเงินและ LLM ไว้สูงมาก คิดว่ามันน่าสนใจ มีประโยชน์ และใช้เป็นผู้ช่วยส่วนตัวได้ดีในแง่การคุ้มครองข้อมูลส่วนบุคคลด้วย
โปรเจกต์นี้เจ๋งมาก ถ้าไม่ชอบชื่อ timelinize เคยคิดชื่อภาษาละตินบ้างไหม เช่น Temperi ก็เป็นตัวเลือกหนึ่ง
แล้วก็อยากให้รองรับ FindPenguins ด้วย เพราะมีข้อมูลหลากหลายทั้ง GPS รูปภาพ และข้อความ
ช่วงหลังผมหงุดหงิดกับการที่เครื่องมือบันทึกตำแหน่งปิดกั้นมากขึ้นเรื่อย ๆ และคิดว่าโปรเจกต์นี้เป็นก้าวสำคัญในการทวงคืนความเป็นเจ้าของข้อมูลอย่างแท้จริง จะลองใช้แน่นอน
ดูเจ๋งมากและเหมือนเป็นบริการที่ผมต้องการมาตลอดโดยไม่รู้ตัว
มีไอเดียอยู่บ้าง
เพราะข้อมูลส่วนตัวมีความอ่อนไหวสูง ถ้าเป็นไปได้ควรโฮสต์เองที่บ้านหลัง VPN อย่าง Wireguard หรือ Tailscale และอยากให้เป็นแอปที่เข้ารหัสแบบ E2E เหมือน Ente.io
ถ้าแยกดัชนีกับสตอเรจแบ็กเอนด์ออกจากกันได้ก็น่าจะดี เช่น เก็บรูปภาพไว้ที่เดิมที่มีอยู่แล้ว (Immich, Ente.io ฯลฯ) เพื่อลดการเก็บซ้ำ เพราะ Timelinize คงแทนข้อมูลทุกประเภทไม่ได้ อยากใช้คู่กับแอปเฉพาะทางที่จัดการข้อมูลแต่ละแบบได้ดีที่สุด
ถ้ารองรับการนำเข้าประวัติการเดินทางจาก Polarsteps และแบ็กอัป Signal ได้ด้วยจะยิ่งดีมาก
GitHub ของเครื่องมือแบ็กอัป Signal