DragonFly On-Line Manual Pages
MP3ID(1) User Contributed Perl Documentation MP3ID(1)
NAME
mp3id - displays/edits id3 metadata (id3v1 and id3v2) in mp3 files
SYNOPSIS
mp3id <file.mp3>...
mp3id -[12qtvxXh] -c[12bcC] -- <file.mp3>...
mp3id -A <artist> -L <album> -T <track> -N <tracknum> <file.mp3>...
mp3id -G <genre> -Y <year> -C <comment> <file.mp3>...
mp3id -ap <file.jpg> -rp <file.gif> <file.mp3>...
mp3id -p[aNALTGYCpPfF] -[iI] <file.id3> <file.mp3>...
mp3id -d[axbpzNALTGYC] -df <frame> <file.mp3>...
mp3id -e[abp] -ef <frame> <file.mp3>...
mp3id -af <frame=data> <file.mp3>...
mp3id -af <frame:key1=val:key2=:key3=file(file.dat)> <file.mp3>...
mp3id -rf <frame=data> <file.mp3>...
mp3id -rf <frame:key1=val:key2=:key3=file(file.dat)> <file.mp3>...
mp3id -[Ff]
DESCRIPTION
mp3id is a command-line viewer and editor for id3 metadata in mp3
files. ID3v1 and ID3v2 are both supported, including access to extended
ID3v2 metadata (pictures, lyrics, etc).
OPTIONS
Options are processed in order, so you could do eg:
mp3id -v -A Artist -L Album -N 1 -T Foo foo.mp3 -N 2 -T Bar bar.mp3
Any options involving N, A, L, T, G, Y or C refer to trackNumber,
Artist, aLbum, Title, Genre, Year or Comment, respectively.
General Options
-1, -2
Show/modify ID3v1/ID3v2 tags only. By default it does both v1 and
v2 tags.
-q Quiet (no output). This is the default if any changes are being
made.
-t Terse output.
-v Verbose output. This is the default if no options are supplied.
-x, -X
View extended ID3v2 frames. -X shows all ID3v2 frames as extended
frames, including the basic ones (artist, album, etc).
If terse output (-t) is selected, an attempt to summarise the
extended frames as tersely as possible is made.
Extended frames are separated by :. Simple extended frames are of
the form "framename=value".
Complex frames have a leading frame name, then a :. The elements of
the frame are enclosed in angle brackets (<>), separated by :, and
are displayed in the form "elementname=value". The contents of
binary frames (eg _Data) is displayed as "<data>"
For instance, one simple and one complex frame would be displayed
as eg:
filename:ext:TSIZ=2000:APIC:<Picture Type=Other:_Data=<data>:MIME type=image/gif:
filename:ext:Description=file.gif>
-f Summarise available ID3v2 frame types.
-F Show a detailed listing of available ID3v2 frame types.. This is
several pages long, so you may wish to pipe it to a pager such as
more(1).
-h Shows a summary of command line options.
-- Treat remaining command line arguments as files to operate on, not
options.
Options to set basic metadata (artist, album, etc)
-A artist
Set Artist
-L album
Set aLbum
-T track
Set Trackname (song title)
-N num
Set trackNumber
-G genre
Set Genre
-Y year
Set Year
-C comment
Set Comment
Options to add/replace extended frames
To find out about available frame formats, see MP3::Tag::ID3v2-Data(1).
For a quick reference, use mp3id -f.
-ap picfile
Add picture.
-rp picfile
Replace picture. This will only replace the first APIC frame. If
there is more than one APIC frame in the file, you will need to use
the -rf option, below.
-af 'frame=data'
Add a simple frame. The data field can be empty.
If necessary, you should enclose the frame spec in single quotes
('), especially if there are spaces or other characters that will
be interpreted by the shell.
-af 'frame:key1=value:key2=:key3=file(file.dat)'
Add a complex frame. The format is the framename, then a colon,
then a list of fieldname=value, separated by colons. Field values
can be left blank.
If you want the contents of a file included in the field (useful
for binary _Data fields), surround the filename with ffiillee(()), e.g.
"_Data=file(picture.gif)".
If necessary, you should enclose the frame spec in single quotes
('), especially if there are spaces or other characters that will
be interpreted by the shell.
If all this is too much hassle, try -pf to enter frame details
interactively, with prompting.
-rf 'frame=data'
Replace a simple frame. The data field can be empty.
-rf 'frame:key1=value:key2=:key3=file(file.dat)'
Replace or merge a complex frame.
The frame format is the same for adding frames (-af, above).
If you omit any fields and the frame already exists, they will be
taken from the existing version of the frame, otherwise it is an
error.
Importing and Exporting data
When writing files containing pictures or binary frame data, the
filename is created from the basename of the file (ie with the
extension (eg .mp3) lopped off), then a 2 digit number to distinguish
multiple frames from the same file, then a guessed extension. If the
frame contains a MIME type field, the extension will be guessed from
the MIME type, if not it will default to .bin.
For instance, the contents of the _Data field of the first APIC frame
with MIME type "image/jpeg" in foo.mp3 will be written to foo.01.jpg.
-i file.id3, -I file.id3
Import data dumped with the -ea option (see below) from from
file.id3.
-I deletes the files you have imported, including any files
included using the ffiillee(()) syntax.
The format for the .id3 export file is essentially the same as that
displayed by mp3id -vx, except that instead of using <data> as a
placeholder for binary frame data (_Data etc), it uses the ffiillee(())
notation to include data from a file. See the -af option above for
more details on the ffiillee(()) notation.
Not all fields need to be present in the import file, it will only
alter those mentioned in it.
-ea Dump (export) all id3 tag data to a file. The file will be have the
same basename as the input file, but with an extension of ".id3".
For example, "mp3id -ea foo.mp3" creates the file foo.id3.
This file can be edited then imported using the -i option (see
above).
-eb Extract all binary data stored in frames.
Some frames (eg APIC, the frame for storing pictures) have elements
that begin with _, usually "_Data". These elements are used for
storing binary data (eg picture data). This extracts the content of
the binary data element for each frame that contains one.
-ep Extract all pictures from file.
-ef frame
Extract named ID3v2 frame.
Deleting data
-df frames
Delete named frame
-da Delete id3 tags.
-dx Delete extended frames.
-db Delete binary frames (frames containing elements starting with _,
eg _Data, which contain binary data).
-dp Delete pictures. This will delete all APIC ID3v2 frames. If you
only want to delete the first picture, use:
mp3id -df APIC file.mp3
-dz Delete id3 tags that contain no data.
-dN Delete trackNumber.
-dA Delete Artist.
-dL Delete aLbum
-dT Delete Track name (song title).
-dG Delete Genre.
-dY Delete Year.
-dC Delete Comment.
Prompting
-pa Prompt for all items.
-pN Prompt for track Number.
-pA Prompt for Artist.
-pL Prompt for aLbum.
-pT Prompt for Track name (song title).
-pG Prompt for Genre.
-pY Prompt for Year.
-pC Prompt for Comment.
-pp Prompt for a picture to add.
-pf Prompt for an arbitrary frame to add (simple or complex).
Copying and Comparing frames
-c1 Copy data from ID3v1 tag to ID3v2 tag.
-c2 Copy data from ID3v2 tag to ID3v1 tag.
-cb Copy data from best source. If an ID3v2 frame is set and non-empty,
sets the ID3v1 tag data to the same value, otherwise attempts to do
the reverse.
-cc, -cC
Compares ID3v1 and ID3v2 data.
If -cc is used, it allows for truncation caused by limited-length
ID3v1 tags, and only compares up to the length of the ID3v1 tag
data.
-cC is stricter, and complains if there is any difference between
the tags.
EXAMPLES
mp3id file.mp3
Display id3 tags in file.mp3 (same as mp3id -v file.mp3).
mp3id -vx file.mp3
Display id3 tags in file.mp3, including extended id3v2 tags.
mp3id -2 -da *.mp3
Delete all id3v2 tags in all mp3 files in current directory.
mp3id -A artist -T album -pN -pT *.mp3
In all files in the current directory, set the artist to artist,
the album to album, then for each file prompt for the tracknumber
and track title.
mp3id -c2 file.mp3
Copy id3v2 tag to id3v1 tag. Some data may be truncated due to
limitations of the id3v1 format. See MP3::Tag::ID3v1(3) for details
on the lengths of id3v1 tag data.
mp3id -cc file.mp3
Compare id3v1 and id3v2 tags and complain if they don't match.
mp3id -ea file.mp3
Extract all tag data from file.mp3 and write it in
human-readable/editable format to file.id3
mp3id -i file.id3 file.mp3
Import the tag data from file.id3 to file.mp3
mp3id -af 'COMM:Language=ENG:short=:Text=Hello World' file.mp3
This is the long-winded way of adding a comment. This is equivalent
to mp3id -C "Hello World" file.mp3.
mp3id -ap pic.jpg file.mp3
Adds the picture pic.jpg to file.mp3. If there is already an APIC
(picture) frame present, this will be added as (eg) APIC01.
mp3id -af 'APIC:MIME type=image/jpeg:Picture type=Other:Description=A
picture:_Data=file(pic.jpg)' file.mp3
This is the long-winded way of adding a picture. It is equivalent
to the -ap example above (except that -ap sets the Description
field to the filename of the picture).
Note the use of ffiillee(()) to import the picture data from pic.jpg.
mp3id -- -filename.mp3
Views the tags in -filename. The -- option stops mp3id from
treating -filename as an option.
mp3id -f
View a summary of available ID3v2 tags and their associated data
elements.
mp3id -F | less
View a detailed list of available ID3v2 tags and their associated
data elements, piping through less(1) to show a page at a time.
ACKNOWLEDGEMENTS
This program makes heavy use of the perl module MP3::Tag(3), by Thomas
Geffert.
BUGS
None known. Please report any found to ianb@nessie.mcc.ac.uk
SEE ALSO
mp3-archive-tools(1), MP3::Tag(3), MP3::Tag::ID3v2-Data(1), mp3lint(1)
AUTHOR
Ian Beckwith <ianb@nessie.mcc.ac.uk>
AVAILABILITY
mp3id is part of the mp3-archive-tools package.
The latest version can be found at:
http://nessie.mcc.ac.uk/~ianb/projects/mp3-archive-tools/
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-12 MP3ID(1)