科技 · 實用指南
將 MediaMonkey 4 的播放次數和上次播放時間移轉到 Strawberry
明確對應 MM4 路徑、預覽兩項統計,並用經審讀、只寫入副本的轉接工具在 Linux 上產生經檢查的 Strawberry 資料庫副本。

在 Strawberry 掃描同一批音樂不會恢復 MediaMonkey 4 的歷史。本流程從原始 MM4 MM.DB 讀取 PlayCounter 與 LastTimePlayed,配對 Linux 上已掃描的歌曲,只將 playcount 與 lastplayed 寫入新的 Strawberry 資料庫副本。
它只適用於剛掃描且未使用的目標資料庫:playcount 應為 0、lastplayed 為 -1,存在 skipcount 時也應為 0。它不會取代使用中的設定檔、合併已使用的資料庫、移轉評分或播放清單、重建逐次播放事件,也不會找回遺失音訊。
準備一致副本與未使用的目標資料庫
退出兩個播放器。將原始 MM4 資料庫複製為 MM.DB,將剛掃描的 Strawberry 資料庫複製為 strawberry.db,並另外保存原始檔。若輸入檔案旁有 -wal、-shm 或 -journal,工具會拒絕;不要刪除這些檔案來假造一致備份。
使用原始 MM4 資料,不要使用可能包含本地時間的 XML。目標資料庫保持未播放。下載 https://watchatease.com/guide-tools/mm4-to-strawberry-v1.0.1.zip,並於解壓縮前核對 SHA-256;測試使用產生的記錄,不是真實媒體庫。
檢查並對應每個來源磁碟區
執行:python3 mm4_to_strawberry.py inspect --mm-db MM.DB --strawberry-db strawberry.db
報告會列出實際 IDMedia、原始路徑與目標 URL。像 :\Music\Album\Track.flac 的路徑本身不含磁碟區身分,必須使用回傳的 IDMedia。建立 version 為 1 的 mapping.json,為每個磁碟區建立一條不重疊的 id_media/source_root 規則,例如將 IDMedia 7 的 :\Music 對應到 /home/YOU/Music。
遇到歧義配對就停止
本版本支援文件所述的原始 :\ 路徑,不重建帶有磁碟機代號或 UNC 的路徑,不折疊 Linux 大小寫,不統一不同 Unicode 寫法,也不依演出者或標題猜測。
重複的目標 URL、兩份歷史指向同一個實體檔案、cue 分段、目標缺少歌曲及歧義配對都會阻擋執行。修正路徑或資料庫;不要編輯計畫來任意選取資料列。
預覽每一項變更
執行:python3 mm4_to_strawberry.py preview --mm-db MM.DB --strawberry-db strawberry.db --mapping mapping.json --confirm-mm4-utc --out-dir preview-mm4
使用新的目錄,抽查 plan.json 中的已知曲目。沒有阻擋時結束碼為 0;有阻擋時為 2,並留下診斷。日期按 (date - 25569) × 86400 轉換,範圍為 1970-01-01 至預覽時間後五分鐘。播放次數為正但缺少有效日期會阻擋;零次數有日期會保留;零次數無日期會標記為 skipped-no-supported-history。
套用未變更的計畫並驗證副本
審閱乾淨的計畫後執行:python3 mm4_to_strawberry.py apply --plan preview-mm4/plan.json --out-dir migrated-mm4
apply 會重新計算預覽。資料庫、對應、指令碼、音訊身分中繼資料或決定若有變更,計畫就會失效。成功後會產生 migrated-mm4/strawberry.db 和 verification.json,不會安裝或覆蓋使用中的設定檔。
報告會記錄輸入與輸出的 SHA-256、資料列數和計畫總和檢查碼;比較完整統計向量、檢查其餘資料表與結構描述、拒絕額外寫入觸發器,並執行 PRAGMA quick_check 與完整 PRAGMA integrity_check。確認原始檔案雜湊值保持不變。
隔離測試並遵守界線
在獨立系統帳戶或單獨的 Strawberry 資料目錄中測試回傳的資料庫。若無法接受,保留原始檔並調查結構描述或建置版本;不要竄改版本號來強制相容。
57 個合成測試涵蓋 inspect-preview-apply、固定的 schema-11 songs 測試資料、無關欄位/FTS/播放清單保全、歧義與輸入變更拒絕,以及四個時區下 1,000 個日期轉換;這些測試不代表所有版本或真實資料庫都相容。
本指南只移轉現有本機歌曲的 playcount 與 lastplayed;不移轉評分、播放清單或逐次事件,不合併已使用的資料庫,不修復遺失音訊,也不宣稱通用支援 MM3/MM5。
