All Stories
2026-09-17•4 min read

Podcast · Video · Whisper · TableModel · Multimodal AI · Pixeltable Cloud · Clipping

ReelForge: Podcast Chapters and a Highlight Clip in One app.py

Ingest MP4 or WAV, transcribe, chapter the episode, cut a highlight. Pixeltable is the episode row — not FFmpeg plus a transcription fleet plus a vector DB.

Pierre Brunelle

Pierre Brunelle

Pixeltable Team

View as Markdown

Summary: ReelForge is the show-notes loop: drop a video episode or a WAV, get a transcript, chapter titles, a hook, and a highlight MP4 with a thumbnail. You do not stand up Whisper workers, an FFmpeg box, and a search index as three products. You declare Podcasts. Insert the file. The rest follows. pip install pixeltable.

The Product#

  • Ingest an episode with episode_id, show, title, guest
  • Accept an MP4, a WAV, or both
  • Transcribe, chapter, pick a highlight window
  • Search past episodes by what was said

Natural-language visual moments are ClipFinder. The sales-call transcript object is CallSense. This post is the episode: audio resolution, chapters, a clipped file.

The Stitch You Delete#

Object store for the master. A job that calls Whisper. Another job that asks an LLM for chapters. FFmpeg on a worker for the 45-second cut. Embeddings in a sidecar so last week’s show is searchable. Pixeltable is the row those joints were syncing by hand. That is the Frankenstein stack.

The Receipt#

python

Gemini returns JSON. parse_chapters is the object you query — not a shipped virality model. clip and extract_frame follow the highlight window. Audio-only rows still transcribe; the cut is empty without a video. Same file on Cloud: pxt db update → pxt schema update → pxt service update.

What This Is Not#

Not Descript. Not a TikTok scheduler. Auth and the CMS stay where they are. Frame-level visual search is ClipFinder. This is chapters plus one cut on the parent row.

People Also Ask#

Video or audio? Either column can be null. pick_audio prefers the WAV when you have one.

Which Whisper? model='base' matches the homepage. Swap the string; the column stays.

How do I go to Cloud? Same app.py. PIXELTABLE_API_KEY, pxt://org:db, then db → schema → service.

Is this an AI automation workflow? Yes. Insert the master; Whisper, chapters, and the cut run as columns. The category is AI automation workflow.

Chapter the Episode, Cut the Hook#

Declare the show. Apply the file. Insert the master. Search the library. Keep the clip. Delete the FFmpeg farm.

Declarative. Multimodal. Incremental.

One Python file for tables, indexes, and HTTP. Start locally, or sign up for Cloud.

Get started

Docs quickstart · 10-minute tutorial · GitHub · Discord