テクノロジー · 実用ガイド
MediaMonkey 4の再生回数と最終再生日時をStrawberryへ移す
MM4のパスを対応付け、2項目を確認し、Linux上に検査済みのStrawberryデータベースコピーを作ります。

Strawberryで同じ音楽をスキャンしてもMediaMonkey 4の履歴は戻りません。生のMM.DBからPlayCounterとLastTimePlayedを読み、既存曲へ対応付け、playcountとlastplayedだけを新しいDBコピーへ書きます。
新規スキャン後未使用の対象(playcount 0、lastplayed -1、列があればskipcount 0)だけに使います。ライブプロファイル、評価、プレイリスト、個別イベント、欠落音源は扱いません。
整合したコピーを用意する
両プレーヤーを終了し、MM.DBとstrawberry.dbのコピーを作り、原本を保存します。-wal/-shm/-journalが隣接する入力は拒否され、削除で回避しません。
生のMM4 DBと未使用対象を使います。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
:\Music\Album\Track.flacだけではボリュームを決められません。返されたIDMediaを使い、mapping.json version 1でIDMedia 7の:\Musicを/home/YOU/Musicのように重複なく割り当てます。
曖昧一致では停止する
生の:\形式だけを扱い、ドライブ文字/UNC復元、大文字小文字やUnicode統一、作者/題名推測はしません。
重複URL、同一実体への複数履歴、cue、欠落曲、曖昧一致は停止します。planを編集せず経路を直します。
変更をプレビューする
実行: 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は診断付き停止です。日付は1970-01-01から作成時+5分まで。正回数で日付なしは停止、0回で日付ありは保持、なしはskipped-no-supported-historyです。
同じplanを適用して検証する
実行: python3 mm4_to_strawberry.py apply --plan preview-mm4/plan.json --out-dir migrated-mm4
applyはpreviewを再計算します。データベース、mapping、script、音源識別メタデータまたは判断が変わるとplanは無効です。成功時は使用中のprofileを上書きせず、migrated-mm4/strawberry.dbとverification.jsonを作成します。
レポートは入出力SHA-256、行数、plan checksumを記録し、統計vector全体、他の全table/schema、余分な書込みtriggerを確認し、PRAGMA quick_checkと完全なPRAGMA integrity_checkを実行します。原本のhashが変わっていないことも確認します。
隔離して試し範囲を守る
別OSアカウントまたは隔離したStrawberry data directoryで返されたdatabaseを試します。拒否された場合は原本を保ち、schema/buildを調査し、version番号を変えて強制しません。
57件のsynthetic testはinspect-preview-apply、固定schema-11 songs fixture、無関係field/FTS/playlistの保持、曖昧さと入力変更の拒否、4 timezoneで1,000件の日付変換を扱います。全releaseや実際のMM4 libraryを証明するものではありません。
移すのは既存local songのplaycountとlastplayedだけです。rating、playlist、個別event、使用済みlibraryのmerge、欠落audio、MM3/MM5全般のsupportは対象外です。
