nup debug (and presumably other subcommands) prints an unhelpful error when it's unable to read a file due to it having an ID3v2.2 tag:
% nup debug -id3 bad.mp3
Failed reading ID3 tag: no ID3 tag
% nup debug -mpeg bad.mp3
Failed reading MPEG frames: computing duration: unsupported layer
The old github.com/hjfreyer/taglib-go package that I'm using only supports ID3v2.3 and ID3v2.4; v2.2 is an obsolete version that uses 3-character frame IDs (e.g. TT2) instead of 4-character ones (TIT2).
I don't think it's worthwhile supporting v2.2 tags (it's easy to convert them to v2.3 or v2.4 using a program like eyeD3), but I should at least detect them so the code doesn't get confused later when it's trying to read MPEG frames. taglib-go doesn't return a standard error for this, so I should probably just do a string comparison.
`nup debug` (and presumably other subcommands) prints an unhelpful error when it's unable to read a file due to it having an ID3v2.2 tag:
```
% nup debug -id3 bad.mp3
Failed reading ID3 tag: no ID3 tag
% nup debug -mpeg bad.mp3
Failed reading MPEG frames: computing duration: unsupported layer
```
The old [github.com/hjfreyer/taglib-go](https://pkg.go.dev/github.com/hjfreyer/taglib-go) package that I'm using only supports ID3v2.3 and ID3v2.4; v2.2 is an obsolete version that uses 3-character frame IDs (e.g. `TT2`) instead of 4-character ones (`TIT2`).
I don't think it's worthwhile supporting v2.2 tags (it's easy to convert them to v2.3 or v2.4 using a program like `eyeD3`), but I should at least detect them so the code doesn't get confused later when it's trying to read MPEG frames. [taglib-go doesn't return a standard error for this](https://github.com/hjfreyer/taglib-go/blob/cb3b18d1ad7b/taglib/taglib.go#L65), so I should probably just do a string comparison.