Contents
I do not belong to the cult of iPod. I use a nonstandard mp3 player and I hate iTunes. If I’m going to use an mp3 player, it needs to show up as a USB drive on my Linux workstation, my Windows desktop, and my Mac laptop. I need to be able to drag files over and be done with it. So far, I’ve been successful at accomplishing this.
But the simplicity comes with a price. I cannot download books from Audible.com and put them on my player to listen to them. I have to convert all of the files I download from Audible into DRM-free mp3 files. But most instructions on the internet advocate a cumbersome process, many involving that unholy beast iTunes, which effectively just plays the audio books while capturing the output stream.
I have developed an alternative to this method, which lets you convert your Audible audio book downloads to DRM-free mp3s in just a few minutes, with a very small amount of manual work.
You Will Need
- Windows (sorry, the programs needed only run in Windows)
- Nero for Windows (cost: $70, free trial available) Note: Do not use versions later than 9.4. Apparently the functionality this tutorial depends on has been removed.
- UltraISO for Windows (cost: $30, free trial available)
- Ruby for Windows (free)
- Lame for Windows (free)
- An Audible.com account
- Some patience
Step 1: Download The .aa Files
On Audible.com, find the book you want and download it. Make sure that it downloads using the Audible Download Manager and results in you getting .aa files for the book. If Audible tries to make you download something else, you may have to add a new device on Audible.com. Pick something simple (not an iPod) and select ‘Format 4′ for the desired type.
Step 2: Burn to images using Nero
Once you have your .aa file (or two), open up Nero.
Create a new compilation, select ‘CD’ as the type, and scroll down to ‘Audiobook CD’
Now drag your .aa file into the Nero. Select ‘Image Recorder’ from the list of recorders. Then click Burn.
Before the ‘discs’ start burning, you’ll be asked for a name. The default, “Image’ is probably fine. Make sure you are saving into a COMPLETELY EMPTY directory.
You will be asked if you want to manually select new file names or Autocreate them. Choose auto create so you can do something else while they are ‘burning’.
The goal here is to get the .aa files, which represent multiple burnable discs, into .nrg files, one file for each ‘disc’. You’ll have to do this step once for every .aa file in your book (long books sometimes have two .aa files). This is the most manual part of the process, after this it’s smooth sailing.
Step 3: Convert to mp3
Now, you have a directory somewhere that contains files that look like Image.nrg, Image02.nrg, Image03.nrg, etc. Let’s call that directory C:\MyBook for the purposes of this tutorial.
You will need to install some more software before you can proceed. Download and install UltraISO and Lame (links above). Let’s assume you have installed those to C:\Program Files\UltraISO\ and C:\Program Files\Lame\, respectively. Also make sure you install Ruby.
You will also need to download this ruby script that I wrote (click ‘view source’ in the top right, copy the contents, and paste into a new file using notepad):
# Written by Rod Hilton, nomachetejuggling.com
# Modify these to be the paths to your copies of ultraiso.exe and lame.exe.
# Remember to do \\ for backslashes, and don't use /
ULTRAISO_PATH = "c:\\program files\\ultraiso\\ultraiso.exe"
LAME_PATH = "c:\\program files\\lame\\lame.exe"
# Read the directory to convert from the command line.
@workingdir = ARGV[0]
if @workingdir.nil? or not File.directory?(@workingdir)
abort "Usage: ruby #{File.basename(__FILE__)} <path to directory>"
end
# Deletes a file
def delete(filepath)
shortname = File.basename(filepath).slice(0..50)
print " Deleting #{shortname}...";
print File.delete(filepath) ? "Done!\n" : "Failed!\n"
end
# Convert method. Converts all files in the working directory with
# a specific extension using a function block
def convert(extension, options = {}, &function)
Dir.foreach(@workingdir) do |file|
if(file.match(/.#{extension}$/))
filepath = File.join(@workingdir, file)
command = function.call(filepath)
print " Converting #{file.slice(0..50)}..."
retval = system command
if(retval)
print "Done!\n"
delete(filepath) if options[:delete_after]
else
abort "Failed!"
end
end
end
end
puts "--Converting in #{@workingdir}--"
puts "Converting all .nrg files to .wav files..."
convert("nrg", :delete_after=>true) do |filepath|
"\"#{ULTRAISO_PATH}\" -in \"#{filepath}\" -extract \"#{@workingdir}\""
end
puts "Converting all .wav files to .mp3 files..."
convert("wav", :delete_after=>true) do |filepath|
"\"#{LAME_PATH}\" --abr 56 -mm -S \"#{filepath}\""
end
This script basically uses UltraISO to extract .wav files from the .nrg files, then uses lame to convert the .wav files to .mp3 files.
If you installed UltraISO or Lame to different directories, change the top few lines to reflect their real paths.
Let’s assume you saved this file to C:\nrg2mp3.rb.
Now, open up a command prompt (Start->Run->type ‘cmd’ and hit enter). Type:
ruby C:\nrg2mp3.rb “C:\MyBook”
Make sure that you use the quotes if you have spaces in your directory name.
Now just sit back and wait. The script will convert all of the nrg files to mp3 files. It will delete all of the .nrg files when it is done with them. If you’d like to tell the script not to do that, modify line 43 to remove the :delete_after stuff, like so:
convert("nrg") do |filepath|
There are lots of ways to do this, but I believe this one involves the fewest number of manual steps, and I believe it is the only method that does no analog conversion (no recording your sound card as the file plays). It is also, as far as I’m aware, the fastest method. Ripping the wavs out using UltraISO only takes a few seconds for me, and converting them to mp3 doesn’t take very long at all.
If you can think of a way to make this process faster and require fewer non-free programs (or, ideally, a way to make this work in Linux), leave a comment.


Absolutely No Machete Juggling is a blog about software, programming, computers, and me. I'm a programmer working in Colorado, mostly with Java and Ruby. 
Thanks! Worked well for me using Nero 8. I did have to manually edit your Ruby script as all the quotes, greater then symbols, and ampersands transferred over as their html equivalents (", > etc.) The process translated five CDs into 45 mp3s so I’m off to look for a mp3 joiner. Thanks again.
Hi Eric
Did you obtain the workable Nero 8 recently? If so how, because I’ve failed to obtain a trial copy to prove that it will support .aa files. The nearest I’ve got is Nero v9.4.44.0b. The manual says it supports audio books with .aa files but the program does allow you to load them.
Please I want to find a workable version which I can then purchase but so far it seems I’m blocked by the none support or cannot obtain an unexpired serial number.
Sorry Eric,
I epect you guessed that I missed out not from loading ,aa files
I’m trying to convert large Audible audio books to MP3.
To do this, from iTunes I wrote MP3 files to a virtual drive (NoteBurner). So far so good.
But, the files are split not by chapters like you would expect in the 21st century. No, they are overlapping. For example file 1 stops at 00:07:00 and file 2 starts at 00:06:26.
Any ideas how to fix this?
I’m using Nero 11. Have done a test run with a single .aa file and everything worked fine except that the conversion process didn’t process an mp3 file but converted the nrg back to a .aa WTF?
Any ideas what I’m doing wrong?
ok, so now that nero has decided to upgrade to a version 11, this tutorial is broken. They have removed the ability to make an audiobook compilation and have split the program into a bunch of sub programs. God, what a clusterfu*k.
Works well! Have a question about the resulting file names… How do you know what order to put the .mp3′s into?? I did a 12 disk set, that’s 2 .aa files… .nrg’s were Image01- 12. After conversions I had:
09/07/2011 03:38 PM 2,492,712 Johann David Wyss – (10_59) The Swiss Family Robinson (Unabridged) Part 1.mp3
09/07/2011 03:38 PM 2,487,636 Johann David Wyss – (10_76) The Swiss Family Robinson (Unabridged) Part 2.mp3
09/07/2011 03:39 PM 2,501,748 Johann David Wyss – (11_59) The Swiss Family Robinson (Unabridged) Part 1.mp3
09/07/2011 03:39 PM 2,523,924 Johann David Wyss – (11_76) The Swiss Family Robinson (Unabridged) Part 2.mp3
09/07/2011 03:39 PM 3,010,248 Johann David Wyss – (12_59) The Swiss Family Robinson (Unabridged) Part 1.mp3
09/07/2011 03:39 PM 2,526,876 Johann David Wyss – (12_76) The Swiss Family Robinson (Unabridged) Part 2.mp3
09/07/2011 03:40 PM 3,041,388 Johann David Wyss – (13_59) The Swiss Family Robinson (Unabridged) Part 1.mp3
09/07/2011 03:40 PM 361,404 Johann David Wyss – (13_76) The Swiss Family Robinson (Unabridged) Part 2.mp3
09/07/2011 03:40 PM 387,684 Johann David Wyss – (14_59) The Swiss Family Robinson (Unabridged) Part 1.mp3
09/07/2011 03:40 PM 1,884,096 Johann David Wyss – (14_76) The Swiss Family Robinson (Unabridged) Part 2.mp3
09/07/2011 03:40 PM 2,066,976 Johann David Wyss – (15_59) The Swiss Family Robinson (Unabridged) Part 1.mp3
… and so on for 135 files…
Is it just the first two numbers in the parentheses that indicate the track #’s??? Is there a command line switch to preserve the original name,i.e., Track01, Track02, etc…????
Dude I just did this on a audio book…. you can convert to mp3 by MOUNTING the image with NERO IMAGEDRIVE and then RIPPING to MP3 with WINDOWS MEDIA PLAYER….!!!!! It’s Fast and SIMPLE!!!
Hey Angel X, I tried downloading Nero Imagedrive to convert an Audible file to mp3. Your way seems easier. However when I clicked on the download it loaded ILivid to my computer which seems to only play videos. is this the right program and if so, how do i convert an audio book to mp3. What is mounting??
thanks
worked great. Had to use nero 9 not nero 10. Also, the path wasn’t c:\ it was C:\Ruby192\bin other than that everything was a snap. Thanks a bunch. I did end up with several mp3 files. I just cut & pasted them together with audacity software.
I have been using Nero 9.2 for imaging the aa files, but after a reinstall of my win 7 64 OS, the prompt for audible login in nero now refuses to grant me to add it – “Username does not match the title”? in a hex editor i can see the user name but not the password.
I have changed the PW on my udible acct also but no luck?
I’ve tried various methods, including OP’s, but none works for enhanced format apart from Soundtaxi which as someone mentioned above, creates noticeable sound degradation. Any suggestions?
I’ve tried following all the steps, but it doesn’t seem to work for me – am I missing making some changes in the script perhaps (I have made sure to save all the programmes etc. under the same names as in the example)? I’m not familiar with computer language, so might be making some basic errors. Any help would be much appreciated.
“Lee:
This worked great! Thanks. However I ended up with 50 mp3 files. So I had to purchase a mp3 joiner program (which also added another step to the process). Is there a way not to get so many mp3s? Actually 1 mp3 would be fine (size doesn’t matter).
Also, this seems to require Nero 9. Would any other version of Nero work?
Thanks again, now I can listen to my audiobooks on my Android (Droid)”
I tried Brenda’s suggestion and still got 50+ files per audiobook. Noteburner also uses Nero so the file size/numbers my be caused by something in Nero.
Thank you so much for this, worked perfect, and ive not very computer savoy :)
Thank you! Works great. If there is some great new method to doing this, I haven’t found it. I stumbled upon this and despite a few silly mistakes on my part, managed to get it working with some trial and error and should have no trouble in the future. I had these issues which may help others:
- make sure when you install Ruby that you select the options to have the default PATHs added (I was at first getting “Windows cannot find ruby” errors because I hadn’t done this) or add these yourself.
- in the path to lame.exe, use lowercase letters. I kept screwing up this path and having to start over. It’s also probably a good idea for users–like me–who are feeling their way through this to use that “don’t delete files” modification you mention for line 43. That way, you don’t have to start over.
Thanks again!
For people (like me) who find this process too complicated, why don’t you just use NoteBurner? Click, click and you are done.
I have managed to download all hte files except Nero 9 (or anything that will enable me to convert my .aa file to an MP3 – could anybody give me a link to where I can download it from – have spent hours looking – thanks!
Fantastic explanation – thank you very much.
I did experience the same issue as Cynthia Reid, but entering the following into cmd did the trick:
C:\>SET PATH=%PATH%;C:\ruby\bin
Thanks again,
Open cmd ;
set path=”C:\Ruby192\bin”
then run the script.
This man is awesome POO(Kung fu Panda)
Just a note to point out that Nero 9 only supports the aa (up to Format 4) files and not the new Enhanced (aax) format. However, if you have access to your Audible library you can re-download any previous purchase in the correct format. There’s a slight degradation of quality, but if you’re converting to mp3 the highest quality won’t be your biggest priority anyway.
Excellent article, and once I’d realized that Nero 10 lost the audiobook conversion utility and then I installed Nero 9, it worked like a dream. Brilliant!!
Two other utilities users might find useful in cleaning up the resultant mp3 files are:
1. Bulk Rename Utility – http://www.bulkrenameutility.co.uk – an excellent utility that allows you easily to clean up the Audible file naming convention whereby file names contain strings like (1_68), (10_68) which sort out of order. Its helpful to know a bit about regular expressions, but the help page samples give a good intro.
2. mp3tag – http://www.mp3tag.de – lets you retag your mp3 files.
Both of these utilities are free