With AnyPod, I’m trying to create the best podcast listening experience on Alexa. When I first got an Echo, I asked it to play my favorite podcast. It didn't have any idea what I'd asked for - of course - and the journey began. Once I created a skill to play that podcast, I started to think I could create a skill for any podcast... hence the name "AnyPod"!
What it does
The AnyPod Alexa skill can play any podcast and offers a comprehensive suite of voice commands to help you navigate the episodes of a podcast and also navigate within an episode. You can build a list of subscriptions and play them all with a single command. You can ask for an episode by season and episode number, or date and time. It remembers your play history so you can come back later and resume playback of any podcast wherever you last left off. You can fast forward, rewind, and jump to a specific position in the episode timeline.
With the companion website, you can view and manage your subscriptions, search for and add new podcasts - including podcasts with unique/custom RSS feeds, create custom launch phrases, and also play podcasts, keeping the play history synchronized across devices so that when you go back and forth between devices, playback always resume wherever you left off.
How I built it
I built the AnyPod skill using Node.JS and Amazon's suite of web services - Lambda, DynamoDB, S3, Api Gateway, CloudFront, and probably a few others that I'm forgetting. I develop on a Windows 10 machine with Visual Studio 2017, which offers the best Node.js development and debugging environment I've found. The AnyPod website backend is also running on Amazon's web services, and the frontend was created with React.
Challenges I ran into
Alexa posed some big challenges due to the imperfections in voice recognition. Solving this required a mix of fuzzy matching and manually created aliases for especially tricky podcast names - it's been a lot of work just to get the voice matching to a point where it isn't completely frustrating.
Another big challenge has been designing an architecture that is shared by the website and the skill. Figuring out how to organize everything so that each piece of the puzzle fits together and efficiently accomplishes what it needs to do has required a lot of trial and error, rewriting, refactoring, and optimizing.
Accomplishments that I'm proud of
I started working on AnyPod about a year ago and in that time I’ve received a lot of great feedback from podcast fans and producers all over the world. I’ve also been in touch with a lot of visually impaired and disabled listeners whose stories have really encouraged me to keep building this skill so that just about anyone, regardless of their physical limitations, can navigate and enjoy the incredible world of podcasts.
What's next for AnyPod
I plan to continue refining the voice recognition and search capabilities, doing everything I can to grow the audience as quickly as possible, expand on the services offered within the skill and on the website, and eventually monetize.
Life Hack for Echo Show & Echo Spot