We use Expression Engine as the publishing platform for Lunchbox Radio (a project me and my fiance run). Recently we have started to explore podcasts as an additional music medium for LBR. We have one now and so far its worked out very well. However, we have been working on adding a few more and faced some major implementation issues with our current setup.
We use ExpressionEngine as the publishing platform for Lunchbox Radio (a project me and my fiance run). Recently we have started to explore podcasts as an additional music medium for LBR. We have one now and so far its worked out very well. However, we have been working on adding a few more and faced some major implementation issues with our current setup.
For the single podcast we have a template set named after the show milkmoneysessions, a weblog called podcasts, and a custom field set called podcasts. The template set looked like this:
index podcast (xml feed) episode
The custom field set looks like:
episode_subtitle episode_description episode_name episode_size episode_length
This works fine as long as we don’t plan on growing and adding new podcasts in the future. The goal moving forward though is to build a system that would allow us to easily add a new podcast without duplicating template sets and weblogs. Ideally it would all be handled with one template set and one weblog.
We are going to use categories to organize our podcasts into their own individual shows. One thing I had forgotten about ExpressionEngine categories is that you can create custom fields, just like for your weblogs. I created two custom fields for the podcasts category set, feed_url, and episode_long_description. The feed url is the full url for that categories podcast feed. We use feedburner to manage our feeds. The long description is for the category template. We want each show to feel unique and have it’s own content and message. The default category description is being used as a short description for the categories on the podcasts home page.
This is our updated template set, now called podcasts:
index episode episodes feed
The index template will list all of the podcast categories, like a podcast directory. Each category has an image and description to give each podcast its own unique brand and identity.
The episodes template will list all the episodes for the podcast category. This is the “show page” for each podcast, and includes the feed url links, long description, and the list of episodes. By making use of the {exp:weblog:category_heading} tag we can pull all our category information onto the template. This allows us to include the podcast feed url in the sidebar. Each episode links to the episode template which allows users to leave comments. The url for each podcast ends up looking like: http://example.org/podcasts/episodes/C01, where C01 is the category. Depending on how you have setup ExpressionEngine, your URL structure might be different.
The episode template will list details of a single episode. Because each episode belongs to only one category, we can use the categories tag pair inside the {exp:weblog:entries} tag to pull our category info just like we do for the episodes template.
Feed is our podcast xml feed template. We pass the category ID to it to split up each podcast into its own feed. The url looks like: http://example.org/podcasts/feed/C01. The template is based on the iTunes Podcast Template.
We have two new podcasts going up in the next month, and it will now be very easy to add them. Thinking even further ahead, it would be almost trivial to allow people to build their own podcast feed based on tags. We simply tag each show like “Breaks, Progressive, House”, etc. Users could select tags to show only podcasts that they want to get, and whammo, custom podcast feeds. Expression Engine makes things too easy sometimes.
To see it in action visit http://lunchboxradio.com/podcasts