March 31, 2008

Convert iTunes M4A Files to MP3, With an Easy-To-Use GUI

Filed under: Linux — bnsmith @ 9:29 pm

A few months ago, I described the steps needed to convert DRM-free iTunes M4A files into MP3 files using Ubuntu Linux. The procedure worked, but was more difficult than it should be, so now I’ve built a GUI front-end. No command-line typing is required!

How to Convert M4A Files to MP3 Files

Step 1: Enable Additional Software Repositories

  • Click on System -> Administration -> Software Sources (You may need to enter your administration password)


  • Check the “Community-maintained Open Source software (universe)” and “Software restricted by copyright or legal issues (multiverse)” repositories


  • Click Close
  • Click Reload on the pop-up window

Step 2: Download and Install the Conversion Program


  • Ensure that the Open with option is selected; click OK (You may need to enter your administration password)
  • Click the Install Package button
  • When the install process is complete, close the pop-up and the installer program

Step 3: Convert Some Music Files

  • Click on Applications -> Sound & Video -> Convert To MP3
  • Click the Browse… button in the Directory to Convert box
  • Find the directory containing your M4A files and click Open; the program should now look something like this:


  • Click on the Begin Converting button

It will likely take about thirty seconds to convert each file. If you find a bug, please either post a comment here or report it on the Google Code Project page. I’m also happy to implement new features, if you have any ideas.

Technical Details

It seems to me that making the GUI took just as long as making the actual conversion script, if not longer. I spent a lot of time experimenting with different GUI systems. I tried out Dabo, and was leaning heavily towards using it for this project. Unfortunately, as I worked with the IDE, I encountered a few frustrating usability issues that kept me from embracing it fully. Notice that I said “usability issues” instead of “bugs”. The software wasn’t buggy at all, and I think that the Dabo people should really be proud of what they’ve accomplished. It just needs to be a bit… simpler. Simple is better than complex.

I discarded QT for the same reason. Perhaps if I need a more powerful GUI system in the future, I’ll consider looking at it again.

In the end, I decided to go for wxPython with wxGlade to graphically design the layout. I really appreciate both the simplicity of this system, as well as the attractiveness of the result. It isn’t perfect, of course. I wish that the wxWidgets toolkit had an available control that was like a tabbed notebook, but without any tabs and controlled programatically. I know that there are several workarounds, but I would still like to see one of the workarounds integrated into the toolkit.

This is also the first time that I’ve created a Debian package. The process was more difficult than I’d hoped but easier than I’d feared. It was very time-consuming to boot my computer with the Ubuntu 7.10 live CD, try to install the package, find that I’d missed a dependency or something, go back and fix it and then repeat the whole process again. Still, it could have been a lot worse. I probably would have given up my packaging effort if not for this video.

Anyway, if you have any questions about creating GUIs or Debian packages for Ubuntu, leave a comment and I’ll help if I can.

Create a free website or blog at