Files
serato-doctor/docs/design/database-v2-parser.md
2026-07-01 08:13:20 -07:00

1.1 KiB

Database V2 Read-only Parser

Problem

Crates and files do not explain every orange track in Serato. The legacy database V2 contains Serato's library-level track paths and metadata, so it must be inspected independently from crate references.

Architecture

The parser reads the file as a big-endian tag-length-value stream. Top-level otrk records contain nested fields including pfil (path), tsng (title), tart (artist), talb (album), and tgen (genre). Text is UTF-16 big-endian.

Analysis reports total database entries, entries whose filenames occur in the selected music scan, entries outside that scan, scanned tracks absent from the database, and duplicate database paths. “Outside scan” is deliberately not called missing because Serato databases can include samples and tracks from other roots.

Safety

The parser calls only read_bytes; it never opens the database for writing. No metadata values or personal paths are sent to logs or the dashboard.

Verification

Synthetic TLV fixtures cover version, paths, metadata, incomplete records, and health integration. The sample library includes a generated ten-entry database.