Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Radio Free Django - Building a radio station on...

Radio Free Django - Building a radio station on Django

Brum Radio is an independent Internet radio station based in the UK's second city, Birmingham. When I started at the station we had a WordPress website where the schedule had to be manually updated every week from memory, you had to leave the site to listen to shows on-demand and there was no indication of what show you were listening to.

My talk describes building not only a website for a radio station, but scripting a system to record each show and upload it for on-demand listening, without any manual intervention. I discuss how I built a scheduling system to deal with monthly and fortnightly shows (which is harder than it sounds), and dealing with fragile egos, while also presenting my own weekly show on the station.

It's a light talk presented by a very nervous but competent and energetic speaker, which aims to demonstrate how much you can achieve without being the most gifted programmer.

Avatar for Steadman

Steadman

April 03, 2017
Tweet

Other Decks in Technology

Transcript

  1. @iamsteadman • Django developer since 2008… ish • Freelance digital

    content producer • Websites and apps • Podcasts • Audiobooks • Run the Podiant podcasting service • Full-time kitten dad
  2. Brum Radio • Non-commercial station • Alternative sound for Birmingham

    • Mixture of music and talk • Eclectic programming • Comedians, club DJs, musicians • Listen-again facility via MixCloud • Everyone is a volunteer
  3. Brum Radio • Original website in WordPress • Schedule updated

    weekly by hand • No “now playing” info • Out-of-date presenter info • No individual show pages • No listen-again listings
  4. Brum Radio • Django-powered website • Automated schedule • A

    page for each show • A page for each presenter • Listen-again archive • Easy to maintain • Constantly-changing homepage
  5. Why Django? • Super-fast build • Easy to host on

    Heroku • Admin interface • Easily handles media • Background tasks via rqworker
  6. Automating the schedule • traffic.Programme model • talent.Presenter model •

    Weekday time fields • Recurrence and next-air date • Hiatuses • Lookaheads • MixCloud search terms
  7. Listen Again • Thank you MixCloud • Build in Django!

    • Search functionality needs some ♥ • Get all mixes by user ID • Manually search archive with RegEx • Then they turned off oEmbed ¯\_(ツ)_/¯
  8. Recording in the studio • Dozens of live shows a

    week • One PC to record them all • Start your recording on time • Overlapping shows? Good luck! • Send to Dropbox • Trim show and upload to MixCloud • Very tired producers
  9. Recording on a schedule • traffic.Programme is god • Start

    and end on time • Record from the desk via PyAudio • Upload to Amazon S3 • Ping webhook when finished • Submit to MixCloud
  10. Lessons I’ve learned • Dealing with fragile egos • People

    want ultimate control and ease-of-use • Everyone gets a say • Dealing with radio schedules is hard
  11. The future! • Release the new schedule view • Add

    an Airing model for episodes • Release the code on GitHub (very soon) • Start work on the studio recording script
  12. Thank you • @iamsteadman • Find the station at brumradio.com

    • bloomsbury.digital for my professional work • podiant.co is my current podcasting venture • steadman.io for everything else • I’m available to hire