Armchair Podcasting With Linux

Hey! Let’s put on a show! With a little bit of audio equipment and Linux, the world is literally your stage.
A previous “On the Desktop” column (available online at http://www.linux-mag.com/2006-04/desktop.html) shared how to make the most out of your iPod and Linux, and explained how to subscribe, download, and listen to podcasts on your desktop. This month, let’s disccover how you can become a podcaster yourself.
This article assumes that you have either Ubuntu, Debian, or SUSE 10.1 installed. All three distributions are great to use as a podcast production platform because the software to use is easily acquired by configuring your package manager and installing the software automatically over the Internet. If you’re using Fedora Core 5 or Red Hat, you may need to manually download and install some of the packages mentioned below.

The Hardware

These days, if you got basic recording hardware, a blog, an Internet service provider hosting account, and the right mix of software on your PC, you can produce their own Internet podcast. Got a cool hobby you want everyone to know about? Or perhaps you think you’re so brilliant or funny (or bizarre) that everyone should hear your shrieking and annoying voice? Linux is a great platform for producing your “show,” and all the stuff you need is available for free.
The first issue to tackle is capturing your audio. If you’re going to be doing interviews or talking to people “out in the field,” you’re going to want some sort of portable recording device. If you already own an iPod, you can certainly use it to record audio using an external microphone and the iPod’s built-in recording feature. However, be advised that most iPods are limited to a very low, 8 KHz sampling rate out of the box, so it’s going to sound “lo fi” unless you hack your iPod. Software such as iPodLinux/Podzilla (http://www.ipodlinux.org/) allows you to record at much higher quality levels (44 KHz and above is considered to be high-fi quality), and something such as a Griffin iTalk or the Belkin Voice Recorder for iPod attachment are better microphones.
A much better option is to go for a dedicated, high-quality digital recording device, such as Olympus’s line of digital voice recorders. The Olympus gear is very small and compact, is constructed very well, has a great built-in microphone (yet can accept professional-quality, external voice microphones), and is capable of sampling audio at up to 44 Khz stereo using stereo condenser microphones (the miniature Olympus one can be had for less than $50). There are several different Olympus models available — check out the Olympus DM-20, which has a street price of about $150-$180, but can be found for as little as $130. You can also look into I-River T-30 series MP3 player/recorder, which has a street price of about $120-$150 as well. Both of the latter units connect directly via USB to your PC and are recognized by Linux as mass storage devices. (By the way, many recording devices do not record in MP3 format directly, but record in DSS Windows Media format, which is a more compressed standard for high quality audio. No fears about that, however. You can do the format conversion on Linux no problem.)
If you regularly conduct phone interviews, you can also get a $30 phone line splitter attachment from RadioShack (http://www.radioshack.com/product/index.jsp?productId= 2123175) along with a minijack adapter, if required, for your portable digital recorder’s microphone input or your PC’s sound card. You can also re-direct Skype VOIP audio to a file with a program called Hotrecorder (http://www.hotrecorder.com/), but it only runs on Windows.
FIGURE ONE: Odeo Studio: Publish your podcast quickly and easily

There’s also an Open Source solution for Linux called skype-rec on Sourceforge (http://sourceforge.net/projects/skype-rec/), if you want to try it. Another solution is to subscribe to ODEO Studio (http://studio.odeo.com/, pictured in Figure One) and have them do the recording and conferencing for you using their call-in system, which seems to work very well.

Manipulating Windows Media Files into MP3 Format

After you’ve captured your audio, you may need to convert it to MP3 format. No biggie. Create a shell script named wmaconvert from the code in Listing One and save it in your /usr/bin directory:
LISTING ONE: Convert Windows Media Format files to MP3


current_directory=$( pwd )

#remove spaces
for i in *.wma; do mv “$i” `echo $i | tr ’ ’ ’_’`; done

#remove uppercase
for i in *.[Ww][Mm][Aa]; do mv “$i” `echo $i | tr ’[A-Z]’ ’[a-z]’`; done

#Rip with Mplayer / encode with LAME
for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm:waveheader $i && lame -m s audiodump.wav -o $i; done

#convert file names
for i in *.wma; do mv “$i” “`basename “$i” .wma`.mp3″; done

rm audiodump.wav

Provided you have both the MPlayer (http://www.mplayerhq.hu/) and LAME (http://lame.sourceforge.net/) packages installed on your system, run the wmaconvert script from a terminal prompt from within the directory containing the .wma files. It transcodes the files back into WAV format using MPlayer and then uses LAME to encode the .wav files into MP3.
If you’re running Ubuntu or Debian (with the “Universe” repository enabled) and don’t have MPlayer or LAME, you can install both dependencies by issuing the following command from a terminal prompt:
$ sudo apt-get install mplayer lame
On SuSE Linux 10.1, open the yast2 program, click on “Installation Source” and add the “Packman” repository to your system, using the following parameters:
Protocol: HTTP
Server name: packman.iu-bremen.de
Directories: suse/10.1
After saving the new installation source, exit the program and click on “Software Management” within the yast2 menu. Then add lame and mplayer using the management interface. (For more information on adding installation sources in SUSE, consult http://www.linux-mag.com/2005-11/desktop.html.)

Editing your MP3 Files

Once you’ve got your audio in MP3 format, you can move on to editing and assembly. After listening to the raw audio of your podcast, you probably realize that you and your guest’s natural form of speech doesn’t sound anything you hear on NPR or even your local “Morning Zoo.” People pause when collecting thoughts, can stutter, or repeat themselves. That’s where editing software comes in.
Perhaps the best free audio editing software on any computing platform right now is Audacity (http://audacity.sourceforge.net/, shown in Figure Two). Luckily, Audacity is open source under the GNU Public License, and runs on Linux, Windows, and Mac OS X. Getting Audacity installed on your Linux system is easy. If you use Ubuntu or Debian, issue the following command from a terminal prompt:
$ sudo apt-get install audacity
With SUSE 10.1, follow the instructions shown above to install the PackMan installation source, go into “Software Management” in yast2 and install audacity.
FIGURE TWO: Editing an MP3 file with Audacity

Audacity is a very sophisticated editing program and it takes some time to get used to all of its functions. Several places on the Web, including http://www.how-to-podcast-tutorial.com/17-audacity-tutorial.htm, http://www.tsof.edu.au/resources/Sound/Support/tutorials.asp, and http://www.edhsonline.org/other/audacity/ have some nice tutorials.

Editing ID3 Tags

Once your audio is edited, the next step is to edit the actual ID3 information encoded in the MP3 file. Why? Well, for starters, MP3 players like the iPod and the iRiver and MP3 player software on various PC platforms use the ID3 tags to categorize and display information about your podcast, such as the name of the podcaster, the episode name, duration, the date of recording, and more. Also, various podcasting services such as ODEO and iTunes need the ID3 information to incorporate it into their online databases.
FIGURE THREE: EasyTAG edits MP3 ID3 tags

There are a number of ID3 programs for Linux, but perhaps the best one is EasyTAG (http://easytag.sourceforge.net/, shown in Figure Three). As before, if you have Ubuntu or Debian installed, issue the following command from a terminal prompt to install EasyTAG:
$ sudo apt-get install easytag
With SUSE 10.1, assuming the PackMan repository is installed, go into yast2 “Software Management” again and install easytag.

Creating your XML Content Feed

A podcast isn’t a podcast unless you have the ability to publish it and have others subscribe to it. To do that, you have to provide an XML data file describing your podcast, so that various services can provide the data streams to various podcast-enabled client software, such as iTunes, Juice (http://juicereciever.sourceforge.net), or CastPodder (http://www.castpodder.net/).
One way to create the XML is via a service like ODEO Studio. Use its MP3 upload interface and have the service create the RSS XML for you. It’s a nice solution, and if you don’t have a lot of web experience or the inclination to maintain this stuff yourself, it’s a great way to go.
The other way to go is to build an XML file using some script automation on your Linux workstation, and upload the XML files along with your audio to a directory on your ISP hosting account. A great script to use is Podcastamatic (http://bradley.chicago.il.us/projects/podcastamatic/). Podcastamatic is written in Perl and requires certain CPAN (http://www.cpan.org/) modules to be installed on your system. This can be achieved with two simple commands executed from a terminal prompt:
$ sudo perl -MCPAN -e "install MP3::Info"
$ sudo perl -MCPAN -e "install MP4::Info"
If you’ve never installed a CPAN module on your system before, the install script prompts you for some basic answers. You can simply accept the defaults using the Enter key.
Next, download the Podcastamatic tarball and unzip it into your home directory:
$ unzip -d podcastamatic1_3.zip
Next, change to the directory containing Podcastamatic and make the files in that directory read/write/executable:
$ cd podcastamatic1_3
$ chmod 777 *
Next, copy the sample configuration file to the configuration file you will be using:
$ cp example_podcastamatic.conf podcastamatic.conf
Next, open the podcastamatic.conf file, as shown in Listing Two, with your favorite editor, and change the parameters to match both the URLs of the Web site where you upload your MP3 files and the source directories on your PC containing your edited audio:
LISTING TWO: Podcasting is easy with podcastamatic.conf

# This is the title of your podcast
Title Podcastamatic Test Page

# Link to your podcast page
Link http://mypodcast.mywebsite.com

# Description of your podcast, should not contain HTML
Description This is my test podcast.

# Your copright information, should not contain HTML
Copyright (c) Copyright 2005.

# Location of your MP3s on the server side, must be a glob (i.e. end with *.* or *.mp3)
AudioPathServerSide /home/jason/audio/*.mp3

# Audio Path, Web Side
AudioPathWebSide http://mypodcast.mywebsite.com/~jason/audio

# HTMLServerSide /home/podcast/index.html
# Where does the generated HTML page go on the server?
HTMLServerSide /home/jason/audio/index.html

# XML file name full or relative path on server side
#XMLPathServerSide /home/podcast/rss.xml
XMLServerSide /home/jason/audio/rss.xml

# XML Webside filename, complete URL or relative to HTML page, used in HTML page
XMLWebSide http://mypodcast.mywebsite.com/~jason/audio/rss.xml

# Log for Podcastamatic. For no log, comment out this option by preceding it with #
LogFile /home/jason/audio/podcastamatic.log

Additionally, you may wish to tweak other aspects of the podcastamatic.conf file, such as the parameters used by iTunes for categorization and feed image. Once you’ve tweaked the configuration file to your heart’s content, run the Podcastamatic script from within the podcastamatic1_3 directory using the following command:
$ ./podcastamatic.pl
If the script runs successfully, you should now have a rss.xml file you should be able to upload along with your audio files into your ISP hosting account. Every time you create a new podcast episode and dump the MP3 file into your audio directory on your PC containing your podcast MP3s, re-run Podcastamatic to rebuild the XML and re-upload it to your ISP.
You can now use the URL pointing to your XML file as the source URL for services such as iTunes or ODEO and listing services like Podcast Alley (http://www.podcastalley.com/), Podnova (http://www.podnova.com/), and Yahoo Podcasts (http://podcasts.yahoo.com/).
However, you might want to go one step further and point a XML “beautification” service such as FeedBurner (http://www.feedburner.com, pictured in Figure Four) at your XML file. Why do that? Well, in and of itself, the XML file looks like source code if you try to view it directly in a browser. If you want people to be able to listen to the podcasts on their PC’s directly from your blog site without using some intermediary program like iTunes or Juice, you’ll want to make it look nice so you can link to it directly. Once you’ve configured the various options you’d like to include in your “beautified” feed, Feedburner “scrapes” your source XML file URL and provides you with an alternative URL you can publicize.
FIGURE FOUR: Syndicate your podcast with FeedBurner

Once you’ve verified that your feed is working, go ahead and promote it! Maybe you’ll be the next Adam Curry. Or even Howard Stern.

Jason Perlow invented the “perlowcast” in his basement in 1991, using spare components salvaged from his father’s stereo. You can reach Jason at class="emailaddress">jperlow@linux-mag.com.

Comments are closed.