package module
Version: v0.0.0-...-58d5ffd Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: May 16, 2020 License: LGPL-2.1 Imports: 4 Imported by: 0



library and command to retrieve audio metadata tags (uses TagLib)

  • uses libtag directly (doesn't use the C bindings)
  • read and write support
  • returns the extended metadata (albumartist, composer, discnumber, etc...)
  • builds with cgo

Install command and library

go get

Install library

go get

Command example

# audiotags '/store/music/John Holloway/J.S. Bach_ The Sonatas and Partitas for violin solo/2-09 Allegro assai [Sonata No. 3 in C major BWV 1005].mp3'
album J.S. Bach: The Sonatas and Partitas for violin solo
date 2007
filetype MPG/3
title Allegro assai [Sonata No. 3 in C major BWV 1005]
tracknumber 9
albumartist John Holloway
artist John Holloway
composer Johann Sebastian Bach
discnumber 2/2
genre Classical
length 320
bitrate 222
samplerate 44100
channels 2

Library example

package main

import (

func main() {

	if len(os.Args) != 2 {
        fmt.Println("pass path to file")

	props, audioProps, err := audiotags.Read(os.Args[1])

	if err != nil {

	for k, v := range props {
        fmt.Printf("%s %s\n", k, v)

	fmt.Printf("length %d\nbitrate %d\nsamplerate %d\nchannels %d\n",
        audioProps.Length, audioProps.Bitrate, audioProps.Samplerate, audioProps.Channels)



On Debian/Ubuntu:

apt-get install libtag1-vanilla

On OS X:

brew install taglib




View Source
const (
	JPEG = iota
	PNG  = iota


This section is empty.


func ReadTags

func ReadTags(filename string) (map[string]string, error)


type AudioProperties

type AudioProperties struct {
	Length, LengthMs, Bitrate, Samplerate, Channels int

func Read

func Read(filename string) (map[string]string, *AudioProperties, error)

func ReadAudioProperties

func ReadAudioProperties(filename string) (*AudioProperties, error)

type File

type File C.TagLib_FileRefRef

func Open

func Open(filename string) (*File, error)

func (*File) Close

func (f *File) Close()

func (*File) ReadAudioProperties

func (f *File) ReadAudioProperties() *AudioProperties

func (*File) ReadTags

func (f *File) ReadTags() map[string]string

func (*File) RemovePictures

func (f *File) RemovePictures() bool

func (*File) WritePicture

func (f *File) WritePicture(data []byte, fmt, w, h int) bool

func (*File) WriteTag

func (f *File) WriteTag(tag, value string) bool

func (*File) WriteTags

func (f *File) WriteTags(tag_map map[string]string) bool

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL