General Information
===================

eyeD3 is a Python library for reading and writing ID3v1/v1.1 tags.
ID3v2.3 support is far a long and is suitable for reading tags.
Support for ID3v2.4 (the latest beast of a spec.!) is partially complete.

This project started from some preliminary work done in PyID3 0.0.1
Ryan Finnie <ryan@finnie.org>.  About the only lingering code from that
project is eyeD3.binfuncs.

The eyeD3 project pages is:
   http://www.travisshirk.net/eyeD3
   

Requirements
============
 o Python >= 2.2

Optional
--------
 o id3lib.  If the id3lib (http://http://id3lib.sourceforge.net) library is
            found on your system it can be used to compile id3lib_test.
            It can be useful as a reference during eyeD3 development.
            
   
Installation
============

Source tarball
--------------
   gzip -dc eyeD3-x.y.z.tar.gz | tar xvf -
   cd eyeD3-x.y.z

   ./configure
   make
   make install (as root)

RPM
---
   rpm -Uvh ./eyeD3-x.y.z-1.noarch.rpm

When Building From CVS
----------------------
In order to bootstrap the autoconf system, it is required to run ./autogen.sh.
The script only needs to be re-run when changes are made to configure.in or
acsite.m4.  autogen.sh is not included in distributions as it is not needed
unless working from a CVS repository.


How to Use eyeD3
================
The eyeD3.py utility is the best demonstration of eyeD3 usage. So take a look
at it.  Some simple examples follow here, excluding error handling.

Reading the contents of an mp3 file containing either v1 or v2 tag info:
   import eyeD3;
   tag = eyeD3.Tag();
   tag.link("/some/file.mp3");
   print tag.getArtist();
   print tag.getAlbum();
   print tag.getTitle();
   etc....

Specific tag versions can be selected:
   tag.link("/some/file.mp3", eyeD3.ID3_V2);
   tag.link("/some/file.mp3", eyeD3.ID3_V1);
   tag.link("/some/file.mp3", eyeD3.ID3_ANY);  # The default.

Or you can iterate of the raw frames:
   tag = eyeD3.Tag();
   tag.link("/some/file.mp3");
   for frame in tag.frames:
      print frame;

Once a tag is linked to a file it can be modified and saved:
   tag.setArtist("Cro-Mags");
   tag.setAlbulm("Age of Quarrel");
   tag.save();

If the tag linked in was v2 and you'd like to save it as v1:
   tag.save(eyeD3.ID3_V1_1);

Backups are nice and safe and we want to remove the previous
v2 tag from the previous example:
   tag.save(eyeD3.ID3_V1_1, 1, 1);

Read in a tag and remove it from the file:
   tag.link("/some/file.mp3");
   tag.clear();
   tag.save();

Bugs and Patches
================
Find bugs! Please submit all comments, bug reports, or feature requests
to Travis Shirk <travis@pobox.com>. Those of of the patch variety are
especially welcome :)


See Also
========
eyeD3 is free software, refer to the COPYING file for details.

See the TODO file for planned tasks.
