27 - Podcasts in ExpressionEngine - Build or Rent?

Looking to build a podcast or archive of audio files on your ExpressionEngine site? You essentially have two options - build it all within EE, or rent some capabilities from an Application Service Provider (ASP) and integrate their output into your EE-based site. In this chapter I’ll look at the advantages and disadvantages of each approach and lay out the direction for the sample Church Site I’m building.


You can’t talk to a church these days without the idea of putting their sermons online coming up.  It’s plain to see why - much effort goes into the sermon, getting it online would increase it’s reach, and (lazy pastors recycling old messages notwithstanding) it’s fresh, regular, original content for a church website.

So how to tackle this?

Go Native
From one perspective a sermon archive/podcast is just another content type.  Sermons posted online can be described with a relatively simple assortment of fields - title, date, description, category, audio file, it’s ordinal position within a series, length, speaker name, scripture verses covered, etc.  If you’ve been following along in this series you’re probably already jumping ahead mentally…setting up a new weblog, a new field group, creating the fields…and you’re correct.  An all-native ExpressionEngine approach is perfectly valid. EE’s custom fields and weblog-as-data-containers would make this a very straightforward build.

However - it’s possible that you might run into a couple of issues that start to make an ASP-based approach look attractive.  Those issues are file size and it’s half-brother: bandwidth.

File Size
Let’s look at file size first.  Sermons tend to generate audio files that will be larger than you will able to upload, by default, through the standard file upload process in EE.  Usually you will be limited to uploading files sized somewhere between 2MB and 5MB (This isn’t actually an EE limit, but rather a PHP-level limit set on the server).  A 20 minute sermon will easily eat that up - and the hour-ish long messages at my own church tend to put out .MP3 files closer to 60MB.

You can, from within ExpressionEngine’s interface, tell what size file uploads your install is capable of.  It’s the PHP Info screen and is found under Admin ›  Utilities ›  PHP Info.  You want to look for “upload_max_filesize” and see what it’s set to.  Here on Train-ee running on EngineHosting my limit is 5MB.

The other setting that might come into play is “memory_limit” - which you can also bump into by trying to process large files via EE and PHP.

These settings are configurable - so it’s possible that by contacting your web host you could have these two configurations upped to cover the size if your audio files.  And certainly there are things you can do to affect the final size of the audio file - different audio codecs, different compression settings or killing the pastor’s mic after 15 minutes—all of these will work but the result might be an file that’s unbearable to listen to or an angry pastor.

One option around these PHP-related file size limits is to use an FTP client to move the audio files to the web server.  Once on the web server a content administrator could still use EE’s “File Upload” process, but instead choose to view files that already exist on the server.  The challenge with this process is that it becomes just a bit more complex than I prefer - I don’t like putting non web-heads in front of an FTP client.  If your church has savvy audio techs that wouldn’t blink at FTP then this might be an acceptable solution.

The related issue to file size is bandwidth.  The minute you start putting large files on your web server and encourage people to download them your bandwidth usage will increase.  Depending on your web hosting agreement you could begin to incur additional costs for that bandwidth.  Or worse yet - your entire site (and possibly email with it) goes offline once your monthly bandwidth has been consumed.  For churches - who are typically on a pretty restrained budget - this could be the perfect setup for a technical faux pas—after finally getting the church podcast online and hyping it, the entire thing becomes unavailable.

Hire It Out
The other alternative is outsourcing the podcast functionality.  There are businesses who’ve turned these challenges into a new offering - hosting specifically for podcasts. A podcast host will typically give you a non-FTP way to upload files and also offer enough bandwidth to cover a popular podcast.  Decoupling the podcast from the rest of the website also guarantees that the availability of your website and email will never be affected by the podcast.  Podcast hosts often have ways to embed the content back into your site through the use of a Flash-based media player.

A quick Google search turned up a few dedicated to serving churches (links not meant to be an endorsement, just a link):

However I’m always a bit reluctant to use services that are totally geared towards churches - like “Christian Webhosting”, or “Church Content Management Systems”.  While I know these solutions work for many, I prefer to use non-religious commercial vendors.  Why?  Some of it is just personal preference - I want to try and avoid building a “Christian Bubble” around myself and my world.  Some of it is admittedly prejudice - over the years I’ve noted that internet related businesses that specifically target Christians and Churches tend to be behind the curve in design, features and functionality.  Regular commercial providers just seem to move faster and be more competitive.  I also like the idea of my church-related work sitting side by side with non-church, non-Christian accounts from others - just on the off-chance that it may influence someone who wouldn’t run across it if it were on an all-Church/Christian server. 

In that vein the one service I have used a few times to work with an ExpressionEngine site to deliver a podcast is HipCast.  Their plans start at $10/mo for unlimited bandwidth (far cheaper than a couple of those I linked to above), and they also support the Metaweblog API.


For those that haven’t used the Metaweblog API—it’s essentially a way to create a door into the backend of ExpressionEngine that allows another application to create a post in a weblog. EE creates a key to the door that is given to the outside application, and the door is kept locked to everyone else. 

In this case clients first upload a new audio file to Hipcast via a web browser.  Once the file is on the Hipcast server, Hipcast updates a podcast feed with the new audio file.  But - it gets better.  Hipcast also uses the Metaweblog API to programmatically create a new post in the client’s EE site.  In that post Hipcast places file information like title and date, but also places a small Flash player that allows site visitors to play the audio file right from the blog post.  You can see an example on my church site here.  I’ve also used Hipcast on a client site for a radio show - you can see an example of that here.

You can also use Hipcast to allow clients to literally phone it in - they can call Hipcast on the phone, punch in an account number, speak their piece, and—again through the Metaweblog API - a few minutes later a new post with the audio from the phone call pops out on their website.  I once set this up for a soccer fan site where the site owner wanted to be able to call in updates while sitting at a game, but - inexplicably - once I finished the site the client turned it off and it’s never gone live.  Ah well….

Soooo…Which Way?
Deciding which way to go for this tutorial series is a pretty tough call.  For any real-world client the price, ease of setup, functionality and unlimited bandwidth of the Hipcast-based approach is tough to argue.  However I like to keep these tutorials more in native-EE land as that’s really the purpose of the site.

Let’s do this—if you’ve been following this series and have any input on direction leave a comment and tell me which would be more valuable to you - an all-EE approach?  An integration with HipCast?  Both?




Category Navigation

<< Previous Entry   

Next Entry >>


Previous Comments

Picture of Sean

by Sean

Date: Sunday, October 26th, 2008
Comment: #1

I vote for both. I’ve set up something similar to a podcast in EE before, but would like to see how you would do it and I’d also like to see the alternative.

Picture of Win

by Win

Date: Sunday, October 26th, 2008
Comment: #2

With HipCast, please! 

I’m following your tutorial with great interest, and learning tons about EE’s native capabilities.  But I can see the need in the near future to integrate EE with other third party apps and services, and I’d love for you to get me started in that direction.

Picture of Ben Carlson

by Ben Carlson

Date: Sunday, October 26th, 2008
Comment: #3

I vote for the HipCast alternative. I think anyone following your series would be capable of doing this with a normal weblog and fields, and would much rather learn about this Metaweblog API.

Picture of Wolf

by Wolf

Date: Monday, October 27th, 2008
Comment: #4

Another vote for HipCast. I am currently learning that by myself, and any tutorial on this subject is welcome.

Picture of AJP

by AJP

Date: Monday, October 27th, 2008
Comment: #5

I’d say that since you’ve been trying to do everything with native EE functionality, I would do it natively first. Also, those building and following along at home, won’t be able to duplicate unless they want to pay bucks to follow along to the letter.

But given that the most likely scenario is to hire it out, I’d do that as a “extra credit” or bonus section.

Picture of Steve Nelson

by Steve Nelson

Date: Monday, October 27th, 2008
Comment: #6

Not directly related to your question…
Your new print style sheet (I assume it’s reasonably new) is GREAT. Previously, articles with lots of code (like implementing the photo gallery) clipped long lines of code. The new one handles long lines much better. Thanks for attending to details both large and small in this series.

Mike Boyink

by Mike Boyink (Author)

Date: Monday, October 27th, 2008
Comment: #7

Thanks for the input folks. 

Since the overall charge of Train-ee.com is to teach about EE, I have to start with the all-native approach.

However - since I’d go with the Hipcast approach if this were a ‘real” project I’ll cover that as well. 

Steve - the print stylesheet is a recent addition so I’m glad you noticed it and find it helpful.

Picture of T.Gee

by T.Gee

Date: Monday, October 27th, 2008
Comment: #8

It might be interesting to ask the community over on the EE forums to see if they have any recommendations for a hosted type solution api. I have to admit, I’ve never had the chance to do much research on podcasting.
The community might be aware of some new resources that are cheap to free.
just a thought.
Your recommendations as always appreciated.

Picture of Erik Reagan

by Erik Reagan

Date: Wednesday, October 29th, 2008
Comment: #9

I am the Web Developer at Savannah Christian Church and am leaning toward EE for our new system. I have already built out a few applications in CI that we currently use. One of them happens to be our media management system including our podcast. Since it is written out in CI it shouldn’t be hard to port over to EE as a module (from what I understand).

To keep costs low we are using Amazon S3 for our storage and it’s working great for us. We were using Sermon Connect before I came on board. We have plans for some “custom needs” that no hosted services offered. That’s why we went with the build it approach.

Picture of parsoncraig

by parsoncraig

Date: Sunday, November 2nd, 2008
Comment: #10

Mike, I am eager to learn about the Hipcast approach. I am impressed with what I see from your example.

Also, if you or anyone of your readers has tips about how to setup an efficient work process for recording and then podcasting sermons, I’d appreciate an email.  That is, I am trying to determine what equipment we should buy so that we have a streamlined process from the sermon/teaching event to the distribution on the site.  We have no means of recording yet, so I am trying to streamline the whole process (of which this HipCast thing would seemingly be the final part).  But I welcome any suggestions on how to generate cost effective quality MP3 files (what equipment) so that we can send them to HipCast once we establish the link.

Mike Boyink

by Mike Boyink (Author)

Date: Sunday, November 2nd, 2008
Comment: #11

Hey Craig -

Well, you’ll have to wait for the Hipcast route as I’ve started putting the native approach together…;)

On the equipment—some of that will depend on what you’re currently using.  Are you running mics through a soundboard?  Are you currently recording the services and just need to convert the recordings to MP3?

A visit to your local sound reinforcement dealer might be in order—this stuff should be their bread and butter these days…

Picture of parsoncraig

by parsoncraig

Date: Sunday, November 2nd, 2008
Comment: #12

Yeah I thought this would be a no-brainer.  But my parish is in a rural area with no dealers nearby.  We currently have no recording capacity. The mic systems runs through a soundboard with ports on the back, but no one evidently envisioned recording sermons.  We have no recording equipment currently. I had thought about finding a way to hook some recording device to one of the ports on the back of the soundboard.  I don’t know which devices are worth considering.  But it seems there ought to be a way to get the audio file (once I get the ability to produce one) quickly and effortlessly to a server where it can be distributed electronically.

Mike Boyink

by Mike Boyink (Author)

Date: Sunday, November 2nd, 2008
Comment: #13

Sounds like you’re in the market for a CD recorder.  You should be able to hook it to the audio board and record an MP3 directly. 

This is what our church does -then (until we had internet access at the church building) someone would take the CD home and upload the file. 

Now we have a PC by the audio board where it gets uploaded from.

Picture of Chris Falzone

by Chris Falzone

Date: Wednesday, November 5th, 2008
Comment: #14

I would really like to see both, but since I plan on suggestion the HipCast solution to the client, that is the one I am most interested in.

BTW, I really enjoy your posts.  They’ve helped immensely

Picture of Mary Ellen Slater

by Mary Ellen Slater

Date: Sunday, November 9th, 2008
Comment: #15

Me again!

Mike what is the plugin you used with hipcast to do the find and replace on the <>?

I have it working if I go in and strip out that ascii myself but I read in your post on the forum that you used a plug-in.


Mike Boyink

by Mike Boyink (Author)

Date: Sunday, November 9th, 2008
Comment: #16

Picture of Mary Ellen Slater

by Mary Ellen Slater

Date: Sunday, November 9th, 2008
Comment: #17

The sad part is i went through the whole list and missed it completely. I think i expected it to have some funky name. :>

Picture of parsoncraig

by parsoncraig

Date: Tuesday, December 30th, 2008
Comment: #18

I tried using Hipcast as you say you have.  But I had the same problem that several EE users describe <a href =“http://expressionengine.com/forums/viewthread/35102/”> here</a>.  The iframe is a problem in terms of rendering (for me and the others on the thread) and it seems like you depart from strict XHTML if you go that route.  Am I wrong about that?  Is there any way you can post on the thread I gave above how you solved the problem, because evidently Sue Crocker et al could not solve it?

Mike Boyink

by Mike Boyink (Author)

Date: Wednesday, December 31st, 2008
Comment: #19

Oy - that’s an old thread.

I have the Hipcast chapter roughed in hoping to publish this week, but the short answer is EE is converting those characters to entities as a means of security.

You just use the find and replace plugin to change them back.

Picture of parsoncraig

by parsoncraig

Date: Wednesday, December 31st, 2008
Comment: #20

Thanks, Mike.  I found the plugin.  Makes a lot of sense.

On another note:  with regard to the wimpy player - I would have gone that route, but need a solution for wma files that it does not support.  Most churches I have been at use portable recorders for recording talks that are not sermons (e.g., at conferences in the hall that is not wired because the money was cut from the budget).  The hipcast player has the ability to play those files just fine.  But if I wanted to stay within EE and save the cost of hipcast, do you have a suggestion for a decent conversion utility that you have used or for a different tool than wimpy that would work with wma files?  We do a lot of these conferences and so I need to have a solution for that.

Mike Boyink

by Mike Boyink (Author)

Date: Wednesday, December 31st, 2008
Comment: #21

I got nothing - but were it me I’d probably be looking to do a file conversion to get those into MP3 format rather than a player to play them as-is.  I’m not sure what support there is for WMA on non-Windows OS’s.

Picture of parsoncraig

by parsoncraig

Date: Wednesday, December 31st, 2008
Comment: #22

Also, Mike, perhaps you could address in your chapter later this week or here in the comments my concern about allowing all html in order to use hipcast iframes.  All the books on CSS I have been reading and you yourself preach against going backwards away from strict xhtml, and, as I understand it (without certainty), the use of iframes is going against the flow here.  Is that OK for some reason here but not elsewhere? It’s confusing to sort these things out without the expertise of a pro.

Mike Boyink

by Mike Boyink (Author)

Date: Wednesday, December 31st, 2008
Comment: #23

- The “Allow all html” setting is only telling EE what to do with HTML it finds in entries.  It really doesn’t affect your use of HTML or XHTML.

- I recommend XHTML with EE sites because when EE generates markup it generates the XHTML versions of markup.  It’s just easier or more likely that your site will validate using XHTML.

- iFrames are supported in HTML and XHTML transitional, but not strict.

- I am not a validation purist.  I prefer sites validate, but in this case if using Hipcast allows a church to quickly, easily, and cheaply post it’s sermons online in a highly usable format (without breaking the site visually) then I can accept that. 

IMHO for many web developers code validation (along with SEO) tends to become a god to which everything else must be sacrificed, and I think there are times where the site has a higher purpose than a green favicon and pat on the back from the W3C.

Picture of Philip Meissner

by Philip Meissner

Date: Monday, June 1st, 2009
Comment: #24

If you’re setting up a podcast this plugin could save a lot of time. Instead of re-entering info into the post, let EE pull the info from the mp3 using the EE plugin: MP3 Info +

Mike Boyink

by Mike Boyink (Author)

Date: Wednesday, June 17th, 2009
Comment: #25

I’ve never heard of Truthcasting.

Add Your Comment

Commenting is not available in this channel entry.

Unless otherwise stated all content is © Michael Boyink of Train-ee.com & Boyink Interactive. Please don't steal - I've got kids to feed...