Skip to content

feat: implement JAudioTagger fallback for improved metadata extraction#1141

Merged
theovilardo merged 1 commit intomasterfrom
fix/metadata-issues-48khz
Feb 19, 2026
Merged

feat: implement JAudioTagger fallback for improved metadata extraction#1141
theovilardo merged 1 commit intomasterfrom
fix/metadata-issues-48khz

Conversation

@theovilardo
Copy link
Copy Markdown
Owner

  • Metadata Extraction:
    • Introduce readWithJAudioTagger as a fallback mechanism in AudioMetadataReader when TagLib fails to retrieve essential tags (title/artist).
    • Add diagnostic logging to AudioMetadataReader to track TagLib property mapping and fallback triggers.
    • Implement isDefaultMetadata check in SyncWorker to identify files with placeholder MediaStore metadata (e.g., <unknown>, "Unknown Artist").
    • Expand metadata augmentation logic in SyncWorker to trigger file-based tag reading if MediaStore returns default/missing values.
  • Dependencies & Configuration:
    • Add jaudiotagger dependency to build.gradle.kts to handle non-standard ID3 frames and specific encoding edge cases (e.g., 48kHz MP3s from ffmpeg).
    • Update proguard-rules.pro to preserve org.jaudiotagger classes.
  • Data Management:
    • Ensure unified metadata consistency by falling back to JAudioTagger for various fields including album artist, track number, bitrate, and artwork.

- **Metadata Extraction**:
    - Introduce `readWithJAudioTagger` as a fallback mechanism in `AudioMetadataReader` when `TagLib` fails to retrieve essential tags (title/artist).
    - Add diagnostic logging to `AudioMetadataReader` to track `TagLib` property mapping and fallback triggers.
    - Implement `isDefaultMetadata` check in `SyncWorker` to identify files with placeholder MediaStore metadata (e.g., `<unknown>`, "Unknown Artist").
    - Expand metadata augmentation logic in `SyncWorker` to trigger file-based tag reading if MediaStore returns default/missing values.
- **Dependencies & Configuration**:
    - Add `jaudiotagger` dependency to `build.gradle.kts` to handle non-standard ID3 frames and specific encoding edge cases (e.g., 48kHz MP3s from ffmpeg).
    - Update `proguard-rules.pro` to preserve `org.jaudiotagger` classes.
- **Data Management**:
    - Ensure unified metadata consistency by falling back to JAudioTagger for various fields including album artist, track number, bitrate, and artwork.
@theovilardo theovilardo merged commit 502e7ae into master Feb 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant