- Tập hợp mọi dữ liệu cá nhân như ảnh, video, tin nhắn, lịch sử vị trí, nội dung mạng xã hội, danh bạ... vào một nơi và sắp xếp theo thứ tự thời gian bằng công cụ lưu trữ dòng thời gian cục bộ
- Nhập dữ liệu từ nhiều dịch vụ như Google Takeout, iCloud, Facebook, Twitter/X, Strava, Instagram và tự động sắp xếp vào cơ sở dữ liệu dựa trên SQLite
- Cung cấp các tính năng khám phá trực quan như bản đồ, chế độ xem 3D, chế độ xem hội thoại hợp nhất, nhận diện thực thể, đồng thời hiển thị mối liên hệ giữa các loại dữ liệu khác nhau như tin nhắn, ảnh và vị trí
- Toàn bộ dữ liệu được lưu trên PC cá nhân thay vì đám mây, nên không có rủi ro rò rỉ ra bên ngoài và có thể duyệt nguyên trạng các tệp gốc
- Đây là một dự án biên niên sử số về bản thân, có thể tái dựng trực quan cuộc sống cá nhân và mở rộng sang chia sẻ dữ liệu trong gia đình hoặc lưu giữ di sản số
Tổng quan
- Timelinize là công cụ tích hợp dữ liệu cục bộ tạo một dòng thời gian hợp nhất từ nhiều dấu vết số cá nhân khác nhau
- Công cụ thu thập ảnh, video, cuộc trò chuyện, mạng xã hội, lịch sử vị trí, danh bạ... rồi tái cấu trúc xoay quanh thời gian, không gian và con người
- Cho phép ghi lại chi tiết đời sống của bản thân và gia đình, đồng thời khám phá câu chuyện đầy đủ và sâu sắc hơn so với thư viện ảnh hay ứng dụng nhật ký truyền thống
- Hoạt động trong trình duyệt và vẫn có thể truy cập ngay cả khi ngoại tuyến
- Không thay thế các ứng dụng và dịch vụ đang dùng, mà tạo ra một bản sao lưu vĩnh viễn và mang tính cá nhân cho toàn bộ dữ liệu người dùng xử lý
- Timelinize hoạt động ở phía sau môi trường sử dụng hiện có, đóng vai trò như một kho lưu trữ nền không làm gián đoạn cuộc sống của người dùng
Tính năng chính
- Hỗ trợ nhiều nguồn dữ liệu
- Nhập trực tiếp các định dạng xuất dữ liệu GDPR từ Google Takeout, Apple iCloud, Facebook, Instagram, Twitter/X, Strava...
- Tự động nhận diện và sắp xếp mà không cần giải nén
.zip hoặc .tar
- Giao diện khám phá trực quan
- Chế độ xem dòng thời gian: hiển thị hợp nhất mọi mục dữ liệu theo ngày
- Chế độ xem bản đồ 3D: trực quan hóa lộ trình di chuyển theo thời gian dựa trên dữ liệu vị trí
- Biểu đồ bong bóng: phân tích loại dữ liệu được để lại nhiều nhất theo từng khung giờ trong ngày
- Cấu trúc dữ liệu dựa trên thực thể
- Sắp xếp quan hệ dữ liệu xoay quanh các thực thể như người, động vật, tổ chức
- Tự động nhận diện cùng một người hoặc tổ chức và có thể gộp thủ công khi cần
- Hợp nhất hội thoại
- Liên kết tin nhắn từ các nền tảng khác nhau trong một chế độ xem Conversations duy nhất
- Gộp Facebook Messenger và SMS thành một để khôi phục ngữ cảnh hội thoại
- Hợp nhất thư viện ảnh
- Hiển thị cùng nhau không chỉ thư viện ảnh mà cả ảnh tải lên từ tin nhắn hoặc SNS, meme...
- Hỗ trợ khám phá theo từng loại phương tiện hoặc chủ đề với nhiều bộ lọc khác nhau
Cấu trúc và nguyên lý hoạt động
- Dữ liệu được sắp xếp trên đĩa cục bộ theo cấu trúc thư mục theo ngày, còn metadata được lưu trong cơ sở dữ liệu SQLite
- Cung cấp đối xứng HTTP API và CLI, cho phép thực thi cùng một lệnh trên cả web lẫn dòng lệnh
- Tự động chuyển đổi đối số lệnh và trường form HTTP bằng schema dựa trên JSON
- Cung cấp môi trường Dev Container để thiết lập môi trường phát triển dựa trên Docker
Triết lý và tầm nhìn dự án
- Mục tiêu cốt lõi của dự án là bảo tồn và giải phóng dữ liệu cá nhân theo cách tự chủ
- Được thiết kế để người dùng tự quản lý dữ liệu của mình, phòng trường hợp các dịch vụ đám mây tập trung biến mất
- Trực quan hóa cuộc sống cá nhân dưới dạng định lượng để có thể phát triển thành tự truyện số và hồ sơ lịch sử gia đình
- Về lâu dài, dự án còn đưa ra lý tưởng có thể hợp nhất dòng thời gian của từng cá nhân để tạo nên “dòng thời gian của toàn nhân loại”
Phát triển và cài đặt
- Có thể tải bản phát hành mới nhất cho Linux/macOS/Windows
- Có thể phát triển bằng Dev Container trong môi trường VSCode + Docker
- Dự án được phát hành theo giấy phép AGPL, hạn chế việc tái gia công cho mục đích thương mại
Lịch sử dự án
- Bắt đầu từ dự án cá nhân ‘Photobak’ vào năm 2013, sau đó mở rộng thành công cụ sao lưu cho Google Photos, Facebook, Twitter
- Về sau tiếp tục phát triển với hỗ trợ nhiều người dùng, tích hợp dữ liệu vị trí... và tiến hóa thành Timelinize như hiện nay
- Tác giả cũng là nhà phát triển của máy chủ Caddy, và đang thực hiện dự án này như một thử nghiệm dài hạn vì chủ quyền dữ liệu cá nhân
1 bình luận
Ý kiến trên Hacker News
Tôi nghĩ đây là một dịch vụ tuyệt vời, nhưng tôi muốn nó được mở rộng hơn nhiều để có thể thay thế cả Nextcloud và Zotero, ghi lại mọi tài liệu và cuốn sách tôi thêm vào, mở ra hoặc chỉnh sửa, mọi ghi chú tôi viết, cả các tab trình duyệt tôi đã mở, thao tác sao chép/dán, thậm chí cả phím gõ, để có thể trả lời ngay những câu hỏi như: "Hôm nay cách đây 2 tuần tôi đã làm gì?". Tất cả những thứ này cần phải có thể tìm kiếm được và nhất định phải self-hosted, không phải nhằm biến nó thành phần mềm giám sát. Khi nhìn những người dùng hệ thống liên kết thủ công trong Obsidian, tôi lại càng thấy góc nhìn theo thời gian quan trọng hơn; nếu hôm nay tôi tìm thứ gì đó trên Wikipedia thì khả năng cao ở cùng thời điểm đó tôi cũng đang tìm thông tin tương tự hoặc làm việc liên quan, và điều đó rất có ý nghĩa
Tôi nhớ là trước đây Microsoft từng có một sản phẩm giúp Recall lại những gì tôi đã làm
Tôi không tìm lại được địa chỉ chính xác, nhưng nhớ là đã từng có ai đó đưa ra ý tưởng về một hệ thống máy tính nơi mọi object chỉ tồn tại thuần túy dựa trên thời gian, còn ngoài ra chỉ truy cập thông qua bộ lọc; tôi muốn tìm lại nó
Về chuyện thay thế Nextcloud, Zotero và lưu toàn bộ ghi chú, tab trình duyệt, clipboard, cả phím gõ thì về dài hạn đúng là có vẻ rất hữu ích. Tuy nhiên, đến mức tab trình duyệt hay phím gõ thì tôi thấy quá chi tiết. Tôi không cần đến mức đó, nhưng tôi cho rằng việc ghi lại và thấu hiểu cuộc sống của mình bằng dữ liệu là cần thiết, và ứng dụng này cũng xuất phát từ chính nhận thức đó
mholt nổi tiếng là người tạo ra web server Caddy, nên điều đó càng làm tôi hứng thú hơn với Timelinize
Suốt 10 năm qua tôi đã ghi lại dữ liệu GPS mỗi 2~3 phút vì tôi cần đúng kiểu sản phẩm này, thấy cực kỳ thú vị
Timelinize là một hệ thống entity-aware, nên ngay cả khi không có dữ liệu tọa độ thì nó vẫn có thể hiển thị trên bản đồ những thông tin gần nhau về mặt thời gian theo từng entity. Điều đó khiến tôi thực sự cảm nhận được Google có thể kết hợp bao nhiêu dữ liệu của tôi dựa trên Android/Chrome/Gmail/Maps/Timeline. Tôi tò mò không biết dự định sẽ tận dụng dữ liệu thời tiết cụ thể như thế nào, ví dụ có đang cân nhắc liên kết entity có vị trí với dữ liệu thời tiết trong quá khứ hay không
Tôi nghĩ đây là một ý tưởng thật sự rất hay, nhưng nếu mỗi lần thêm dữ liệu lại phải chạy Google Takeout thì quá phiền. Nếu có cập nhật thời gian thực thì đúng là killer app luôn, khá đáng tiếc
Tài liệu nguồn dữ liệu Google Photos
Tôi rất quan tâm đến dịch vụ này, (và cũng cảm ơn vì Caddy)
Tôi tò mò không biết việc cập nhật/chỉnh sửa dữ liệu được xử lý như thế nào. Khi import dữ liệu bán cấu trúc, ví dụ một sự kiện "jog" được chia nhỏ thành "light run" và "intense walk" rồi áp dụng ngược cả vào dữ liệu cũ, thì sẽ phải import trùng dữ liệu. Trong FAQ chỉ nhắc đến additive import; vì cấu trúc dữ liệu cứ thay đổi liên tục nên tôi không muốn khổ sở với các lệnh UPDATE trong SQL, hiện giờ tôi đang dùng plain text và git để version control. Làm vậy thì một cá nhân có thể theo dõi sự thay đổi dữ liệu của mình như thể du hành thời gian, điều này khá hay
trong các tùy chọn import nâng cao, bạn có thể chỉ định cách xác định tính duy nhất của item và cách phát hiện trùng lặp. Bạn cũng có thể tự chọn cách xử lý dữ liệu trùng. Mặc định là bỏ qua bản trùng, nhưng cũng có thể cập nhật, và còn có thể chỉ định giá trị nào sẽ được ưu tiên. Tuy nhiên, cập nhật là truy vấn UPDATE nên không thể hoàn tác. Tôi cũng đã thử nghiệm schema thuần additive, nhưng trên thực tế nó gặp khó khăn do độ phức tạp, rủi ro lỗi và hiệu năng duyệt chậm hơn. Dù vậy, vì ý tưởng có thể quay lại xem timeline biến đổi theo thời gian vẫn rất hấp dẫn nên tôi vẫn đang suy nghĩ về khả năng đó
Dịch vụ này sẽ gần như hoàn hảo nếu kết hợp với dữ liệu tài chính (ví dụ dữ liệu ngân hàng) và local LLM.
Tôi chưa biết chính xác sẽ dùng thế nào, nhưng nó có thể phân tích lịch sử thanh toán thẻ dựa trên tin nhắn, thông tin vị trí v.v. để phân loại vào ngân sách và hiển thị nhiều thống kê khác nhau.
Nếu có xe dùng cloud như Tesla thì còn có thể tự động phân loại quãng đường công tác/cá nhân, chi phí v.v. để phục vụ mục đích thuế vụ.
Có lẽ cũng hữu ích cho việc gợi ý trải nghiệm địa phương mà mình chưa thử và quản lý thời gian
ledger.txt(plaintextaccounting.org), tích hợp g-cal, và Home Assistant đều đang tụ lại khá giống nhau
Tôi cũng nghe kiểu ý tưởng này rất thường xuyên, và rất kỳ vọng vào việc tích hợp thông tin tài chính với LLM. Tôi nghĩ nó sẽ cực kỳ thú vị, hữu ích và cũng đủ tốt để dùng như một trợ lý cá nhân dưới góc độ bảo vệ dữ liệu cá nhân
Dự án rất hay. Nếu không thích cái tên timelinize thì bạn có từng cân nhắc tên Latin chưa, ví dụ có ứng viên như Temperi
Và sẽ rất tuyệt nếu hỗ trợ cả FindPenguins, nơi có nhiều loại dữ liệu như GPS, ảnh, văn bản v.v.
Gần đây tôi thấy bức bối vì các công cụ ghi lịch sử vị trí ngày càng khép kín hơn, và tôi nghĩ dự án này là một bước tiến quan trọng để thực sự giành lại quyền sở hữu dữ liệu. Tôi nhất định sẽ thử
Trông thật sự rất ngầu và giống như kiểu dịch vụ mà tôi đã vô thức mong muốn từ lâu.
Tôi có vài ý tưởng
Vì mức độ nhạy cảm về quyền riêng tư rất cao, tốt nhất là nên tự self-host ở nhà sau VPN như Wireguard hoặc Tailscale nếu có thể, và sẽ tuyệt hơn nữa nếu là ứng dụng mã hóa E2E như Ente.io
Nếu có thể tách riêng index và backend lưu trữ thì ảnh v.v. có thể để ở chỗ sẵn có (Immich, Ente.io v.v.) để tránh lưu trùng lặp. Timelinize không thể thay thế hoàn toàn mọi loại dữ liệu, nên tôi muốn dùng song song với các ứng dụng chuyên biệt xử lý tốt nhất từng loại dữ liệu
Sẽ tốt hơn rất nhiều nếu hỗ trợ import lịch sử du lịch từ Polarsteps và cả backup Signal
GitHub công cụ backup Signal