trimmed down metadata & own extractor for vobis(flac)

This commit is contained in:
2026-04-15 22:33:36 +02:00
parent 759aa7e08b
commit e9fbd044d0
4 changed files with 127 additions and 28 deletions

View File

@@ -11,18 +11,27 @@ import (
)
type Metadata struct {
Title string
Title *string
Artist []string
Album string
Album *string
AlbumArtist []string
Track int
TotalTracks int
Disc int
TotalDiscs int
Comment string
Comment *string
}
func ReadAudioTags(filePath string) (*Metadata, error) {
ext := strings.ToLower(filepath.Ext(filePath))
switch {
case ext == ".flac":
return readVorbisMetadata(filePath)
default:
return readGenericAudioTags(filePath)
}
}
func readGenericAudioTags(filePath string) (*Metadata, error) {
f, err := os.Open(filePath)
if err != nil {
return nil, fmt.Errorf("failed to open file: %w", err)
@@ -35,18 +44,19 @@ func ReadAudioTags(filePath string) (*Metadata, error) {
}
track, totalTracks := m.Track()
disc, totalDiscs := m.Disc()
title := m.Title()
album := m.Album()
comment := m.Comment()
info := &Metadata{
Title: m.Title(),
Title: &title,
Artist: parseSeperatedTag(m.Artist()),
Album: m.Album(),
Album: &album,
AlbumArtist: parseSeperatedTag(m.AlbumArtist()),
Track: track,
TotalTracks: totalTracks,
Disc: disc,
TotalDiscs: totalDiscs,
Comment: m.Comment(),
Comment: &comment,
}
return info, nil