How I Used Blob Storage to Host My Podcast .mp3 Files

Originally published at: http://www.sitepoint.com/blob-storage-host-podcast-mp3-files/

I host a podcast called The Indie Dev Podcast where I interview game developers from around the world in 30 minute segments. I’m always fascinated by what people are able to create, and I’m even more curious about how they make these games happen.

I store the most recent episodes of the podcast on PodOmatic, which allows them to be picked up by iTunes and other podcast feed readers, but I am limited by the number of podcast episodes that I can store at once because I am using the free tier. My older episodes are lost unless I upgrade to the premium tier.

What Problem Does Blob Storage Solve?

With blob storage, I can take all of my .mp3s, store them in a container, and then allow the public to download them from the container.

When I upload my files to a blob container, I am given an HTTP endpoint, which I can use as a link to download an episode. Click on this link to download the most recent episode with Michael Hicks. You could do the same for videos that you record, too.

In this tutorial, I’m going to walk you through the steps of how I set up my container to host all of the .mp3s of the podcast.

How Does Blob Storage Work?

Blob01 - Storage diagram

Blob storage is a service for storing large amounts of unstructured data, such as text or binary data, that can be accessed from anywhere in the world via HTTP or HTTPS. You can make these files public or private as well, which means that you can use it as a storage repo for your own content for only you to access, or perhaps use it as a cost-effective way to store large amounts of media to share with others.

Common uses of Blob storage include:

  • Serving images, documents, audio, or video directly to a browser
  • Storing files for to be distributed to others
  • Streaming video and audio
  • Performing secure backup and disaster recovery

You can find out more about Blob Storage here.

Blob concepts and terms

  • Storage Account: All access to Azure Storage is done through a storage account.

  • Container: A container provides a grouping of a set of blobs. All blobs must be in a container.

  • Blob: A file of any type and size. There are two types of blobs that can be stored in Azure Storage: block and page blobs. Most files are block blobs, and we’re going to use those for this tutorial. A single block blob can be up to 200 GB in size.

  • URL format: Blobs are addressable using the following URL format:
    http://.blob.core.windows.net//
    The following example URL could be used to address one of the blobs in the diagram above:
    http://sally.blob.core.windows.net/movies/MOV1.AVI

How Do I Get Blob Storage?

You’ll need a cloud storage solution like Azure. You can sign up for a free Azure trial, or reach out to me about information on how to obtain a BizSpark account. This is what I use to host the files but you can follow along if you prefer other solutions too.

Continue reading this article on SitePoint

Thank you for this great article David.

I’ve been doing this for my podcast since January, after moving my podcast from LibSyn, but I’ve added some more things:

  1. I’ve also enabled the Microsoft Azure CDN and linked that to the Blob storage containing my podcast episodes.
  2. I’ve added a nice URL. This way I can take my podcast to, say, Amazon S3 and keep that URL without the need of changing the RSS feed.
  3. I’ve also created a small PHP script that writes into a MySQL database each time an episode is loaded to keep track of all hits. I am calling this script from a nice domain like traffic.mypodcasturl.com and the script adds the data into the DB table then responds with the appropriate MP3 file for my podcast. I can provide more details on this in case anyone is interested.

Having the episodes uploaded using Visual Studio is OK for some. I am a .NET developer and Microsoft Partner and I need to have Visual Studio installed, but there are some who don’t need that (not even the Community version of Visual Studio). Thus, anyone who don’t want Visual Studio can upload their episodes using Azure Storage Explorer for Windows or Cyberduck for Mac OS.

Good luck!

– Razvan

Thanks for the detailed response!

You raise a great point about enabling the CDN and linking the blob storage to that. I should include that in another article, or add an ammendment to this one. It’s a great way to improve performance for the end user.

How did you add a nice URL? Did you use a shortner service of some type?

I agree – Visual Studio is not for everyone. Moreover, it can be cumbersome to add each file individually. I also go bac kadn forth between OSX and Windows, so I should look into Cyberduck. Thanks for the recommendation!

For the Azure Blob Storage you have a “Manage Domain” link which will open a modal window titled “Manage Custom Domain” where you may add a custom domain, confirm that you own it (by adding the CNAME to your DNS provider’s zone editor) and it’s set.

For the CDN Custom Domain, please check this.

Apparently Cyberduck is available for Windows too, so if you like it you may use it both on Mac OS and Windows.

A fellow podcaster told me about CloudBerry Explorer, which is also a good tool.

Good luck!

– Razvan

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.