Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  MP3LINT (1)

.ds Aq ’


mp3lint - checks directories of audio files for problems



<B>mp3lintB> [-natsfiqdch] [-T tool] [-X tool] (file.mp3|dir)...


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)


For a first run, try <B>mp3lint -n musicdir/B>

To check for supplementary programs used by mp3lint, use <B>mp3lint -cB>

If the number of messages from mp3lint is overwhelming, use mp3lintsum(1) to summarise them.

Later, you will want to configure your <B>.mp3lintrcB> to specify your filename formats, etc. (See mp3lintrc(5)) When you have done that, you can try again without the <B>-nB> flag to run the filename tests too.

When you have fixed all the problems you can/want to fix, run <B>mp3lint musicdir/ |mp3lintskip -vB> which will tell mp3lint to ignore all current warnings in future, and only tell you about new ones.


<B>-nB> Skip filename related tests
<B>-aB> 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 <B>B>$format_default<B>B> configuration variable (see mp3lintrc(5)) to <B>albumB>, and overrides that setting.

<B>-tB> 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 <B>B>$format_default<B>B> configuration variable to <B>trackB>, and overrides that setting.

<B>-sB> 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 <B>B>$format_default<B>B> configuration variable to <B>albumB>, and overrides that setting.

<B>-fB> 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).

<B>WARNING:B> 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 <B>-fB> with care, and make sure you are happy with your configuration (see mp3lintrc(5)) first.

<B>-iB> Ignore .mp3lintskip files
<B>-qB> Quick scan (avoid timeconsuming tests)
<B>-dB> Debug mp3lint
<B>-TB> tool1,tool2 Just run named tools (default: run all tools)
<B>-XB> tool1,tool2 Skip named tools
<B>-cB> Report on which of the supplementary programs used by mp3lint are installed. mp3lint will still work without them, but some tests will be disabled.
<B>-hB> Brief usage summary
<B>file.mp3|dirB> Files and/or directories to check. If given a directory, mp3lint checks all files and dirs in it recursively.


All warnings display a single line message in a common format. This consists of either 4 or 5 fields, separated by colons (’<B>:B>’).

The fields are as follows:


The first 3 fields contain constant text, suitable for filtering. See mp3lintskip(1) and <B>B>$lint_skip<B>B> in mp3lintrc(5) for more information.

The <B>detailsB> field is optional and does not appear in all messages.


With the details field:

<B>wav:samplerate:low samplerate:8000 Hz (should be 44100Hz):./skipname/u-law.wavB>

without the details field:

<B>filename:ext:uppercase extension:./skipname/mp3.WAVB>

Different tools have the same name for common tests, for instance the <B>mp3infoB>, <B>flacB>, <B>oggB>, and <B>wavB> tools all implement a <B>samplerateB> test.


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 (<B>-dB>) is on, in which case you will be warned).

To see which programs are installed, type <B>mp3lint -cB>.

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

<B>perlB> 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 Perl is not optional.
<B>MP3::ArchiveB> Available from Unlike the software that follows, MP3::Archive is required for mp3lint to work.
<B>MP3::TagB> (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 (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

<B>Text::AutoformatB> (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 (or any later version).

<B>mp3infoB> (needed for tool mp3info) There are two programs called mp3info available on the net. This expects the one that is at It is also the version that Debian users get if they type apt-get install mp3info
<B>mp3_checkB> (needed for tool mp3check) mp3_check is available from sourceforge, see

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.

<B>ogginfoB> (needed for tool ogg) Available from
<B>flacB>, <B>metaflacB> (needed for tool flac) Available from

    Other Required software you probably have

<B>File::FindB>, <B>File::statB>, <B>CwdB> These perl modules are a part of the standard distributions
<B>md5sumB> (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
<B>sortB> (needed for test suite) Any self-respecting unix box has this. If not, look in the same places as for md5sum, above.
<B>diffB> (needed for test suite) Unless your vendor hates you, you should have this too. If not, go to 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).


<B>.mp3lintrcB>, <B>/etc/mp3lintrcB> Configuration files, see mp3lintrc(5) for details.
<B>.mp3lintskipB>, <B>B>$HOME<B>/.mp3lintskip-globalB> Warnings to skip. See mp3lintskip(1) for details.


<B>B>$MP3LINTRC<B>B> If set, uses this instead of $HOME/.mp3lintrc
<B>B>$HOME<B>B> Used to find .mp3lintrc and .mp3lintskip-global
<B>B>$PATH<B>B> Used to find auxillary programs needed by various tools.


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.


None known. Please report any found to

I am especially interested in how well the code for filename formats works for other people’s naming styles.


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)


Ian Beckwith <>


The latest version can be found at:


Copyright 2003 Ian Beckwith <>

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.

Search for    or go to Top of page |  Section 1 |  Main Index

perl v5.20.3 MP3LINT (1) 2003-12-14

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.