Using Amazon Elastic Transcoder

Elastic TranscoderI’m a big fan of music and I manage my 50001 songs using iTunes. iTunes has it’s share of problems2, but overall it’s a pretty good media management application – especially if you’ve bought into the Apple ecosystem (which I have).

My problem is that most of my files are in the m4a format. That’s fine for my personal use, but it’s a problem when I want to share a file with someone else (who may not be part of the Apple ecosystem). iTunes allows you to convert a music file into mp3 format, but you have to remember to remove the duplicate file3. Again, this really isn’t a problem… but there’s got to be a better way to do batch conversions of files.

This became a bigger issue when I started re-publishing old posts to my blog. Many of those post have links to since-expired media files – which means I need to replace the links to valid files. I’m using the “WP Offload S3” plugin – which uploads my media to an S3 bucket. I’m also using the “zbPlayer” plugin to make my files available to play within the post. Problem is:zbPlayer only works with mp3 files4.

So right now, I convert the file to mp3 before adding it to my media library. After upload, I delete the file from my iTunes library. Not overly tedious… but there’s got to be a better way.

Enter the Amazon Elastic Transcoder service. I’ve been playing around with using it to convert the music files that I post on this blog. I’d like to write a program to:

  1. Use the existing media library plugin to upload m4a files to S3 (note: this doesn’t need to be programmed, as it’s functionality that already works)
  2. Look for any m4a file in my S3 bucket, convert to mp3, and delete the m4a file
  3. Update the link in my media library to reflect the new file

I think Lambda is the way to go for this (making it an event driven job)… but I’m not 100% sure yet. Right now, I plan to manually add the file to S3, use Lambda to convert the file, manually add the file to my media library, then delete the original files.

The only drawback is that I’m paying for pretty simple conversion that I could do for free (manually), or script (using FAAD and LAME or ffmpeg). However, the cost is pretty insubstantial ($0.0045 per minute of audio – which means I can convert approximately 100 songs (at 5 mins each) for less than a cup of coffee Starbucks.


  1. Actually, its 4956 songs, but who’s counting?
  2. Bloated software, metadata not flexible enough, and inability to add custom artist art to name a few.
  3. This may not bother some people, but I am very anal retentive when it comes to my library. I spend hours tuning my library so that I have the correct metadata (album art, artists, release dates, genres). I have very complicated 5-star rating system. My album art has to be at least 600×600 pixels. So, as you can imagine, I hate having duplicate files.
  4. I’m aware that WordPress has native functionality to play m4a files… and that most internet browsers will play m4a without a plugin….. I guess I’m just a sucker for the flash-based player

One thought on “Using Amazon Elastic Transcoder”

Leave a Reply