Case study · Kingdom Christian Church

Sermon Library

A custom sermon library for Kingdom Christian Church that extracts messages from full-service recordings and delivers audio and video through AWS.

PythonFFmpegAWS S3CloudFrontMP3 / MP4
Kingdom Word Supply sermon library featuring a highlighted message and recent sermons grid

Overview

A custom sermon library developed for Kingdom Christian Church to make recorded messages easier to discover and access. I built a Python-based publishing workflow that extracts sermons from full-service recordings and delivers audio and video through AWS infrastructure.

Role. Full-stack development and media infrastructure

The problem

Full church service recordings contain more than the sermon itself. Members looking for a particular message need a focused way to browse and play sermons without navigating entire service recordings or unrelated content on YouTube.

Preparing individual sermon recordings manually also creates repetitive work, especially when publishing a growing library of messages.

The solution

I developed a dedicated sermon library and a repeatable media publishing workflow.

  • Automated clipping

    Specify start and end timestamps in a Python script to extract a sermon from a longer recording.

  • Multiple media formats

    Publish sermons as MP3 audio and MP4 video.

  • Sermon discovery

    Organize recordings with metadata, including titles, dates, and durations.

  • Cloud storage

    Store media and associated metadata in Amazon S3.

  • Content delivery

    Use Amazon CloudFront to serve recordings to users.

Engineering

The system separates media preparation from storage and playback, allowing publishing operations to happen independently of user streaming.

Publishing and delivery
  1. Source recording

    Full church service

  2. Python publishing script + FFmpeg

    Start/end timestamps · Clip extraction · Media processing

  3. Amazon S3

    MP3 · MP4 · Metadata · Sermon listings

  4. Amazon CloudFront

    CDN delivery of sermon media

  5. Sermon library

    Browse, listen, and watch

The publishing script handles media preparation and uploading, while the frontend uses the resulting sermon information and media URLs to support browsing and playback.

Technical decision

Keep publishing off the request path, and keep media off the app server.

Long sermons are expensive to serve from an application process. I treated FFmpeg clipping as a publishing job, stored MP3 and MP4 objects plus metadata in S3, and let CloudFront handle playback. The library frontend only reads listings and media URLs — it never transcodes or streams files itself.

Challenges

Automating precise sermon extraction

Extracting individual messages from long recordings requires accurate start and end times. I built a timestamp-driven Python workflow to make the process repeatable and reduce manual editing.

Serving large media files

Long sermon recordings can be expensive and inefficient to serve directly from an application server. I used S3 for durable media storage and CloudFront for content delivery, separating media traffic from application processing.

Managing a growing media library

Keeping sermon files and their associated metadata organized is important as new messages are published. A consistent storage structure and metadata format help the library remain maintainable.

Outcome

  • Built a dedicated sermon browsing and playback experience for Kingdom Christian Church.
  • Enabled access to sermons in both audio and video formats.
  • Created a reusable publishing workflow based on timestamps.
  • Established an S3 and CloudFront architecture for media storage and delivery.

Engineering takeaway

This project demonstrates media-processing automation, cloud storage, CDN integration, and the ability to design infrastructure around a real organization's content-delivery needs.

Project navigation

All case studies

Back to all projects