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
Code
github.com/colinfriedel/KSCU-Show-Recorder

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

  1. Live station streamKSCU's on-air broadcast
  2. Python service on AWS EC2Records each show with ffmpeg, using the schedule to know who is on air
  3. AWS S3Stores the recording
  4. 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