Skip to content

fix: plumb albumArtist through Swift metadata embedBatch API (issue #74)#80

Merged
ShadyUnderLight merged 1 commit intomainfrom
fix/issue74-album-artist-metadata
Apr 27, 2026
Merged

fix: plumb albumArtist through Swift metadata embedBatch API (issue #74)#80
ShadyUnderLight merged 1 commit intomainfrom
fix/issue74-album-artist-metadata

Conversation

@ShadyUnderLight
Copy link
Copy Markdown
Owner

Summary

Plumb albumArtist through Swift metadata embedBatch API (Issue #74).

Problem

embed_metadata.py already supports reading item.get("albumArtist") with format mappings ready:

  • FLAC to ALBUMARTIST
  • MP3 to TPE2
  • M4A to ©aART

But the Swift embedBatch API lacks the albumArtist parameter, breaking the data flow at the business layer.

Changes

  1. Library/MetadataEmbedder.swift

    • Add albumArtist: String? parameter to MetadataWriter.embedBatch protocol
    • PythonMetadataAdapter.embedBatch serializes albumArtist into JSON payload
    • MetadataEmbedder.embedBatch passes through the parameter
  2. Library/TrackSplitterEngine.swift

    • Pass albumArtist: performer when calling embedBatch (CUE PERFORMER as album-level artist source)
  3. Tests/MetadataEmbeddingTests.swift

    • Update all embedBatch calls with albumArtist parameter
    • Add FLAC albumartist readback verification
    • Add MP3 TPE2 readback verification
    • Add M4A ©aART readback verification
  4. docs/METADATA_MATRIX.md

    • Add album artist row to output format table
    • Update Swift API signature, mark albumArtist as reachable
    • Remove "not plumbed" notes

Verification

  • Swift build succeeds
  • 108 tests pass (6 metadata embedding tests now include albumArtist assertions)

@ShadyUnderLight ShadyUnderLight merged commit c087cbb into main Apr 27, 2026
1 check passed
@ShadyUnderLight ShadyUnderLight deleted the fix/issue74-album-artist-metadata branch April 27, 2026 04:15
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.

2 participants