{"id":13821128,"url":"https://github.com/dhowden/tag","last_synced_at":"2025-05-14T18:05:12.894Z","repository":{"id":28992898,"uuid":"32519690","full_name":"dhowden/tag","owner":"dhowden","description":"ID3, MP4 and OGG/FLAC metadata parsing in Go","archived":false,"fork":false,"pushed_at":"2024-07-30T21:17:31.000Z","size":1550,"stargazers_count":602,"open_issues_count":29,"forks_count":77,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-04-11T10:00:35.515Z","etag":null,"topics":["audio-data","checksum","flac","go","id3","id3v1","id3v2","mp3","mp4","ogg","parsing"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dhowden.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-03-19T12:22:52.000Z","updated_at":"2025-04-08T05:41:11.000Z","dependencies_parsed_at":"2024-01-15T15:19:55.874Z","dependency_job_id":"96a432b5-e4c5-45e0-93cb-1e0f7f872316","html_url":"https://github.com/dhowden/tag","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhowden%2Ftag","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhowden%2Ftag/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhowden%2Ftag/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhowden%2Ftag/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dhowden","download_url":"https://codeload.github.com/dhowden/tag/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254198514,"owners_count":22030965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio-data","checksum","flac","go","id3","id3v1","id3v2","mp3","mp4","ogg","parsing"],"created_at":"2024-08-04T08:01:15.842Z","updated_at":"2025-05-14T18:05:07.851Z","avatar_url":"https://github.com/dhowden.png","language":"Go","funding_links":[],"categories":["Go","HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"# MP3/MP4/OGG/FLAC metadata parsing library\n[![GoDoc](https://pkg.go.dev/badge/github.com/dhowden/tag)](https://pkg.go.dev/github.com/dhowden/tag)\n\nThis package provides MP3 (ID3v1,2.{2,3,4}) and MP4 (ACC, M4A, ALAC), OGG and FLAC metadata detection, parsing and artwork extraction.\n\nDetect and parse tag metadata from an `io.ReadSeeker` (i.e. an `*os.File`):\n\n```go\nm, err := tag.ReadFrom(f)\nif err != nil {\n\tlog.Fatal(err)\n}\nlog.Print(m.Format()) // The detected format.\nlog.Print(m.Title())  // The title of the track (see Metadata interface for more details).\n```\n\nParsed metadata is exported via a single interface (giving a consistent API for all supported metadata formats).\n\n```go\n// Metadata is an interface which is used to describe metadata retrieved by this package.\ntype Metadata interface {\n\tFormat() Format\n\tFileType() FileType\n\n\tTitle() string\n\tAlbum() string\n\tArtist() string\n\tAlbumArtist() string\n\tComposer() string\n\tGenre() string\n\tYear() int\n\n\tTrack() (int, int) // Number, Total\n\tDisc() (int, int) // Number, Total\n\n\tPicture() *Picture // Artwork\n\tLyrics() string\n\tComment() string\n\n\tRaw() map[string]interface{} // NB: raw tag names are not consistent across formats.\n}\n```\n\n## Audio Data Checksum (SHA1)\n\nThis package also provides a metadata-invariant checksum for audio files: only the audio data is used to\nconstruct the checksum.\n\n[https://pkg.go.dev/github.com/dhowden/tag#Sum](https://pkg.go.dev/github.com/dhowden/tag#Sum)\n\n## Tools\n\nThere are simple command-line tools which demonstrate basic tag extraction and summing:\n\n```console\n$ go install github.com/dhowden/tag/cmd/tag@latest\n$ cd $GOPATH/bin\n$ ./tag 11\\ High\\ Hopes.m4a\nMetadata Format: MP4\nTitle: High Hopes\nAlbum: The Division Bell\nArtist: Pink Floyd\nComposer: Abbey Road Recording Studios/David Gilmour/Polly Samson\nYear: 1994\nTrack: 11 of 11\nDisc: 1 of 1\nPicture: Picture{Ext: jpeg, MIMEType: image/jpeg, Type: , Description: , Data.Size: 606109}\n\n$ ./sum 11\\ High\\ Hopes.m4a\n2ae208c5f00a1f21f5fac9b7f6e0b8e52c06da29\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhowden%2Ftag","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhowden%2Ftag","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhowden%2Ftag/lists"}