whatmp3 is a small python script that accepts a list of directories containing flac files as arguments and converts them to mp3 with the options specified by the user. By default you can convert to mp3 V2, V0, and 320 CBR. After converting it optionally copies over all the other files in the directory (such as album art) and creates a .torrent file for you to upload to What.CD.

whatmp3 depends on mktorrent, the LAME mp3 Encoder, and the metaflac command from the FLAC toolset. Also supported are Ogg, ALAC, and NeroAacEnc/NeroAacTag.

Requires python 2.6 or greater, including 3.0 and 3.1.

Configuration is handled at the top of the file in the configuration section.

As of 2.2 whatmp3 supports oggenc's "--Q8" option, and as of 2.3 whatmp3 supports ALAC through ffmpeg, thanks to ridejkcl. Version 3.0 is a port to python, initiated by demonstar55, and supports threading as well as replaygain.

Patches are available to provide optional functionality.


If you are on Arch Linux, mutantmonkey has made an AUR package.


There is now a a release supporting mutagen for tagging purposes. This provides the advantage of copying over every tag (except for mp3 files, where it copies over ID3v2 compliant tags) from the flac to the target files. The disadvantage is that this breaks python 3.x support, and thus will exist alongside the primary whatmp3 project.

The latest whatmp3-mutagen release can be found here: whatmp3-3.5-mutagen (released 2011-05-25).





Running whatmp3 on its own won't do too much. You need to specify the LAME flags you want to convert with, and the directories you want to convert.

--320 --V2 --V0 --Q8 --ALAC...
    encode to 320, V2, V0, or whatever else specified in 'enc_options' in the file
    create torrent for FLAC
    print help message and quit
    increase verbosity (default false)
    move other files in flac directory to torrent directory (default true)
    do not move log files to torrent directory
    do not move cue files to torrent directory
    specify output directory for torrents
    zeropad tracklists (default true)
    specify tracker passkey
    specify tracker address to use (default "http://tracker.what.cd:34000")
    do not generate a torrent file (default false)
    run NUM encoding threads (default 1)
    enables replaygain (default false); please note replaygain is not allowed on what.cd

Minimally, you need a passkey, a tracker, and an encoding option to create a working torrent to upload

You need to add your torrent passkey and output directory in order to make the .torrent file to upload to What.CD:


This will convert OSI - Office of Strategic Influence to V2 and V0:

whatmp3 --V2 --V0 OSI\ -\ Office\ of\ Strategic\ Influence

This will convert Porcupine Tree - Deadwing and Porcupine Tree - In Absentia to 320 CBR, V0, and V2 (the "perfect three"):

whatmp3 --320 --V2 --V0 Porcupine\ Tree\ -\ Deadwing Porcupine\ Tree\ -\ In\ Absentia

.torrent files will be created in your output directory.

Threading is supported since version 3.0; use the --threads NUM option (or set max_threads):

whatmp3 --threads 2 --V2 "Enslaved - Isa"

whatmp3 also supports a few command line flags as of 2.0, use --verbose or -v to print extra messages:

whatmp3 --verbose --V2 Nightingale\ -\ I


whatmp3 is released under the MIT/X Consortium License. A copy of the license can be found in the release tarballs.