Version 0.4.x Documentation:
SMRT - Smart Music Renaming / Tagging (a nearly-recursive acronym)


  1. Description
  2. Requirements
  3. Installation
  4. Using SMRT
  5. Further Help


SMRT is a powerful python-based command line tool designed to ease the process of constantly renaming and tagging MP3 and OGG files, licensed under the GPL v2.

SMRT performs the functions of a standard mass-tagger, such as translating a filename into tags, and creating a new filename from tag data. SMRT is unique in its support for powerful regular expression and custom text manipulation tools to manipulate filenames and tag data, and in its ability to search for and apply track data from the FreeDB project. All this is presented in a streamlined, informative GTK GUI. A small CLI tool is also provided for quick jobs.


Python 2.4
PyID3Lib (to read/write MP3 ID3 v2 tags)
PyOgg (to read/write OGG "Info")
PyGTK (needed for GUI only)
PySqlite (optional; needed to locally host FreeDB data only)


SMRT can run from its distributed directory structure, or can be installed system-wide.

SMRT has a very basic "distutils" file. To install SMRT system-wide, run as root:

	  python install

This will copy executables to /usr/local/bin, and support files to /usr/local/share/SMRT. You may change these paths by editing


Both GUI and CLI versions of SMRT will automatically create a new ~/.smrtrc file if one does not exist. If you are updating from an older version, delete your old .smrtrc for best results. The .smrtrc file allows you to configure default settings for smrt and gsmrt. Every setting in your .smrtrc is also configurable on the command line (see --help). Some settings apply to the GUI only, some to the CLI only, and some to both. The "Scope" specified in the .smrtrc describes which programs the given parameters apply to. When using --help, you will only see the parameters applicable to the given application. The command line overrides the .smrtrc which overrides the default values.

GUI (gsmrt):
The SMRT GUI is the flagship of the SMRT project; it is more full-featured and configurable than the CLI. GSMRT can alter tag and filename data via a number of ways; through the "Edit Parameters" dialog, which allows you to set multiple files' metadata at once, through the "DB Search" dialog, which allows you to search for and apply Free DB disc data to your files, through the "Text Filtering" dialog, which allows you to apply regular expressions and "SMRT commands" to your metadata, and through the 'Name to Tag' and 'Tag to Name' functions. The Name to Tag and Tag to Name functions are configured via parameters that appear in the "Edit Parameters" dialog's "Translation" tab. Both the Translation tab and the Text Filtering dialog contain "HELP" buttons that will provide more in-depth help for these areas than is contained here.

The "DB Search" data requires a database from which it can look up disc information. This database can reside on the local machine, or it can be served by a network server. By default, SMRT is configured to use the official SMRT database server at, port 8812 (so to use this feature, obviously, you must be able to connect to this host/port in whatever firewall you may have). For information on running a local database, see the file util/import_smrt_db in the SMRT distribution.

CLI (smrt):
The SMRT CLI is not as full-featured as the GUI; it can only perform basic "Name to Tag" and "Tag to Name" operations. These are configured via the same configuration options that are described in the in-app help in the GUI's "Edit Parameters" dialog's "Translation" tab. (Sorry to make you look at the GUI to get help with the CLI, but I'm not going to maintain two copies of the help data :)


I know this documentation is rather minimal, but if you need further help, feel free to email me (, and I'll get back to you quickly as possible. I value the feedback I receive from users.