whatmp3

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.

AUR

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

mutagen

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).

Releases

Git

http://github.com/RecursiveForest/whatmp3

Usage

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
--FLAC
    create torrent for FLAC
--help
    print help message and quit
--verbose
    increase verbosity (default false)
--moveother
    move other files in flac directory to torrent directory (default true)
--nolog
    do not move log files to torrent directory
--nocue
    do not move cue files to torrent directory
--output="PATH"
    specify output directory for torrents
--zeropad
    zeropad tracklists (default true)
--passkey="PASSKEY"
    specify tracker passkey
--tracker="TRACKER"
    specify tracker address to use (default "http://tracker.what.cd:34000")
--notorrent
    do not generate a torrent file (default false)
--threads=NUM
    run NUM encoding threads (default 1)
--replaygain
    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:

passkey = "YOUR PASSKEY HERE"

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

License

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