func (t *Track) UnmarshalTags(v interface{}) error {
	decoder, err := mapstructure.NewDecoder(&mapstructure.DecoderConfig{
		TagName: "m3u",
		Result:  &v,
	})
	if err != nil {
		return err
	}
	return decoder.Decode(t.Tags)
}
UnmarshalTags will decode the Tags map into a struct containing fields with `m3u` tags matching map keys.
package m3u
import (
	"bytes"
	"fmt"
	"io"
	"regexp"
	"strconv"
	"strings"
	"github.com/mitchellh/mapstructure"
)
type Playlist struct {
	Tracks []*Track
}
type Track struct {
	Name   string
	Length float64
	URI    string
	Tags   map[string]string
}