Automatically transcode and upload torrents.
Failed to load latest commit information.



whatbetter is a script which automatically transcodes and uploads FLACs on What.CD.

The following command will scan through every FLAC you have ever downloaded, determine which formats are needed, transcode the FLAC to each needed format, and upload each format to What.CD -- no user input required.

$ whatbetter --all


As an artifact of power, whatbetter requires that its would-be wielders pass a series of tests before use. This is all in the spirit of What.CD, of course.

First of all, you're going to need Python to run whatbetter. Python 3 is unsupported due to the dependency on mechanize, which does not currently support Python 3.

Once you've got Python installed, you need several modules: mechanize, mutagen, lxml, BeautifulSoup, and argparse. Try this:

# pip install mechanize mutagen lxml BeautifulSoup argparse

Alternatively, if you have setuptools installed, you can do this (in the source directory):

# ./ install

This should theoretically install all required dependencies automatically.

Furthermore, you need several external programs: mktorrent, flac, lame, oggenc, ffmpeg, and neroAacEnc. The method of installing these programs varies depending on your operating system, but if you're using something like Ubuntu you can do this:

# aptitude install mktorrent flac lame vorbis-tools ffmpeg

For neroAacEnc, you need to download the encoder from nero, extract it, and place the binaries somewhere on your PATH.

At this point you may begin to speak with whatbetter. Perform the following command:

$ whatbetter

And you will receive a notification stating that you should edit the configuration file ~/.whatbetter/config (if you're lucky).


You've made it far! Congratulations. Open up the file ~/.whatbetter/config in a text editor. You're going to see something like this:

username =
password = 
passkey = 
data_dir =
torrent_dir =

The username and password are your What.CD login credentials. The passkey is your tracker passkey. The data_dir is the directory where your downloads are stored. The torrent_dir is the directory where torrents should be created (e.g., your watch directory).

You should end up with something like this:

username = RequestBunny
password = clapton
passkey = as309uasdfklwwe90sakjlsd
data_dir = ~/Downloads
torrent_dir = ~/Torrents

Alright! Now you're ready to use whatbetter.


usage: whatbetter [-h] [-A] [-a] [--config CONFIG] [--cache CACHE]
                [release_urls [release_urls ...]]

positional arguments:
release_urls     the URL where the release is located

optional arguments:
-h, --help       show this help message and exit
-A, --auto       attempt to automatically find transcode candidates
-a, --all        search through all snatched torrents for transcode
--config CONFIG  the location of the configuration file (default:
--cache CACHE    the location of the cache (default: ~/.whatbetter/cache)


To transcode and upload releases that are listed in the 'Snatch' section of better.php:

$ whatbetter --auto

To expand the search to every FLAC you've ever downloaded (this may take a while):

$ whatbetter --all

To transcode and upload a specific release (provided you have already downloaded the FLAC and it is located in your data_dir):

$ whatbetter