開發筆記2026年 03月 05日閱讀時間 4 分鐘

Lens Sorter:最適合懶人的記憶卡照片整理法,也為 AI 準備好索引檔案

Lens Sorter:最適合懶人的記憶卡照片整理法,也為 AI 準備好索引檔案

旅遊完、拍完照懶得整理相機記憶卡? Lens Sorter 是一款開源的照片整理腳本,幫你自動歸檔、過濾廢檔,並生成 AI 專屬索引。擺脫封閉相簿軟體,用 Clean Data 打造未來的數位記憶庫。

infoInfo

這篇文章將介紹我開發的Lens Sorter,一個幫你自動化整理多相機照片,並為 AI 時代做好準備的開源工具。

現代攝影的災難:跨設備的檔案地獄#

出去玩一趟,你的記憶卡裡通常會長這樣:

  • Sony 相機 DSC01234.JPGC0012.MP4 以及不知所云的 .XML 伴隨檔。
  • GoProGX010012.MP4,外加塞滿空間的 .THM.LRV 預覽廢檔。
  • 手機 :一堆不同命名規則的照片與影片。

回到家,面對這堆混亂的檔案,整理的熱情瞬間歸零。照片一直囤積在記憶卡裡面,徒增損壞的風險。

最後的妥協往往是建一個名為「2026_日本」的資料夾,全部塞進去,然後再也沒打開過 (((o (゚▽゚) o)))。

另一個選擇是依賴 Lightroom 或 Apple Photos。但這帶來了 「資料主權 (Data Ownership)」 的隱憂 —— 你的整理邏輯(相簿、標籤)被死死鎖在這些軟體的私有資料庫裡。只要你停止訂閱或切換生態系,所有的苦心整理都會付諸流水。

這些就是我開發 Lens Sorter 的原因。要可以一鍵整理照片,同時又能保有資料主權。


Lens Sorter:你的萬能數位防潮箱#

Lens Sorter 是一個輕量級的 Python 腳本,它的核心哲學是 File-System First。它不建構封閉資料庫,而是幫你在硬碟上打造最乾淨的「原始數據 (Raw Data)」。

1. 通用歸檔與標準化命名#

它會自動讀取所有檔案的 EXIF 與 metadata 時間,然後做兩件事:

  1. 結構化 :將檔案移動到 YYYY/MM/YYYY-MM-DD_事件名稱/ 的資料夾結構中(事件名稱支援互動式輸入)。
  2. 標準化 :將檔名統一更名為 YYYYMMDD_HHMMSS_原始檔名.JPG。即便照片來自不同設備,時間軸也不會錯亂,且完全避免了檔名衝突(例如不同相機都產生了一張 DSC0001.JPG)。

2. 針對 GoPro 與 Sony 的斷捨離#

一般的搬檔工具很笨,會把所有垃圾一起複製。 Lens Sorter 內建了優化邏輯:它會自動 ** 忽略 GoPro 產生的 .THM(縮圖)與 .LRV(低畫質預覽檔)**,只保留最高畫質的主影片。這通常能為你的外接硬碟省下 10% 到 20% 的無用空間。同時,它懂得將 Sony 相機特有的 .XML Sidecar 檔案與主影片綁定處理。

3. 未來佈局:AI 專屬的 _index.json#

這是 Lens Sorter 區別於其他整理工具的最大特色。

在整理完畢後,它會在根目錄生成一個極輕量的 _index.json。這個檔案是整個照片庫的「地圖」。

為什麼需要 JSON? 在 AI 時代,讓大語言模型 (LLM) 或 AI Agent 掃描你硬碟裡幾萬張照片的 I/O 成本極高。有了 _index.json,未來你可以直接把這個小檔案丟給 AI 助理(就像 ChatGPT 或 Claude),下達指令:

  • 「幫我找出 2024 年 12 月所有在京都的影片檔路徑。」
  • 「分析我的相片庫,我最常在每年的幾月出去玩?」

透過清晰的 JSON 結構,你的照片庫瞬間具備了機器可讀 (Machine-readable) 的擴展性。


Clean Data 才是真正的資產#

就像我在 VoiceVault 專案中強調「Markdown Is All You Need」,在照片管理上,「Clean Folder Is All You Need」

當你的檔案擁有完美的資料夾結構、防撞名的標準化檔名,以及清晰的 JSON 索引時,你就不再需要依賴任何封閉的商業相簿軟體。

你可以輕鬆地用任何開源圖庫工具(如 PhotoPrismImmich)掛載這個目錄,或是直接和 AI Agent 互動。

回憶是你自己的,別讓它們變成商業軟體用來綁架你的籌碼。


如何開始?#

Lens Sorter 完全開源且免費,只要你有 Python 環境就能立刻執行。

  • GitHub Repo: Lens Sorter
  • 基礎用法 :
    pip3 install tqdm Pillow
    python3 lens_sorter.py --input "/你的記憶卡路徑" --output "/你的硬碟"

Mike Chen

專注於科技與人文的交匯點。

mail訂閱電子報

不定期發送最新思考與發現。

無廣告,隨時取消