diff --git a/internal/metadata/metadata.go b/internal/metadata/metadata.go index e2a8be2..5e1e88b 100644 --- a/internal/metadata/metadata.go +++ b/internal/metadata/metadata.go @@ -19,6 +19,7 @@ type Metadata struct { TotalTracks int Comment *string ISRC *string + Date *string } func ReadAudioTags(filePath string) (*Metadata, error) { diff --git a/internal/metadata/vobis.go b/internal/metadata/vobis.go index 645fee3..8e8ca84 100644 --- a/internal/metadata/vobis.go +++ b/internal/metadata/vobis.go @@ -79,12 +79,22 @@ func readVorbisMetadata(file string) (*Metadata, error) { isrc = &isrcs[0] } + dates, err := cmt.Get("DATE") + if err != nil { + return nil, err + } + var date *string + if len(dates) > 0 { + date = &dates[0] + } + metadata := &Metadata{ Title: title, Artist: artists, Album: album, AlbumArtist: albumArtists, Comment: comment, + Date: date, ISRC: isrc, } @@ -153,6 +163,10 @@ func createVorbisMetaBlock(m Metadata) flacvorbis.MetaDataBlockVorbisComment { vorbisMeta.Add("ISRC", *m.ISRC) } + if m.Date != nil { + vorbisMeta.Add("DATE", *m.Date) + } + for _, artist := range m.Artist { vorbisMeta.Add(flacvorbis.FIELD_ARTIST, artist) slog.Debug("Added ARTIST filed to metadata", "artist", artist)