How ACG Brought an Award-Winning Tech Podcast to Life on Alexa (And What We Learned Along the Way)
There‘s no denying the immense popularity of podcasts. According to recent data from Edison Research, an estimated 90 million Americans listen to podcasts each month, with the average podcast fan tuning in to 6 hours and 37 minutes of audio content per week. That‘s a 17% increase in listenership compared to 2019.
It‘s easy to understand the appeal. Podcasts allow you to consume engaging, thought-provoking content completely hands-free and eyes-free. You can dive into your favorite topics while cooking, commuting, exercising, or winding down at the end of the day. By freeing you from the tyranny of the screen, podcasts open up new possibilities for learning and entertainment.
But here‘s the thing – the full potential of podcasts is often held back by the limitations and friction of graphical interfaces. Even if the content is pure audio, you still need to navigate apps and tap on screens to find episodes, control playback, and manage your listening experience. It‘s not exactly the seamless, low-friction experience that podcasts promise.
This is where voice assistants like Amazon Alexa come in. By allowing listeners to access and control podcasts using only their voice, Alexa removes all the unnecessary complexity and puts the focus back squarely on the content itself. No more fiddling with tiny buttons or scrolling through menus. Just say "Alexa, play The Cloudcast" and you‘re instantly immersed.
As podcasters ourselves, we at A Cloud Guru (ACG) immediately recognized the potential of Alexa to unlock the full power of on-demand audio. Our popular podcast The Cloudcast, hosted by Aaron Delp and Brian Gracely, has been downloaded over 7 million times since launching in 2011. Each week, Aaron and Brian geek out on the latest trends and technologies in the world of cloud computing. With 400+ episodes in the back catalog, it was the perfect candidate to bring to life as an Alexa skill.
But where to begin? Building a best-in-class Alexa experience for a podcast with hundreds of episodes presented some unique technical challenges:
Keeping content fresh
The Cloudcast publishes new episodes every week. To keep the Alexa skill relevant, it needs to automatically detect and incorporate new episodes as they‘re released. Manually updating the skill each time is a non-starter.
To solve this, we use a dedicated AWS Lambda function to periodically check the podcast‘s RSS feed for new episodes. The results are cached in Amazon S3, where they can be efficiently queried by the primary Lambda function powering the skill. This ensures listeners always have access to the freshest content with no manual intervention required.
Optimizing streaming performance
The Cloudcast‘s episodes are recorded and published as high-quality MP3 files. While this is perfect for the podcast‘s regular distribution channels (website, apps, etc), it‘s not ideal for real-time streaming to Alexa devices. Unlike smartphones which can cache episodes locally, Alexa relies exclusively on direct audio streaming. Large files can lead to buffering and a poor listening experience.
Fortunately, there‘s a solution: Amazon‘s Elastic Transcoder service. By automatically transcoding episodes into smaller, Alexa-optimized audio files in S3, we‘re able to achieve smooth and reliable streaming even for older episodes. Elastic Transcoder handles this process seamlessly in the background with no impact on our production workflow.
Enabling HTTPS
Here‘s a small but important detail: Alexa skills require all audio content to be served via HTTPS endpoints. However, many podcast hosting providers still default to HTTP URLs in the RSS feed. While most do support HTTPS if you modify the URL, in some cases this doesn‘t work.
To handle this edge case, we set up an Amazon CloudFront distribution. CloudFront acts as an HTTPS proxy in front of the podcast host‘s HTTP endpoint. Alexa is happy, and we avoid the need to modify the RSS feed or migrate hosting providers.
Smart progress tracking
Put yourself in the listener‘s shoes for a moment. You‘re halfway through an hour-long episode when you need to pause and tend to something else. When you come back later, the last thing you want to do is try to remember your place and fast-forward to find it. You just want to pick up right where you left off.
This is table stakes for any audio app, and Alexa skills are no exception. To power this, the skill needs to maintain a record of the listener‘s current episode and offset in a database. We use Amazon DynamoDB for this since it integrates so well with Lambda functions and offers consistent performance at any scale. With just a few simple attributes, we can ensure listeners never lose their place even across multiple episodes and sessions.
Eyes on the horizon
With the core skill in place and a solid infrastructure humming along, it‘s all about continuing to enhance the experience. For example, Alexa offers the ability to send push notifications to users. This opens the door for proactively alerting listeners about new episodes as they‘re published – something you can‘t easily do with a traditional podcast app. We‘re excited to explore possibilities like this in future versions of the skill.
So what did we learn through all this? A few key takeaways:
-
Voice interfaces are uniquely well-suited for audio content like podcasts. By eliminating visual distractions and abstractions, they allow people to engage more directly and deeply with the content itself. If you have a podcast, you should strongly consider creating an Alexa skill for it.
-
While simple in concept, doing a podcast skill right requires careful attention to the details. You need rock-solid infrastructure to keep content fresh, ensure smooth streaming, and sync progress across sessions. Get these foundational elements in place early.
-
Think beyond ports. An Alexa skill shouldn‘t just replicate your existing podcast verbatim. Consider opportunities to enhance the experience with Alexa-specific features like notifications, personalization, and interactivity. Make it uniquely valuable and complementary to your core podcast.
-
Don‘t reinvent the wheel. While the specifics of your skill will be unique, you‘re not the first developer to bring a podcast to Alexa. Tap into the community and learn from those who‘ve gone before you. Dig into the numerous open source templates and examples on GitHub. Consider starting with a "podcast as a service" platform like Fourthcast for a head start.
-
Go serverless. Alexa skills and podcasts are a perfect use case for a serverless architecture using AWS Lambda, S3, DynamoDB, and friends. These services are inexpensive, scale effortlessly, and allow you to focus on your skill logic rather than server administration. Serverless is the way.
And there you have it! The story of how A Cloud Guru brought The Cloudcast to life on Alexa. It‘s been a fun and educational journey, and we‘re thrilled to get this out into the world.
If you haven‘t checked out The Cloudcast yet, what are you waiting for? Just say "Alexa, play The Cloudcast" to dive into 400+ episodes of cloud computing goodness. And while you‘re there, be sure to leave us a review and let us know what you think. We really appreciate your support!
We hope this behind-the-scenes look has been instructional and inspiring. If you take away one thing, let it be this: voice interfaces are the future, and that future is already here. As technical professionals, we have an incredible opportunity to take advantage of platforms like Alexa to create innovative, voice-first experiences.
The only question is, what will you build? The cloud‘s the limit.