3 min read

How I built a daily podcast from the posts on my favorite subreddit r/SaaS?

How I built a daily podcast from the posts on my favorite subreddit r/SaaS?

I love reading posts on r/SaaS. I love the vibe of the community. It is one of the few communities for SaaS founders that remained free of self promotion.

Over the last few weeks, I had very little time to browse through the posts.

With two kids at home, I spend a lot of my time doing chores. So I thought, why not listen to the posts while I am cooking and doing the dishes?

In this post I breakdown the different tools I used to create the podcast show:

  • PRAW to fetch the Reddit posts with Python
  • Google Text-to-Speech to convert Reddit posts to audio
  • Transistor to host and publish the podcast
  • Render to run my Python code once a day
  • Canva to create the artwork for the podcast

Before I get into the details of how I built the show, here is an example episode from the podcast.

You can listen to the podcast on Spotify, Apple podcasts or wherever you listen to podcasts.  

PRAW: The Python Reddit API Wrapper

PRAW makes it super easy to access Reddit's data. The Subreddit model provides access to all the subreddit's posts. The Submission model contains the post details and a list of comments which are represented by the Comment model.

The Reddit data models provided by PRAW

Google Text-to-Speech

Google has fantastic text-to-speech technology. You have probably experienced it already on Google Assistant or Google Translate.

It is easily available via their cloud API. In 2016, they have added Wavenet voices, which sound more natural.

When reading out the the post comments, I thought it would be cool to rotate between different voices.

So I picked 4 Wavenet voices that I liked. When reading out the comments I randomly rotated between these 4 voices.

The Google Text-to-Speech Wavenet voices

Transistor: Podcast publishing platform

I wanted the creation of the podcast to be 100% automated, so I looked for a Podcast hosting platform that has an API.

Transistor has an awesome API with really good documentation. For example, creating a new episode from an audio file, is just one call.

Create Episode API on Transistor.fm

Another huge benefit of using them is that they help you distribute the podcast to all the major podcast players such as  Spotify or Apple podcasts with just a couple of clicks.

Transistor's easy distribution to all major podcasts players

Because I am not earning anything from this podcast, I initially hesitated to spend 20$ per month to use Transistor. Now that I have tried it, it was well worth my time.

Render: Cloud hosting

In the past, I have always used AWS for hosting my code in the cloud. AWS is an amazing platform with lots of options, but it is also a little time consuming to setup.

After a little research, I ended up using Render. It tooks me 5 mins to setup a cron job on Render to run my python code periodically.

Setting up a new cron job on Render

The cool thing about Render is that it fetches any changes to my Github repository, and updates the cron job automatically.

Bonus: Using Canva to create the podcast artwork

To publish the podcast and submit it to major podcast players such as Spotify or Apple podcasts, I had to create a cover image for the podcast.

I used Canva quite a bit in the past, mainly to create blog post cover images. When I searched for "Podcast" templates on Canva, I liked the first result, so went for it without thinking too much.

After a little bit of editing, my podcast cover image was ready and I could publish using Transistor.

Interested in creating an audio podcast for your community? Feel free to start a conversation with me on Twitter @nirshub