Tecnología · GUÍA PRÁCTICA
Mover recuentos y última reproducción de MediaMonkey 4 a Strawberry
Mapea rutas de MM4, previsualiza dos estadísticas y crea en Linux una copia comprobada de la base de Strawberry.

Escanear la misma música en Strawberry no recupera el historial de MediaMonkey 4. El flujo lee PlayCounter y LastTimePlayed del MM.DB original, vincula canciones existentes y escribe solo playcount y lastplayed en una copia nueva.
Úsalo solo con un destino recién escaneado y sin usar: playcount 0, lastplayed -1 y, si existe, skipcount 0. No reemplaza perfiles, fusiona bibliotecas usadas, transfiere valoraciones/listas/eventos ni recupera audio.
Prepara copias coherentes
Cierra ambos reproductores, copia MM.DB y strawberry.db y guarda los originales. Se rechazan entradas junto a -wal/-shm/-journal; no los borres para eludirlo.
Usa la base MM4 original y un destino sin uso. Descarga https://watchatease.com/guide-tools/mm4-to-strawberry-v1.0.1.zip y verifica SHA-256 antes de extraer. Las pruebas usan datos generados.
Inspecciona y mapea volúmenes
Ejecuta: python3 mm4_to_strawberry.py inspect --mm-db MM.DB --strawberry-db strawberry.db
:\Music\Album\Track.flac no identifica el volumen. Usa IDMedia devuelto y mapping.json version 1 con reglas no superpuestas, por ejemplo IDMedia 7, :\Music a /home/YOU/Music.
Detente ante ambigüedad
Solo admite la forma :\ documentada; no reconstruye unidades/UNC, unifica mayúsculas/Unicode ni adivina artista/título.
URL duplicadas, dos historiales para un archivo, cue, canciones ausentes o ambigüedad bloquean. Corrige rutas; no edites el plan.
Previsualiza cada cambio
Ejecuta: python3 mm4_to_strawberry.py preview --mm-db MM.DB --strawberry-db strawberry.db --mapping mapping.json --confirm-mm4-utc --out-dir preview-mm4
Revisa plan.json en un directorio nuevo. Éxito termina 0; bloqueos 2. Fechas desde 1970-01-01 hasta creación+5 minutos. Positivo sin fecha bloquea; cero con fecha queda; sin ella es skipped-no-supported-history.
Aplica el mismo plan y verifica
Ejecuta: python3 mm4_to_strawberry.py apply --plan preview-mm4/plan.json --out-dir migrated-mm4
apply recalcula la vista previa. Cualquier cambio en bases, mapping, script, metadatos de identidad del audio o decisiones invalida el plan. Si termina bien, crea migrated-mm4/strawberry.db y verification.json sin instalar ni sobrescribir un perfil activo.
El informe registra SHA-256 de entrada y salida, filas y checksum del plan; compara todo el vector de estadísticas; revisa las demás tablas y el schema; rechaza triggers de escritura extra; y ejecuta PRAGMA quick_check y PRAGMA integrity_check completo. Confirma que los hashes originales no cambiaron.
Prueba aislado y respeta límites
Prueba la base devuelta en otra cuenta del sistema o en un directorio aislado de Strawberry. Si se rechaza, conserva el original e investiga schema/build; no cambies un número de versión para forzarla.
Las 57 pruebas sintéticas cubren inspect-preview-apply, un fixture songs schema-11 fijado, preservación de campos ajenos/FTS/playlists, rechazos por ambigüedad o entradas cambiadas y 1.000 conversiones de fecha en cuatro zonas horarias. No prueban cada release ni una biblioteca MM4 real.
Solo mueve playcount y lastplayed de canciones locales existentes. Quedan fuera ratings, playlists, eventos individuales, mezcla con una biblioteca usada, audio ausente y soporte universal de MM3/MM5.
