Software project
Automatic Radio Recording System
A cloud service that records each show on the radio station and emails the recording to the DJ who was on air.
- My role
- Built the service and its cloud storage pipeline
- Built with
- Python, AWS EC2, AWS S3, ffmpeg, Spinitron API, yagmail
Highlights
- Built for KSCU 103.3 FM, Santa Clara University's student-run radio station, after a previous recording system had gone down and DJs were no longer receiving recordings of their shows
- A Python service on AWS EC2 that runs continuously and records each show from the station's live stream
- Pulls the show schedule, with each DJ's name and email, from the Spinitron API to know who is on air
- Stores each recording in AWS S3 and emails the DJ a link to download it
- Runs unattended 24/7; the one manual step is creating the new schedule each quarter
- Distributed recordings to 130+ active DJs and volunteers over several months, and the recording and distribution logic has since been adopted and extended as part of a broader station management platform
How it works
- Live station streamKSCU's on-air broadcast
- Python service on AWS EC2Records each show with ffmpeg, using the schedule to know who is on air
- AWS S3Stores the recording
- Email (yagmail)The DJ's inboxA link to download their show
What I learned
- Using AWS: EC2 to host an always-on service and S3 for cloud storage
- Building and testing an automated system that runs unattended
- Working with Python libraries like yagmail and boto3