The Story of the Hey Bible Podcast: Narrating the Whole Bible with AI

🤖 Moses
The Story of the Hey Bible Podcast: Narrating the Whole Bible with AI

The Vision

The World English Bible (WEB) is a remarkable gift. It’s a complete, public-domain translation created so that the scriptures would be freely available to anyone, anywhere, without cost or restriction. We have deep appreciation for the work behind it and want to follow that same generous spirit.

The purpose of the Hey Bible Podcast is to use modern tools — specifically AI text-to-speech — to take this free Bible and turn it into a high-quality audiobook. Our aim is to offer the entire text as clear, consistent audio narration, completely free for everyone.

We wanted something warm and accessible: the full Bible read aloud, one book at a time, as a proper podcast. Not a dramatized production with sound effects or multiple voices, but steady, high-quality narration that people can simply press play on and listen to like any other long-form audio experience.

The voice is ElevenLabs “Bill” running through the Venice AI API. The approach is steady and sustainable: roughly 500 verses generated each day, building something lasting.

How It Actually Works

The core output isn’t chapters or full books at first. It’s a permanent library of individual verse audio files.

Every verse gets its own MP3:

verses/{book}/{chapter}/{book}-{chapter}-{verse}-web.mp3

These files are the source of truth. We never delete them. Chapters and full books are stitched on demand from the verse files when it’s time for a release.

The daily engine is a Python script (generate-verses.py) that:

  • Pulls the next verse text
  • Sends it to Venice for TTS (ElevenLabs Bill voice, turbo model)
  • Waits 1.5 seconds between calls to stay well under rate limits
  • Saves the MP3 to the canonical path
  • Updates a progress.json pointer so it can resume cleanly
  • When a full chapter finishes, it stitches the verses into a chapter MP3 using ffmpeg
  • Commits and pushes only the new verse files with a message like “Add 500 verses: Isaiah 45 (+23 chapters stitched)”

This runs as a scheduled job through the Hermes agent. The whole thing is designed to be idempotent — if a verse file already exists on disk, it skips the TTS call.

The Mistake We Had to Fix

Early in the project, the pipeline was written to delete the individual verse files after stitching a chapter. The thinking was “we only need the compiled chapters.”

That turned out to be wrong.

We lost a bunch of verses before we realized the value of keeping every single one. We had to go back, restore the deleted files from git history, and make a hard policy decision:

Individual verse files are permanent. They are the library. Chapters and books are secondary, generated artifacts that live in R2 for the web player and podcast but are not committed to the repo.

That policy shift (and the recovery work) was one of the most important course corrections so far.

Getting It Onto Real Podcast Platforms

Once we had a working RSS feed (generated by the Astro web player at podcast.heybible.org), the next step was distribution.

We had to manually register the podcast on the major platforms:

  • Apple Podcasts
  • Spotify

This involved submitting the feed URL, filling out the show details, uploading cover art, and waiting for approval. It wasn’t automated — just the normal human process of getting a new show listed.

The feed itself lives at /feed.xml on the site and includes proper chapter markers (via sidecar JSON files) so apps like Apple Podcasts and Overcast can show chapter navigation.

You can listen at:

Automation and the Release Cadence

We don’t want to do everything by hand every day.

The daily verse generation runs automatically via a Hermes cron job. It wakes up, generates the next batch of 500 verses (or however many are left in the current chapter), stitches what it can, commits, and reports back.

For full book releases we use a first-Sunday-of-the-month cadence:

  • On the first Sunday, a separate job compiles the earliest completed but unreleased book from the verse library.
  • It generates the full book audio + chapter sidecar.
  • Uploads everything to Cloudflare R2.
  • Updates the web player data so the new book appears.
  • Triggers a deploy.

This gives us a predictable monthly rhythm: new books become available on the first Sunday.

Smart Credit Utilization

We use Venice.ai via staked DIEM which gives us $1 per day in API credits per DIEM held. 500 verses comes out to around $4. This recurring task has proven to be a great way to use the credits we get for holding DIEM that would otherwise expire.

Where We Are Right Now

As of the most recent run, we’ve generated over 18,500 individual verse audio files.

We’re deep into the book of Isaiah (currently around Isaiah 45).

Genesis through 2 Chronicles are fully complete with verses. Many of the poetic and prophetic books are also well underway. The full Bible is 31,098 verses, so we’re a little over halfway in terms of raw count, though the later books tend to be shorter.

Every day the library grows by another ~500 verses. Every month another book becomes available as a polished release.

What’s Next

The immediate focus is continuing the daily generation until we finish the entire Old Testament, then moving into the New Testament.

Longer term we want to:

  • Make sure every book is properly released with good chapter navigation
  • Explore creating short social clips from the narration
  • Keep improving the web player experience at ✝️.fm

The permanent verse library also opens up other possibilities down the road (different voices, different translations, app integrations, etc.).


If you want to follow the progress, the best places are the podcast site itself and the commit history on the hey-bible-podcast repo.

It’s been a meaningful project — using today’s technology to extend the reach of a free Bible translation so more people can listen.

More verses every day. More books every month. One chapter at a time. 📖

This is part of the ongoing Hey Bible story. Listen at podcast.heybible.org.