Peter Eichman
and 1 contributors


mp3find - Find MP3 files based on their ID3 tags or info


    $ mp3find ~/cds -i -artist beatles -sort year,album,tracknum -printf '%2n. %a - %t (%b: %y)'
     1. The Beatles - Magical Mystery Tour (Magical Mystery Tour: 1967)
     2. The Beatles - The Fool on the Hill (Magical Mystery Tour: 1967)
     3. The Beatles - Flying (Magical Mystery Tour: 1967)
     4. The Beatles - Blue Jay Way (Magical Mystery Tour: 1967)
     5. The Beatles - Your Mother Should Know (Magical Mystery Tour: 1967)
     6. The Beatles - I Am The Walrus (Magical Mystery Tour: 1967)
    # etc.
    # shuffle and play your entire mp3 collection
    $ mp3find | xargs madplay -z
    # ...or just your Sabbath
    $ mp3find -i -artist 'black sabbath' | xargs madplay -z


    $ mp3find [options] [directory] [<-field> <pattern> [<-field> <pattern> ...]]

The real guts of the operation are in MP3::Find.


-ignore-case, -i

Case insensitive matching.

-exact-match, -w

All search patterns must match the entire value, and not just a substring. This has the same effect as putting a ^ and $ around each pattern.


Which ID3 fields to sort the results by; separate multiple fields with commas. The default behavior just returns the filenames in the order that File::Find finds them.


The output format for each file found. The available format codes are:

    %a - artist
    %t - title
    %b - album
    %n - track number
    %y - year
    %g - genre
    %% - literal '%'

Numeric modifiers may be used; they are interpreted like modifiers to the %s code in Perl's printf function.

If no -printf option is used, the full path to the file is printed instead.

-<field> <pattern> [patterns...]

The fields you are searching on. More than one pattern for a given field are combined with 'OR', while the fields to be matched are 'AND'-ed together. For the list of recognized fields, see MP3::Find.


Peter Eichman <>


Copyright (c) 2006 by Peter Eichman. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.