Skip to content

dhowden/tag

Folders and files

NameName
Last commit message
Last commit date
Apr 17, 2024
Nov 4, 2018
Jul 16, 2016
Jun 8, 2015
Nov 22, 2019
May 1, 2015
Apr 2, 2018
Mar 19, 2015
Jun 18, 2022
Nov 22, 2019
Apr 2, 2018
Apr 17, 2024
Jun 17, 2022
Apr 2, 2018
Nov 4, 2018
Jul 16, 2016
Jan 22, 2024
Jan 22, 2024
Nov 20, 2020
Apr 17, 2024
Mar 19, 2015
Jan 22, 2024
May 30, 2022
Apr 2, 2018
Aug 28, 2020
Nov 4, 2018
Nov 22, 2019
Aug 28, 2020
Nov 22, 2019
Apr 13, 2024

Repository files navigation

MP3/MP4/OGG/FLAC metadata parsing library

GoDoc

This package provides MP3 (ID3v1,2.{2,3,4}) and MP4 (ACC, M4A, ALAC), OGG and FLAC metadata detection, parsing and artwork extraction.

Detect and parse tag metadata from an io.ReadSeeker (i.e. an *os.File):

m, err := tag.ReadFrom(f)
if err != nil {
	log.Fatal(err)
}
log.Print(m.Format()) // The detected format.
log.Print(m.Title())  // The title of the track (see Metadata interface for more details).

Parsed metadata is exported via a single interface (giving a consistent API for all supported metadata formats).

// Metadata is an interface which is used to describe metadata retrieved by this package.
type Metadata interface {
	Format() Format
	FileType() FileType

	Title() string
	Album() string
	Artist() string
	AlbumArtist() string
	Composer() string
	Genre() string
	Year() int

	Track() (int, int) // Number, Total
	Disc() (int, int) // Number, Total

	Picture() *Picture // Artwork
	Lyrics() string
	Comment() string

	Raw() map[string]interface{} // NB: raw tag names are not consistent across formats.
}

Audio Data Checksum (SHA1)

This package also provides a metadata-invariant checksum for audio files: only the audio data is used to construct the checksum.

https://pkg.go.dev/github.com/dhowden/tag#Sum

Tools

There are simple command-line tools which demonstrate basic tag extraction and summing:

$ go install github.com/dhowden/tag/cmd/tag@latest
$ cd $GOPATH/bin
$ ./tag 11\ High\ Hopes.m4a
Metadata Format: MP4
Title: High Hopes
Album: The Division Bell
Artist: Pink Floyd
Composer: Abbey Road Recording Studios/David Gilmour/Polly Samson
Year: 1994
Track: 11 of 11
Disc: 1 of 1
Picture: Picture{Ext: jpeg, MIMEType: image/jpeg, Type: , Description: , Data.Size: 606109}

$ ./sum 11\ High\ Hopes.m4a
2ae208c5f00a1f21f5fac9b7f6e0b8e52c06da29