Large Uploads in WordPress

I’m working with a church that uses WordPress to manage their website and podcast. So far, they have a 200-step process every week for publishing the podcast (I exaggerate, but it is a huge step-by-step list).

Among other things, they have to:

Read More
  1. Record the sermon
  2. Master the sermon recording
  3. Create an MP3
  4. Upload the MP3 via FileZilla to their server
  5. Create a Sermon (custom post type) in WordPress
  6. Link the uploaded MP3
  7. Publish the post

There’s not much WordPress can do about steps 1-3 at the moment, but I’d like to simplify steps 4-6 if I can. I know some online applications are capable of very large uploads (GMail, Dropbox, and the like). Each sermon is 70-80 MB and far too large to process in a simple HTML upload form.

Is the Flash uploader capable of managing massive files like this if I max out the PHP filesize restrictions? Is there a better way to handle a large upload within WordPress?

Ideally, they’d be able to create a new Sermon (custom post type), upload the MP3 from the edit Sermon page, and have WordPress automatically parse meta information (ID3 tags, duration, etc.).

This would lead to a lower barrier of entry for new tech guys … and I might be able to take a weekend off for once 🙂

Thoughts? Ideas?

Related posts

Leave a Reply

4 comments

  1. 70-80MB is really not that large. Easily handled by the Flash uploader if your server is properly configured. Hell, I have a 2 gigabyte upload limit on my site. 🙂

    When they’re writing the new “post”, they just click the add media button above the toolbar and upload it. It gets saved as an attachment that’s tied to the post and bam, done.

    Parsing ID3 information is more complicated, but doable. Follow the EXIF code as an example.

  2. PHP should be able to handle it, but I’d recommend installing this plugin:

    http://wordpress.org/extend/plugins/wplupload/

    I’ve been using it quite a bit lately, and I’ve found it to work quite well.

    Basically, it changes the uploader to use the plupload library, and gives chunk uploading in modern browsers, amongst other things. It will essentially bypass the max size restrictions in PHP via chunk uploading.

  3. Here is what I do in our church:

    We use both audio files and video for our services, both live and on demand.

    The best solution I was able to come up with was a combination of wordpress and another server cluster running the Adobe flash communication server software.

    In a nutshell, I use adobe media encoder during the service in order to capture the live video and audio. I encode both .mp4 and a separate .mp3 audio file while the service is going on. This allows us to broadcast live and as the Adobe cluster is my own, I don’t have to worry about commercials etc.

    This feed is sent to the Adobe server cluster for live and on demand distribution.

    Archive on demand videos/audio files:
    Once the service is over and I click stop recording, the video and audio file become instantly available on the Adobe servers for later on demand viewing.

    WordPress:
    I wrote a simple script that goes to the Adobe server and checks the customer folder for new files. If the script finds an mp4 file, then it automatically adds it to my wordpress site as a custom post-type ‘sermon’. If the script finds an mp3 file then it automatically creates a custom post-type ‘podcast’. These posts are saved as drafts, because many times you will have recordings that you do not want on the website.

    Future ideas:
    There was a google summer of code project where php stream wrappers were introduced to WordPress. Frankly this is an incredibly powerful concept but needs another summer to finish the front end UI.

    What this will allow, is to have the WordPress media gallery automatically search other ‘places’ like cdn’s, flickr, etc, where the files show up as though they were part of the media gallery itself.

    This will make things much easier if the project is finished this summer as in my system the media manager would automatically find the video and audio files on the Adobe server, allowing easy input into posts.

    I hope this helps provide some good ideas for you. I also am always looking for ways to streamline the process as I deal with a number of church’s whose sites I host.

  4. I don’t know if it is of any value for you.

    But for my bookmarks and images I was bored uploading and re syncing the stuff with the server.

    So I investigated running Dropbox on the server (http://wiki.dropbox.com/TipsAndTricks) which needs a specific version of Python. If you can manage that the rest is easy:

    Let them just store the things they want to have on the server on their local c:dropboxsermons (folder shared with you) and… all the rest will be magically handled:

    • dropbox makes sure it lands on the server
    • you pick it up from there with a cron which triggers the code to generate the custom post for the correct user.

    I never finished my own project since my shared hosting MediaTemple account did not have that version of python installed 🙂 *)

    *) what i did instead was having an LFTP script on my nas which does the same (in sync mode) (but obviously that is very specific for one user versus dropbox which is by now very common across users)

    If you can create MP3’s on the server…:

    User:

    1. Record the sermon
    2. Master the sermon recording AND SAVE in C:dropboxsermon

    Server:

    1. Create an MP3 Create MP3 from raw audio file on Server
    2. upload the MP3 via FileZilla to their server
    3. Create a Sermon (custom post type) in WordPress Create Sermon post type based on new entries in c:dropboxsermon
    4. Link the uploaded MP3 during creation add the new mp3 in c:dropboxsermon in new post type

    User:

    1. Verify and Publish the post

    If you monitor changes to existing files: if sound file: then: re lame MP3, move to upload folder, if you see changes in the title : update sermon post type with new title and put back to draft status.

    Theoretically that should work