How To Host Your Podcast For Free On Github Pages
Do you have a story to tell and want to share it with the world but do not know where to start? Are you a developer looking to start a tech podcast? Are you looking to save money for hosting? Well this article is for you!
TL;DR; You can fork this repo and customize it for your podcast!
Github Pages allows you to host any website for free on Github. You can host any kind of file or content and will be distributed with Github CDN around the world. You can even setup your Podcast to release new content with Github Actions for each new episode.
Create New Repo
If you already familiar with Github you can skip this step.
Login or Create a free account for Github and follow the instructions for creating the repo.
Clone the Repo
Now that you have the repo created on Github, download the project using Github Desktop.
After it finishes downloading you can open up the project in your favorite text editor. In this example we will be using VSCode.
Create the Website
You can create the website with whatever tech stack you wish but in this example we will be using Flutter. You can skip this step if you do not want an online player.
Open up the project if you haven’t already with VSCode and open the terminal and type the following:
flutter create player
Once the process finishes then you can edit the application UI. Make sure you have Flutter installed.
Edit the website files to the following:
Setting up Github Actions
Create a new Github Action that will release the new episode pushed to the master branch. If you chose not to have a podcast player and just want to host the files then you can add the audio files and the rss feed directly to the gh-pages
or master
branch and the files will be hosted instantly. Regardless make sure you have a file call .nojekyll
so the web deployment will be much faster.
Custom Domain
If you want to have your podcast hosted with a custom domain you can easily do this with Github pages. Follow this guide to set up your custom domain:
Releasing new Content
When you have a new episode to release the steps are very simple. Make sure to export your audio file to mono and use mp3 format so it is smaller that 100mb otherwise you will need to set up Git LFS for the repo.
Put the new mp3 audio file in the “player/web/audio” folder. Now edit the RSS feed which is located at “player/web/feed.xml” and add the following:
For every episode you just have to add a new item to the feed and change the info for the episode. I would suggest putting the new episodes at the bottom.
<item>
<author>COMMA_SEPERATED_LIST_OF_AUTHORS</author>
<itunes:author>COMMA_SEPERATED_LIST_OF_AUTHORS</itunes:author> <title>PODCAST_EPISODE_TITLE</title>
<pubDate>Mon, 13 Apr 2020 13:00:00 GMT</pubDate>
<enclosure url="LINK_TO_AUDIO_FILE" type="audio/mpeg" length="34216300" />
<itunes:duration>54:08</itunes:duration>
<guid isPermaLink="false">cepod01</guid> <itunes:explicit>no</itunes:explicit>
<description>
Show Notes Here!
</description>
</item>
Publishing
Once your Github Action is finished building you now have an RSS feed that you can use to submit to Apple Podcasts, Google Podcasts and Spotify for Podcasters.
https://GITHUB_USERNAME.github.io/GITHUB_REPO/feed.xml
You can also use this RSS Feed link to support any podcast player!
Conclusion
Hopefully you can see now how easy it is to host your podcast for free on Github Pages. You can find the final code for this example here:
Live Example
My “Creative Engineering” podcast is hosted using this technique.
Google Podcasts
Spotify Podcasts
Apple Podcasts