DragonFly On-Line Manual Pages
MP3LINT(1) User Contributed Perl Documentation MP3LINT(1)
NAME
mp3lint - checks directories of audio files for problems
SYNOPSIS
mp3lint [-natsfiqdch] [-T tool] [-X tool] (file.mp3|dir)...
DESCRIPTION
mp3lint is a tool to check collections of audio files for various
problems. It is highly configurable, allowing you to specify your
preferred format for filenames, minimum bitrate, tests to ignore, etc.
Formats checked are currently mp3, ogg, wav, flac, au, and m3u
playlists. mp3lint is implemented as seperate tools (perl modules),
each of which implements a set of tests.
To see which tools and tests are available, see mp3lint-tools(3).
To find out about configuring mp3lint, see mp3lintrc(5).
To find out about suppressing messages you don't care about, see
mp3lintskip(1).
To find out about summarising the messages from mp3lint, see
mp3lintsum(1)
QUICKSTART
For a first run, try mp3lint -n musicdir/
To check for supplementary programs used by mp3lint, use mp3lint -c
If the number of messages from mp3lint is overwhelming, use
mp3lintsum(1) to summarise them.
Later, you will want to configure your .mp3lintrc to specify your
filename formats, etc. (See mp3lintrc(5)) When you have done that, you
can try again without the -n flag to run the filename tests too.
When you have fixed all the problems you can/want to fix, run mp3lint
musicdir/ |mp3lintskip -v which will tell mp3lint to ignore all current
warnings in future, and only tell you about new ones.
OPTIONS
-n Skip filename related tests
-a If it cannot work out from a files location whether to treat it as
an album track or non-album track, it defaults to album track.
This is the same as setting the $format_default configuration
variable (see mp3lintrc(5)) to "album", and overrides that setting.
-t If it cannot work out from a files location whether to treat it as
an album track or non-album track, it defaults to non-album
(standalone) track.
This is the same as setting the $format_default configuration
variable to "track", and overrides that setting.
-s If it cannot work out from a files location whether to treat it as
an album track or non-album track, it defaults to skipping all
name-related tests.
This is the same as setting the $format_default configuration
variable to "album", and overrides that setting.
-f Fix problems, where possible. Currently it only fixes permissions
(filesys:perms) and various filename formatting problems
(filename:caps, filename:ext, filename:disc, filename:the and
filename:paren).
WARNING: All the code for skipping messages (see mp3lintskip(1))
works by postprocessing the output, which means you cannot use it
to disable particular fixes. Use -f with care, and make sure you
are happy with your configuration (see mp3lintrc(5)) first.
-i Ignore .mp3lintskip files
-q Quick scan (avoid timeconsuming tests)
-d Debug mp3lint
-T tool1,tool2
Just run named tools (default: run all tools)
-X tool1,tool2
Skip named tools
-c Report on which of the supplementary programs used by mp3lint are
installed. mp3lint will still work without them, but some tests
will be disabled.
-h Brief usage summary
file.mp3|dir
Files and/or directories to check. If given a directory, mp3lint
checks all files and dirs in it recursively.
OUTPUT
All warnings display a single line message in a common format. This
consists of either 4 or 5 fields, separated by colons (':').
The fields are as follows:
toolname:test:description:details:filename
The first 3 fields contain constant text, suitable for filtering. See
mp3lintskip(1) and $lint_skip in mp3lintrc(5) for more information.
The details field is optional and does not appear in all messages.
Examples
With the details field:
wav:samplerate:low samplerate:8000 Hz (should be 44100Hz):./skipname/u-law.wav
without the details field:
filename:ext:uppercase extension:./skipname/mp3.WAV
Different tools have the same name for common tests, for instance the
mp3info, flac, ogg, and wav tools all implement a samplerate test.
SOFTWARE NEEDED
To make full use of mp3lint, a number of pieces of software written by
other people are needed. If something isn't installed, the relevant
tests will silently be skipped (unless debug mode (-d) is on, in which
case you will be warned).
To see which programs are installed, type mp3lint -c.
For debian, all needed software is listed as dependencies, so should be
installed automatically. See below for more details
What you need and where to get it
perl
mp3lint was written using perl v5.6.1, but I've tried to avoid the
latest features so it should hopefully run on any moderately recent
perl 5. If perl isn't installed, look for a package from your OS
vendor, or failing that, shake your head sadly and go to
http://www.cpan.org/src/. Perl is not optional.
MP3::Archive
Available from
http://nessie.mcc.ac.uk/~ianb/projects/libmp3-archive-perl/ Unlike
the software that follows, MP3::Archive is required for mp3lint to
work.
MP3::Tag (needed for "id3" tool)
This is a suite of perl modules for handling id3V1/2 tags.
Hopefully it can be installed by typing (as root):
# perl -MCPAN -e shell
cpan> install MP3::Tag
cpan> quit
If you have problems with the CPAN client, download MP3::Tag from
http://www.cpan.org/modules/by-module/MP3/tagged-0.40.tar.gz (or
any later version).
This follows the standard perl installation procedure as used by
mp3lint, ie unpack, "perl Makefile.PL", "make", "make install".
You will need to be root for "make install".
The tagged package has a web page at http://tagged.sourceforge.net/
Text::Autoformat (needed for "filename" tool)
This is Damian Conway's incredibly smart text formatting module.
If installed, it is used for working out filename capitalisation.
If not, a crude internal version is used.
It is available on CPAN, and can be downloaded and installed using
the same methods as MP3::Tag, above.
If you have problems with the CPAN client, download
Text::Autoformat from
http://www.cpan.org/modules/by-module/Text/Text-Autoformat-1.12.tar.gz
(or any later version).
mp3info (needed for tool "mp3info")
There are two programs called mp3info available on the net. This
expects the one that is at http://ibiblio.org/mp3info It is also
the version that Debian users get if they type "apt-get install
mp3info"
mp3_check (needed for tool "mp3check")
mp3_check is available from sourceforge, see
http://sourceforge.net/project/?group_id=6126
On debian systems, it is known as "checkmp3" and can be installed
by typing "apt-get install checkmp3" as root. The "mp3check" tool
searches for either name.
ogginfo (needed for tool "ogg")
Available from http://www.vorbis.com/download_unix.psp
flac, metaflac (needed for tool "flac")
Available from http://flac.sourceforge.net/download.html
Other Required software you probably have
File::Find, File::stat, Cwd
These perl modules are a part of the standard distributions
md5sum (needed for tool "flac")
If you don't already have it installed, look for a "coreutils" or
"textutils" package from your OS vendor, or see
http://www.gnu.org/coreutils/
sort (needed for test suite)
Any self-respecting unix box has this. If not, look in the same
places as for "md5sum", above.
diff (needed for test suite)
Unless your vendor hates you, you should have this too. If not, go
to http://www.gnu.org/software/diffutils/. On debian systems, type
"apt-get install diff" as root.
Debian users
If mp3lint was installed using a tool like apt-get(1), all needed
software will have been installed via dependencies. If not (eg, you
downloaded the .deb and used dpkg):
# apt-get install libmp3-tag-perl mp3info checkmp3 vorbis-tools flac diff
You will also need to install libmp3-archive-perl, available from the
same place you got mp3lint (see AVAILABILITY, below).
FILES
.mp3lintrc, /etc/mp3lintrc
Configuration files, see mp3lintrc(5) for details.
.mp3lintskip, $HOME/.mp3lintskip-global
Warnings to skip. See mp3lintskip(1) for details.
ENVIRONMENT
$MP3LINTRC
If set, uses this instead of $HOME/.mp3lintrc
$HOME
Used to find .mp3lintrc and .mp3lintskip-global
$PATH
Used to find auxillary programs needed by various tools.
PORTABILITY
mp3lint was developed in perl under linux. It should be trivial to get
it working on any POSIX based system. If you get it working with
windows, let me know.
BUGS
None known. Please report any found to ianb@nessie.mcc.ac.uk
I am especially interested in how well the code for filename formats
works for other people's naming styles.
SEE ALSO
mp3lint-tools(3), mp3lintskip(1), mp3lintsum(1), mp3lintrc(5),
MP3::Archive(3), MP3::Archive::Config(3), mp3-archive-tools(1)
perl(1), MP3::Tag(3), mp3info(1), mp3_check(1), checkmp3(1),
ogginfo(1), flac(1), metaflac(1), md5sum(1), sort(1), diff(1)
AUTHOR
Ian Beckwith <ianb@nessie.mcc.ac.uk>
AVAILABILITY
The latest version can be found at:
http://nessie.mcc.ac.uk/~ianb/projects/mp3lint/
COPYRIGHT
Copyright 2003 Ian Beckwith <ianb@nessie.mcc.ac.uk>
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
675 Mass Ave, Cambridge, MA 02139, USA.
perl v5.20.2 2003-12-14 MP3LINT(1)