September 8, 2011

Podcasting from WordPress

WordPress is the leading open source blogging platform for good reasons, but what do you do when the written word no longer suffices? Sure, you can attach an audio or video file to a WordPress post, but if you are interested in managing a professional-caliber podcast from your server, you need more. Let's compare the alternatives.

For starters, it is important to set our expectations. There are full-blown podcasting services that will host your program and do all of the lifting for you — but we are not interested in that. We are interested in self-hosting the podcast on a machine that we control, either our own LAMP stack or a similar virtual server from a typical Web hosting provider. Otherwise, where's the fun?

Still, in addition to producing a valid podcast feed that audio and video clients can use on any platform, we want the same level of configurability that we've grow used to with WordPress's blog feeds, such as the ability to make our podcast feed available separate from our text feeds, stats that are actually helpful, and for open source friendliness, support for free codecs in addition to MP3 and the video flavor-of-the-month. It would also be nice to make sure our work gets picked up and recognized by the popular podcast directories.

WordPress and Its Built-In Features

At a technical level, a podcast feed is just a normal RSS or Atom feed that includes a link to a media file inside an <enclosure> tag. When you compose a post, you can attach a media file (audio or video) from within the post editor, and WordPress will automatically create the enclosure. But all an RSS subscriber or visitor to your site will see is a generic hyperlink in the body of your post, not in-browser player that lets them enjoy your insights and witticisms.

And that post will be mingled in with the rest of your content — not a bad option if you are using your WordPress installation exclusively for your show, but awkward if you want to do both, and ultimately unfriendly towards listeners who want to subscribe with their audio player.

Still, there are a few things you can do to whittle generic WordPress audio/video enclosures into a suitable podcast feed. For starters, you can create a separate category for your podcast content (in the Dashboard, go to Posts -> Categories). Using podcast as a category name, the category-specific feed automatically produced by WordPress will look like http://yourblog.com/category/podcast/feed. You can use multiple categories and effectively provide multiple podcast feeds this way, using a single WordPress blog.

Category-specific feeds may be automatically created, but for your audience to see them, you will also need to make them visible in your theme and layout. You can manually add a link to the correct URL in the sidebar or masthead, or use a plugin like Subscribe Sidebar.

To provide a simple audio player for Web visitors (who might want to sample an episode before subscribing in their dedicated podcast client), you can add another plugin like Audio Link Player or WPaudio. Be forewarned, however, that although there are lots of embedded audio player options, many of them are Flash-based, and few offer support for Vorbis or other media types, so if those qualities matter for your feed, double-check.

Providing a video player for video-podcasts is more difficult, but there are several options to choose from as well. The Hana FLV player is a Flash-based option that is actively maintained. Alternatives that use HTML5 elements are out there, too, such as VideoJS.

Regardless of whether you publish audio or video, you also need to worry about providing helpful metadata (such as an episode summary for each post, and a show description and/or "title card" image) for users that find your show through iTunes, Miro, or some other podcast directory service. There are add-ons to handle this as well, such as Podcast Channels.

Dedicated Podcast Management

But then again, if you take that route, you end up having to manage three to five separate plugins. They may not all receive updates at the same time, and keeping them configured just costs you time. A simpler option is a dedicated podcast-management plugin, of which there are several to choose from.

One of the oldest options is a plugin called simply Podcasting. It includes metadata management, support for producing multiple, independent feeds, and a Flash-based audio/video player. It also allows you to host your underlying media files on a separate server from your blog itself. Some people prefer to do this just to save bandwidth and drive wear (which is a bigger concern if you run your own server), using Dropbox, Archive.org, or a range of other Web storage services. If you want torrent content delivery, however, you can only do that with a separate plugin.

Podcasting adds tools to the WordPress post editor that allow you to upload or link to a media file, and add episode-specific information. There is a separate configuration page in the Dashboard to manage show-wide metadata and publication options. You can also customize several attributes of the player, and can set up separate feeds for separate codecs.

The podPress plugin is a newer alternative that handles the same basics, but does noticeably more than Podcasting. For example, support for non-MP3 codecs like Vorbis is built-in, whereas Podcasting requires you to set them up manually. You can also automatically include a "preview" image for video posts, rather than loading the video player. Flash and HTML5 players are built-in.

From a management perspective, podPress allows you to see and adjust the ID3 tags embedded inside your media enclosures, which can be important to maintain compatibility with third-party directory services (the iTunes directory in particular). PodPress can also produce dedicated itunes: subscription URIs to launch the iTunes client from the browser — on those OSes where iTunes is available.

PodPress also allows you to maintain a separate "paid subscription" feed that you can use to monetize your hard work. There is also a full-features statistics package that lets you keep tabs on your download an subscription popularity.

The third and final major podcast-management option is Blubrry Powerpress. Like the name suggests, this plugin is designed to interact with the third-party podcasting Web service Blubrry, but you do not need to buy a Blubrry account to use it.

Like podPress, it includes show and episode-specific metadata management from the Dashboard, a choice between HTML5 and Flash-based Web players, and support for multiple podcasts within the same back-end. Powerpress even includes multiple media player options covering a wide range of styles and overhead. Powerpress's media support is excellent, even including the royalty-free WebM video codec. You can also choose to store your media content on an external site, such as YouTube, Blip, or Ustream.

Blubrry hosts the statistics package used by Powerpress, and offers a paid "premium stats" service, although there is also a free basic service available. Blubrry can also host your media files (for a price) and provide a directory service. There are several other interesting features offered by the plugin itself, such as diagnostics, the ability to have your Web player embedded on other pages (to help with sharing your content). Perhaps most interesting is that Powerpress supports offering podcasting as a user-role option for multiuser blog setups, and offers full support for WordPress MU.

Roll Credits

Whichever route you take, you will find using WordPress to create and publish your podcast to be the easiest step in the process. Far more difficult is the task of spreading the word and attracting listeners or viewers. There are plenty of plugins and tools to help you push out new notifications over social media networks, but by and large marketing your work is a hard slog. You have to make your show visible in the popular directories, from the corporate-controlled iTunes to the community-driven Miro Guide. At least you won't have to expend extra mental cycles on the technical bits.

Click Here!