Clean up audio collection setting meta tags & embedding artwork
Usage: audioc [OPTIONS] PATH
Positional Args:
PATH directory path
Mode (specify only one):
--artist "NAME"
treat as specific artist
--collection
treat as collection of artists
Options:
--bitrate "BITRATE"
V0 (default)
convert to variable 256kbps mp3
320
convert to constant 320kbps mp3
--fix
fixes incorrect track length, ie 1035:36:51
--force
processes all files, even if path info matches tag info
--write
write changes to disk
Debug:
--version
print program version, then exit
This program is designed to process a music collection, keeping speficied FLAC audio files while converting all other audio formats to MP3.
Source albums have a release year or performance date. This date is then used in both the album tag and folder path.
An example of the resulting folder structure:
Grateful Dead/
1977/
1977.05.15 St. Louis Arena, St. Louis, MO/
1977 Terrapin Station/
In the above example, 1977.05.15 St. Louis Arena, St. Louis, MO
represents a
live performance, while 1977 Terrapin Station
represents a studio album. Both
belong to the artist Grateful Dead
, nested within an additional folder
representing the year 1977
.
This tool depends on ffmpeg
and ffprobe
binaries installed or included
within same folder, which are used to process the audio and artwork.
The metaflac
binary needs to be installed or included to support album
artwork embedding, but only within FLAC files. MP3 artwork embedding is
included with ffmpeg
.
If metaflac
not found, FLAC embedding will be skipped, but the program will
continue without error.
Child directories of specified PATH, as well as files within PATH itself, are considered to be albums or live performances belonging to the specified artist.
Immediate child directories of specified PATH are considered to be artists. Child directories of each artist are considered to be albums or live performances belonging to that artist.
In the event that the artist tag is not found, the artist folder name is used.
To skip processing a child directory, include -
in its name. Such as:
Grateful Dead - UNORGANIZED
Convert other audio formats to MP3 using libmp3lame
encoding and either V0
(variable 256kbps) or 320 (constant 320kbps) bitrate.
To skip converting FLAC audio, include - FLAC
at the end of the album folder
name.
Fixes incorrect track length (ie, 1035:36:51) by removing all metadata, then adding metadata back in separate process.
Processes each audio file regardless of whether or not the path info matches tag info.
By not including --write
, the process will run in simulation, printing all
changes to the console for review.
Including --write
will apply changes to disk.
Get latest source, run:
go get github.com/jamlib/audioc
Navigate to source path, run:
cd $GOPATH/src/github.com/jamlib/audioc
Ensure dependencies are installed and up-to-date with dep
, run:
dep ensure
From within source path, to build the binary, run:
go install
To test by displaying usage, run:
audioc --help
From within source path, run:
go test -cover -v ./...
This code is available open source under the terms of the MIT License.