feat: implement JAudioTagger fallback for improved metadata extraction#1141
Merged
theovilardo merged 1 commit intomasterfrom Feb 19, 2026
Merged
feat: implement JAudioTagger fallback for improved metadata extraction#1141theovilardo merged 1 commit intomasterfrom
theovilardo merged 1 commit intomasterfrom
Conversation
- **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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
readWithJAudioTaggeras a fallback mechanism inAudioMetadataReaderwhenTagLibfails to retrieve essential tags (title/artist).AudioMetadataReaderto trackTagLibproperty mapping and fallback triggers.isDefaultMetadatacheck inSyncWorkerto identify files with placeholder MediaStore metadata (e.g.,<unknown>, "Unknown Artist").SyncWorkerto trigger file-based tag reading if MediaStore returns default/missing values.jaudiotaggerdependency tobuild.gradle.ktsto handle non-standard ID3 frames and specific encoding edge cases (e.g., 48kHz MP3s from ffmpeg).proguard-rules.proto preserveorg.jaudiotaggerclasses.