テクノロジー · 実用ガイド

MediaMonkey 4の再生回数と最終再生日時をStrawberryへ移す

MM4のパスを対応付け、2項目を確認し、Linux上に検査済みのStrawberryデータベースコピーを作ります。

原本を残し、MediaMonkeyとStrawberryのコピーから新出力を作るオリジナル図。
オリジナルのイラスト:整合したコピーから別のデータベースを作成し、使用中のプロファイルは置き換えません。 Watch at Ease

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は対象外です。

MM4統計のパス割り当て、プレビュー、適用、検証を示すオリジナル図。
オリジナルのイラスト:完全一致をプレビューし、同じplanを適用して検証レポートを確認します。 Watch at Ease