Andrew
Walpole

Principal Web
Developer &
Engineering
Manager

Designer
Leader
Teacher
Learner
Maker

Listen along to this post as you read, or subscribe to the blog

If You Blog, Consider Blogcasting

I had the not-so-new idea of attaching an audio companion to my blog. As someone who sort of wants to dip into podcasting (beyond the one I already tried), but doesn’t quite have the time or drive to get something going right now, it seemed like a cool compromise.

I’m calling it blogcasting, because it seems right, and certainly it’s not a term I invented, but as long as I don’t google it, I can claim to have.

How to get started Blogcasting

I went down a few avenues to get the blogcast up and running. First I thought I would use a podcasting platform to host it, and then, bonus, it would be a podcast too. Ultimately though, most podcast hosts are not free and it’s a bigger process to add in all the metadata for a podcast episode just to get something published.

Thanks to friends in the ShopTalk Show d-d-d-discord though, I was able to figure out a simpler implementation.

Step 1: Record the episode

First, I settled on a very quick recording process using audio hijack to capture the audio, and Adobe Audition to do a very quick listen-through and editing of pace and mistakes. So far each episode takes about 1.5x its length to edit, and that seems pretty good.

Step 2: Host the episode

You need a place to host your .mp3 files. In some cases your blog might have a server that can do this. In my case, a static blog hosted on Cloudflare, I chose to create a Cloudflare R2 storage bucket to host my files.

Step 3: Implement the blogcast into your blog posts

Since I’m now using Astro, I was able to very quickly create a BlogcastPlayer.astro component that uses muxinc/media-chrome under the hood. It’s a really fantastic web component library for doing quick custom video and audio players.

The BlogcastPlayer.astro component looks something like this:

---
const {url} = Astro.props;
---

<div class="blogcast-player" >
  <media-controller audio>
    <audio
    slot="media"
    src={url}
    ></audio>
    <media-control-bar>
      <media-play-button></media-play-button>
      <media-time-range></media-time-range>
      <media-playback-rate-button></media-playback-rate-button>
      <media-time-display show-duration></media-time-display>
      <media-mute-button></media-mute-button>
      <media-volume-range></media-volume-range>
    </media-control-bar>
  </media-controller>
  <p>Listen along to this post as you read, or <a href="https://andrewwalpole.com/feed.xml">subscribe to the blog</a></p>
</div>

<script>
  import 'media-chrome';
</script>

Given a url prop, the player renders itself. Not shown are some of the extra styles I applied to fix it to the bottom of the page, but hopefully you get the gist of it.

Step 4: Add the media to your RSS feed

This is honestly the most surprising and cool part about this. I had no clue that all you need to do to add media to accompany a blog post feed is to add an <enclosure /> tag pointing to the file for each <item>.

It might look something like this:

<enclosure url="https://pub-40fccf9e493a4d029eb2b8955f358ac3.r2.dev/if-you-blog-consider-blogcasting.mp3" type="audio/mp3"/>

Most RSS readers are happy to pick this up and display a playable interface.

Will you give it a shot?

What do you think? Is this an appealing idea? Have you tried it out on this post? I’d love to hear your feedback, whether it’s just dropping a like in the lower right (sorry RSS folks), or replying to my tweet or toot sharing this post. I myself am looking forward to Blogcasts sweeping the nation!