-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
69 lines (60 loc) · 2.95 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
This is a program to print formatted music metadata. It uses libavformat to
extract the metadata, and thus will work on a large variety of files. It also
searches the steam metadata as well as the container metadata (as some
malformatted music files have their metadata in weird places)
Still in development, some features not implemented yet.
Usage:
$ muprint [OPTIONS] format_string filename
The format string is similar to printf's format string. It uses % to denote
metadata chunks from the loaded file. %% is used to denote a literal %. each
metadata chunk is composed of an optional modifier character followed by a type
character. The modifier characters change the allowed characters, causing the
illegal characters to be ignored or replaced with the character specified by
the -r option. If you need more advanced replace options, use another program
like tr.
MODIFIERS:
v - allow all printing (visible) ascii characters (as defined by isprint(3))
p - allow all characters in the POSIX.1-2008 portable filesystem character set
(that is: all alphanumeric characters plus period (.), underscore(_) and
hyphen (-). Does NOT enforce that the first character should not be hyphen
u - allow all characters that are valid characters in unix filenames (i.e. not
'\0' and '/')
c - allows a custom set of characters, specified by the -c flag
TYPES:
t - The track title
T - The track number, does not currently support padding
d - The disc number, does not currently support padding
b - The album
A - The album artist
a - The artist
e - The file's original extension
f - The original file basename (not including extension)
% - a literal %
examples:
/media/Music/%pA/%pb/%d-%T-%t.%e would be
/media/<album artist>/<album>/<artist>/<disc>-<track>-<title>.<extension>
with all characters not in the metadata that are not in the posix portable
filesystem character set to be ignored/replaced
OPTIONS:
-c <characters> specifies what the custom character whitelist should be. Just
a string of characters e.g. "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
-s <original type><subsitition string> specifies what to replace a metadata
element with if not found. Defaults to "unknown". Other metadata elements
are valid. For example, you can replace all album artists with the artist
using -s "A%a". Multiple substitutions for the same metadata type are
allowed and the last one added will take precedence. If the substition
string contains metadata types that are unknown it is ignored. This allows
chains of subsitions (e.g. replace X with Y if y exists, otherwise replace
with Z)
-r <single char> replace non-whitelisted characters with this one instead of
deleting them
BUILDING:
You need libavformat and libavutil. Other than that its straight up C11 with
POSIX.1-200809L extensions, so just running
$ make
should work. If you're debuging there's also
$ make debug
which turns on -g for you
CONTACT:
remember, I hate spam, so just remove that part.