Skip to content

Latest commit

 

History

History
53 lines (32 loc) · 2.09 KB

README.md

File metadata and controls

53 lines (32 loc) · 2.09 KB

podcast-deployer.lambda

An AWS Lambda function that scans an Amazon S3 bucket and generates an RSS feed for podcast distribution.

This tool was written specifically for Apple Podcasts, based off of official guidelines, but is extensible to other platforms.

Update (11/22/2024): Further research on the cost-benefit of self-hosting podcasts vs. using a dedicated hosting platform made me realise that it's better to go with the latter when prospective scalability/outsized bandwidth is concerned.

This project is therefore abandoned, but forks are welcome for those who still wish to self-host.

Relevant links: How much does it cost to host a podcast on Amazon AWS? Is anyone using Amazon S3 to host a podcast?

Instructions

1. Create an S3 bucket

In the AWS console, initialise an AWS S3 bucket where you'll save your podcast episodes' audio file and its corresponding episode-specific description file (in HTML).

For this function to execute successfully, the files need to be saved in the following format:

root of s3 bucket:

<Date_Of_Publication>-<Title_Of_Episode>.mp3
<Date_Of_Publication>-<Title_Of_Episode>.html

For example, this could look like:

root

20241117-Episode 1.mp3
20241117-Episode 1.html

Note: Apple Podcasts supports the MP3 file format, as well as M4A, MOV, MP4, M4V, and PDF.

2. Create a Lambda function

In the AWS console, initialise a Lambda function and set its trigger to point to the above-mentioned S3 bucket's PUT events.

If the trigger is set up correctly, you'll see the below diagram in the Lambda console:

Screenshot 2024-11-22 at 12 20 14 AM

3. Build and upload the lambda's source code to AWS

Run npm run build in the root directory, then copy and paste the resulting /dist folder (or .zip file) to the Lambda console.